From 180e5a0fc617d9d5a7c516842d598adee0f2e049 Mon Sep 17 00:00:00 2001 From: cweiske Date: Sat, 16 Jan 2010 11:16:43 +0000 Subject: [PATCH] Fix bug #2887063: Common tag combination description feels broken git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@598 b3834d28-1941-0410-a4f8-b48e95affb8f --- doc/ChangeLog | 2 ++ .../Service/CommonDescription.php | 25 +++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/doc/ChangeLog b/doc/ChangeLog index 4b1c30b..3ea4b8a 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -9,6 +9,8 @@ ChangeLog for SemantiScuttle - Fix HTTP content type header for RSS - Add config option to allow sorting by bookmark creation date instead of modification date +- Fix bug #2887063: Common tag combination description feels broken + 0.95.1 - 2009-11-16 ------------------- diff --git a/src/SemanticScuttle/Service/CommonDescription.php b/src/SemanticScuttle/Service/CommonDescription.php index 8acd254..39c5826 100644 --- a/src/SemanticScuttle/Service/CommonDescription.php +++ b/src/SemanticScuttle/Service/CommonDescription.php @@ -49,6 +49,8 @@ class SemanticScuttle_Service_CommonDescription extends SemanticScuttle_DbServic } function addTagDescription($tag, $desc, $uId, $time) { + $tag = self::getSortedTag($tag); + // Check if no modification $lastDesc = $this->getLastTagDescription($tag); if($lastDesc['cdDescription'] == $desc) { @@ -70,6 +72,8 @@ class SemanticScuttle_Service_CommonDescription extends SemanticScuttle_DbServic } function getLastTagDescription($tag) { + $tag = self::getSortedTag($tag); + $query = "SELECT *"; $query.= " FROM `". $this->getTableName() ."`"; $query.= " WHERE tag='".$tag."'"; @@ -200,5 +204,26 @@ class SemanticScuttle_Service_CommonDescription extends SemanticScuttle_DbServic $this->db->sql_query($query); } + + + /** + * Sorts a tag combination. + * + * Multiple tags are separated by "+" signs. Semantically, + * tag combinations like "blue+flower" and "flower+blue" are identical. + * This method sorts the single tags so i.e. the common bookmark description + * of "blue+flower" is also shown for "flower+blue". + * + * @param string $tag Single tag or tag combination ("+") + * + * @return string Sorted tag combination + */ + protected static function getSortedTag($tag) + { + $tags = explode('+', $tag); + sort($tags); + return implode('+', $tags); + } + } ?>