summaryrefslogtreecommitdiff
path: root/services
diff options
context:
space:
mode:
Diffstat (limited to 'services')
-rw-r--r--services/tag2tagservice.php18
-rw-r--r--services/tagservice.php43
2 files changed, 38 insertions, 23 deletions
diff --git a/services/tag2tagservice.php b/services/tag2tagservice.php
index f46ef7c..d37ab8b 100644
--- a/services/tag2tagservice.php
+++ b/services/tag2tagservice.php
@@ -59,7 +59,7 @@ class Tag2TagService {
if($uId != null) {
$query.= " AND uId = '".$uId."'";
}
-
+//die($query);
if (! ($dbresult =& $this->db->sql_query_limit($query, $limit)) ){
message_die(GENERAL_ERROR, 'Could not get related tags', '', __LINE__, __FILE__, $query, $this->db);
return false;
@@ -69,6 +69,7 @@ class Tag2TagService {
$output = array();
foreach($rowset as $row) {
if(!in_array($row['tag'], $stopList)) {
+
$output[] = $row['tag'];
}
}
@@ -89,19 +90,18 @@ class Tag2TagService {
$asFlatList = true; //we disable the tree list parameter for the moment
if(in_array($tag1, $stopList)) {
- return $tag1;
+ return array();
}
- $stopList2 = $stopList;
- $stopList2[] = $tag1;
- $linkedTags = $this->getLinkedTags($tag1, $relationType, $uId, false, $stopList2);
+ $stopList[] = $tag1;
+ $linkedTags = $this->getLinkedTags($tag1, $relationType, $uId, false, $stopList);
if($relationType != '=') {
- $linkedTags = array_merge($linkedTags, $this->getLinkedTags($tag1, '=', $uId, false, $stopList2));
+ $linkedTags = array_merge($linkedTags, $this->getLinkedTags($tag1, '=', $uId, false, $stopList));
}
if(count($linkedTags) == 0) {
- return $tag1;
+ return array();
} else {
$output = array();
if($asFlatList == true) {
@@ -110,13 +110,13 @@ class Tag2TagService {
$output = array('node'=>$tag1);
}
- $stopList[] = $tag1;
foreach($linkedTags as $linkedTag) {
$allLinkedTags = $this->getAllLinkedTags($linkedTag, $relationType, $uId, $asFlatList, $stopList);
if($asFlatList == true) {
+ $output[] = $linkedTag;
if(is_array($allLinkedTags)) {
- $output[] = $linkedTag;
+
$output = array_merge($output, $allLinkedTags);
} else {
$output[] = $allLinkedTags;
diff --git a/services/tagservice.php b/services/tagservice.php
index 509e575..bbf3574 100644
--- a/services/tagservice.php
+++ b/services/tagservice.php
@@ -86,22 +86,37 @@ class TagService {
}
}
+ $bs =& ServiceFactory::getServiceInstance('BookmarkService');
+ $tts =& ServiceFactory::getServiceInstance('Tag2TagService');
+
// Create links between tags
foreach($tags as $key => $tag) {
- // case ">"
- $pieces = explode('>', $tag);
- $nbPieces = count($pieces);
- if($nbPieces > 1) {
- for($i = 0; $i < $nbPieces-1; $i++) {
- $bs =& ServiceFactory::getServiceInstance('BookmarkService');
- $tts =& ServiceFactory::getServiceInstance('Tag2TagService');
-
- $bookmark = $bs->getBookmark($bookmarkid);
- $uId = $bookmark['uId'];
- $tts->addLinkedTags($pieces[$i], $pieces[$i+1], '>', $uId);
- }
- $tags[$key] = $pieces[$nbPieces-1]; // Attach just the last tag to the bookmark
- }
+ if(strpos($tag, '=')) {
+ // case "="
+ $pieces = explode('=', $tag);
+ $nbPieces = count($pieces);
+ if($nbPieces > 1) {
+ for($i = 0; $i < $nbPieces-1; $i++) {
+ $bookmark = $bs->getBookmark($bookmarkid);
+ $uId = $bookmark['uId'];
+ $tts->addLinkedTags($pieces[$i], $pieces[$i+1], '=', $uId);
+ }
+ $tags[$key] = $pieces[0]; // Attach just the last tag to the bookmark
+ }
+ } else {
+ // case ">"
+ $pieces = explode('>', $tag);
+ $nbPieces = count($pieces);
+ if($nbPieces > 1) {
+ for($i = 0; $i < $nbPieces-1; $i++) {
+ $bookmark = $bs->getBookmark($bookmarkid);
+ $uId = $bookmark['uId'];
+ $tts->addLinkedTags($pieces[$i], $pieces[$i+1], '>', $uId);
+ }
+ $tags[$key] = $pieces[$nbPieces-1]; // Attach just the last tag to the bookmark
+ }
+ }
+
}