From e0949aa0adfdfee4f78733277ff43d850ef3582e Mon Sep 17 00:00:00 2001 From: mensonge Date: Fri, 28 Nov 2008 06:09:45 +0000 Subject: New Feature: possibility to import a structure of hierarchical tags from a file git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@179 b3834d28-1941-0410-a4f8-b48e95affb8f --- services/bookmark2tagservice.php | 4 ++-- services/tag2tagservice.php | 11 +++++++++++ services/tagservice.php | 9 +++++++-- 3 files changed, 20 insertions(+), 4 deletions(-) (limited to 'services') diff --git a/services/bookmark2tagservice.php b/services/bookmark2tagservice.php index 347df9c..7085d5f 100644 --- a/services/bookmark2tagservice.php +++ b/services/bookmark2tagservice.php @@ -41,8 +41,8 @@ class Bookmark2TagService { } } - //clean tags from strange characters - $tags = str_replace(array('"', '\'', '/'), "_", $tags); + $tagservice =& ServiceFactory::getServiceInstance('TagService'); + $tags = $tagservice->normalize($tags); $tags_count = is_array($tags)?count($tags):0; diff --git a/services/tag2tagservice.php b/services/tag2tagservice.php index 8c97606..4cce66d 100644 --- a/services/tag2tagservice.php +++ b/services/tag2tagservice.php @@ -16,11 +16,16 @@ class Tag2TagService { } function addLinkedTags($tag1, $tag2, $relationType, $uId) { + $tagservice =& ServiceFactory::getServiceInstance('TagService'); + $tag1 = $tagservice->normalize($tag1); + $tag2 = $tagservice->normalize($tag2); + if($tag1 == $tag2 || strlen($tag1) == 0 || strlen($tag2) == 0 || ($relationType != ">" && $relationType != "=") || ($this->existsLinkedTags($tag1, $tag2, $relationType, $uId))) { return false; } + $values = array('tag1' => $tag1, 'tag2' => $tag2, 'relationType'=> $relationType, 'uId'=> $uId); $query = 'INSERT INTO '. $this->getTableName() .' '. $this->db->sql_build_array('INSERT', $values); //die($query); @@ -214,11 +219,17 @@ class Tag2TagService { function existsLinkedTags($tag1, $tag2, $relationType, $uId) { + + //$tag1 = mysql_real_escape_string($tag1); + //$tag2 = mysql_real_escape_string($tag2); + $query = "SELECT tag1, tag2, relationType, uId FROM `". $this->getTableName() ."`"; $query.= " WHERE tag1 = '" .$tag1 ."'"; $query.= " AND tag2 = '".$tag2."'"; $query.= " AND relationType = '". $relationType ."'"; $query.= " AND uId = '".$uId."'"; + + //echo($query."
\n"); return $this->db->sql_numrows($this->db->sql_query($query)) > 0; } diff --git a/services/tagservice.php b/services/tagservice.php index 83349c6..504d13f 100644 --- a/services/tagservice.php +++ b/services/tagservice.php @@ -75,8 +75,13 @@ class TagService { $this->db->sql_query($query); return true; } - - + + /* normalize the input tags which could be a string or an array*/ + function normalize($tags) { + //clean tags from strange characters + $tags = str_replace(array('"', '\'', '/'), "_", $tags); + return $tags; + } function deleteAll() { $query = 'TRUNCATE TABLE `'. $this->getTableName() .'`'; -- cgit v1.2.3-54-g00ecf