summaryrefslogtreecommitdiff
path: root/templates/sidebar.block.linked.php
diff options
context:
space:
mode:
Diffstat (limited to 'templates/sidebar.block.linked.php')
-rw-r--r--templates/sidebar.block.linked.php69
1 files changed, 56 insertions, 13 deletions
diff --git a/templates/sidebar.block.linked.php b/templates/sidebar.block.linked.php
index 24ca7e6..74516ae 100644
--- a/templates/sidebar.block.linked.php
+++ b/templates/sidebar.block.linked.php
@@ -3,15 +3,30 @@ $tag2tagservice =& ServiceFactory::getServiceInstance('Tag2TagService');
$userservice =& ServiceFactory::getServiceInstance('UserService');
function displayLinkedTags($tag, $linkType, $uId, $cat_url, $user, $editingMode =false, $precedentTag =null, $level=0, $stopList=array()) {
+
+ if(in_array($tag, $stopList)) {
+ return array('output' => '', 'stoplist' => $stopList);
+ }
+
$tag2tagservice =& ServiceFactory::getServiceInstance('Tag2TagService');
$tagstatservice =& ServiceFactory::getServiceInstance('TagStatService');
$output = '';
$output.= '<tr>';
$output.= '<td></td>';
- $output.= '<td>'. str_repeat('&nbsp;', $level*2) .'<a href="'. sprintf($cat_url, filter($user, 'url'), filter($tag, 'url')) .'" rel="tag">'. filter($tag) .'</a>';
+ $output.= '<td>';
+ $output.= $level == 0?'<b>':'';
+ $output.= str_repeat('&nbsp;', $level*2) .'<a href="'. sprintf($cat_url, filter($user, 'url'), filter($tag, 'url')) .'" rel="tag">'. filter($tag) .'</a>';
+ $output.= $level == 1?'</b>':'';
//$output.= ' - '. $tagstatservice->getMaxDepth($tag, $linkType, $uId);
+ $synonymTags = $tag2tagservice->getAllLinkedTags($tag, '=', $uId);
+ $synonymTags = is_array($synonymTags)?$synonymTags:array($synonymTags);
+ sort($synonymTags);
+ foreach($synonymTags as $synonymTag) {
+ $output.= ", ".$synonymTag;
+ }
+
if($editingMode) {
$output.= ' (';
$output.= '<a href="'.createURL('tag2tagadd', $tag).'">add</a>';
@@ -24,16 +39,26 @@ function displayLinkedTags($tag, $linkType, $uId, $cat_url, $user, $editingMode
$output.= '</td>';
$output.= '</tr>';
- if(!in_array($tag, $stopList)) {
- $linkedTags = $tag2tagservice->getLinkedTags($tag, '>', $uId);
- $precedentTag = $tag;
- $stopList[] = $tag;
- $level = $level + 1;
- foreach($linkedTags as $linkedTag) {
- $output.= displayLinkedTags($linkedTag, $linkType, $uId, $cat_url, $user, $editingMode, $precedentTag, $level, $stopList);
- }
- }
- return $output;
+ $tags = array($tag);
+ $tags = array_merge($tags, $synonymTags);
+ foreach($tags as $tag) {
+
+ if(!in_array($tag, $stopList)) {
+ $linkedTags = $tag2tagservice->getLinkedTags($tag, '>', $uId);
+ $precedentTag = $tag;
+ $stopList[] = $tag;
+ foreach($linkedTags as $linkedTag) {
+ $displayLinkedTags = displayLinkedTags($linkedTag, $linkType, $uId, $cat_url, $user, $editingMode, $precedentTag, $level + 1, $stopList);
+ $output.= $displayLinkedTags['output'];
+ }
+ if(is_array($displayLinkedTags['stopList'])) {
+ $stopList = array_merge($stopList, $displayLinkedTags['stopList']);
+ $stopList = array_unique($stopList);
+ }
+ }
+
+ }
+ return array('output' => $output, 'stopList' => $stopList);
}
$logged_on_userid = $userservice->getCurrentUserId();
@@ -59,7 +84,7 @@ if ($currenttag) {
if(count($explodedTags) > 0) {
$displayLinkedZone = false;
foreach($explodedTags as $explodedTag) {
- if($tag2tagservice->getLinkedTags($explodedTag, '>', $userid)) {
+ if($tag2tagservice->getLinkedTags($explodedTag, '>', $userid) || $tag2tagservice->getLinkedTags($explodedTag, '>', $userid, true) || $tag2tagservice->getLinkedTags($explodedTag, '=', $userid)) {
$displayLinkedZone = true;
break;
}
@@ -86,8 +111,26 @@ if(count($explodedTags) > 0) {
} else {
$editingMode = false;
}
+ $stopList = array();
foreach($explodedTags as $explodedTag) {
- echo displayLinkedTags($explodedTag, '>', $userid, $cat_url, $user, $editingMode);
+ if(!in_array($explodedTag, $stopList)) {
+ // fathers tag
+ $fatherTags = $tag2tagservice->getLinkedTags($explodedTag, '>', $userid, true);
+ if(count($fatherTags)>0) {
+ foreach($fatherTags as $fatherTag) {
+ echo '<tr><td>';
+ echo '<a href="'. sprintf($cat_url, filter($user, 'url'), filter($fatherTag, 'url')) .'" rel="tag">('. filter($fatherTag) .')</a>';
+ echo '</td></tr>';
+ }
+ }
+
+ $displayLinkedTags = displayLinkedTags($explodedTag, '>', $userid, $cat_url, $user, $editingMode, null, 0);
+ echo $displayLinkedTags['output'];
+ if(is_array($displayLinkedTags['stopList'])) {
+ $stopList = array_merge($stopList, $displayLinkedTags['stopList']);
+ }
+ }
+
}
?>
</table>