summaryrefslogtreecommitdiff
path: root/src/SemanticScuttle/Service/CommonDescription.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/SemanticScuttle/Service/CommonDescription.php')
-rw-r--r--src/SemanticScuttle/Service/CommonDescription.php25
1 files changed, 25 insertions, 0 deletions
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);
+ }
+
}
?>