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.php78
1 files changed, 78 insertions, 0 deletions
diff --git a/templates/sidebar.block.linked.php b/templates/sidebar.block.linked.php
new file mode 100644
index 0000000..23bcb0c
--- /dev/null
+++ b/templates/sidebar.block.linked.php
@@ -0,0 +1,78 @@
+<?php
+$tag2tagservice =& ServiceFactory::getServiceInstance('Tag2TagService');
+$userservice =& ServiceFactory::getServiceInstance('UserService');
+
+function displayLinkedTags($tag, $linkType, $uId, $cat_url, $user, $editingMode =false, $precedentTag =null, $level=0, $stopList=array()) {
+ $tag2tagservice =& ServiceFactory::getServiceInstance('Tag2TagService');
+
+ $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>';
+ if($editingMode) {
+ $output.= ' (';
+ $output.= '<a href="'.createURL('tag2tagadd', $tag).'">add</a>';
+ if($precedentTag != null) {
+ $output.= ' - ';
+ $output.= '<a href="'.createURL('tag2tagdelete', $precedentTag.'/'.$tag).'">del</a>';
+ }
+ $output.= ')';
+ }
+ $output.= '</td>';
+ $output.= '</tr>';
+
+ if(!in_array($tag, $stopList)) {
+ $linkedTags = $tag2tagservice->getLinkedTags($tag, '>', $userid, $level);
+ $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;
+}
+
+
+$logged_on_userid = $userservice->getCurrentUserId();
+if ($logged_on_userid === false) {
+ $logged_on_userid = NULL;
+}
+
+$explodedTags = array();
+if ($currenttag) {
+ $explodedTags = explode('+', $currenttag);
+} else {
+ $orphewTags = $tag2tagservice->getOrphewTags('>', $userid);
+ foreach($orphewTags as $orphewTag) {
+ $explodedTags[] = $orphewTag['tag'];
+ }
+}
+
+if(count($explodedTags) > 0) {
+ $displayLinkedZone = false;
+ foreach($explodedTags as $explodedTag) {
+ if($tag2tagservice->getLinkedTags($explodedTag, '>', $userid)) {
+ $displayLinkedZone = true;
+ break;
+ }
+ }
+ if ($displayLinkedZone) {
+?>
+
+<h2><?php echo T_('Linked Tags'); ?></h2>
+<div id="linked">
+ <table>
+ <?php
+ $editingMode = ($userid === $logged_on_userid);
+ foreach($explodedTags as $explodedTag) {
+ echo displayLinkedTags($explodedTag, '>', $userid, $cat_url, $user, $editingMode);
+ }
+ ?>
+ </table>
+</div>
+
+<?php
+ }
+}
+?>