diff options
Diffstat (limited to 'templates')
-rw-r--r-- | templates/sidebar.block.linked.php | 78 | ||||
-rw-r--r-- | templates/sidebar.block.menu.php | 64 | ||||
-rw-r--r-- | templates/sidebar.linkedtags.inc.php | 82 |
3 files changed, 148 insertions, 76 deletions
diff --git a/templates/sidebar.block.linked.php b/templates/sidebar.block.linked.php index d415c27..b534db8 100644 --- a/templates/sidebar.block.linked.php +++ b/templates/sidebar.block.linked.php @@ -2,81 +2,7 @@ $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'); - - // link '>' - if($level>1) { - if($editingMode) { - $link = '<small><a href="'.createURL('tag2tagedit', $precedentTag.'/'.$tag).'" title="'._('Edit link').'">></a> </small>'; - } else { - $link = '> '; - } - } - - $output = ''; - $output.= '<tr>'; - $output.= '<td></td>'; - $output.= '<td>'; - $output.= $level == 1?'<b>':''; - $output.= str_repeat(' ', $level*2) .$link.'<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); - $synonymList = ''; - foreach($synonymTags as $synonymTag) { - //$output.= ", ".$synonymTag; - $synonymList.= $synonymTag.' '; - } - if(count($synonymTags)>0) { - $output.= ', '.$synonymTags[0]; - } - if(count($synonymTags)>1) { - $output.= '<span title="'.T_('Synonyms:').' '.$synonymList.'">, etc</span>'; - } - - /*if($editingMode) { - $output.= ' ('; - $output.= '<a href="'.createURL('tag2tagadd', $tag).'" title="'._('Add a subtag').'">+</a>'; - if(1) { - $output.= ' - '; - $output.= '<a href="'.createURL('tag2tagdelete', $tag).'">-</a>'; - } - $output.= ')'; - }*/ - $output.= '</td>'; - $output.= '</tr>'; - - $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); -} +require_once('sidebar.linkedtags.inc.php'); $logged_on_userid = $userservice->getCurrentUserId(); if ($logged_on_userid === false) { @@ -115,7 +41,7 @@ if(($logged_on_userid != null) && ($userid === $logged_on_userid)) { echo T_('Linked Tags').' '; //if($userid != null) { $cUser = $userservice->getUser($userid); - echo '<a href="'.createURL('alltags', $cUser['username']).'">('.T_('plus').')</a>'; + echo '<small><a href="'.createURL('alltags', $cUser['username']).'">('.T_('all tags').')</a></small>'; //} ?> </h2> diff --git a/templates/sidebar.block.menu.php b/templates/sidebar.block.menu.php new file mode 100644 index 0000000..20db5e0 --- /dev/null +++ b/templates/sidebar.block.menu.php @@ -0,0 +1,64 @@ +<?php +$tag2tagservice =& ServiceFactory::getServiceInstance('Tag2TagService'); +$userservice =& ServiceFactory::getServiceInstance('UserService'); + +require_once('sidebar.linkedtags.inc.php'); + +$logged_on_userid = $userservice->getCurrentUserId(); +if ($logged_on_userid === false) { + $logged_on_userid = NULL; +} + +// editing mode +if(($logged_on_userid != null) && ($userid === $logged_on_userid)) { + $editingMode = true; +} else { + $editingMode = false; +} + +if(strlen($user)==0) { + $cat_url = createURL('tags', '%2$s'); +} + +$menuTags = $tag2tagservice->getMenuTags($userid); +if (sizeof($menuTags) > 0) { +?> + +<h2> +<?php + echo '<span title="'.sprintf(T_('Tags included into the tag \'%s\''), $GLOBALS['menuTag']).'">'.T_('Menu Tags').'</span> '; + $cUser = $userservice->getUser($userid); + echo '<small span title="'.T_('See all tags').'"><a href="'.createURL('alltags', $cUser['username']).'">('.T_('all tags').')</a></small>'; + //} +?> +</h2> + + +<div id="related"> +<table> +<?php + if($editingMode) { + echo '<tr><td></td><td>'; + echo ' (<a href="'. createURL('tag2tagadd','') .'" rel="tag">'.T_('Add new link').'</a>) '; + echo ' (<a href="'. createURL('tag2tagdelete','') .'" rel="tag">'.T_('Delete link').'</a>)'; + echo '</td></tr>'; + } + + $stopList = array(); + foreach($menuTags as $menuTag) { + $tag = $menuTag['tag']; + if(!in_array($tag, $stopList)) { + $displayLinkedTags = displayLinkedTags($tag, '>', $userid, $cat_url, $user, $editingMode, null, 1); + echo $displayLinkedTags['output']; + if(is_array($displayLinkedTags['stopList'])) { + $stopList = array_merge($stopList, $displayLinkedTags['stopList']); + } + } + } +?> +</table> +</div> + +<?php +} +?> diff --git a/templates/sidebar.linkedtags.inc.php b/templates/sidebar.linkedtags.inc.php new file mode 100644 index 0000000..95b420a --- /dev/null +++ b/templates/sidebar.linkedtags.inc.php @@ -0,0 +1,82 @@ +<?php +/* +To be inserted into blocks where structured tags must be displayed in a tree format. +*/ + +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'); + + // link '>' + if($level>1) { + if($editingMode) { + $link = '<small><a href="'.createURL('tag2tagedit', $precedentTag.'/'.$tag).'" title="'._('Edit link').'">></a> </small>'; + } else { + $link = '> '; + } + } + + $output = ''; + $output.= '<tr>'; + $output.= '<td></td>'; + $output.= '<td>'; + $output.= $level == 1?'<b>':''; + $output.= str_repeat(' ', $level*2) .$link.'<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); + $synonymList = ''; + foreach($synonymTags as $synonymTag) { + //$output.= ", ".$synonymTag; + $synonymList.= $synonymTag.' '; + } + if(count($synonymTags)>0) { + $output.= ', '.$synonymTags[0]; + } + if(count($synonymTags)>1) { + $output.= '<span title="'.T_('Synonyms:').' '.$synonymList.'">, etc</span>'; + } + + /*if($editingMode) { + $output.= ' ('; + $output.= '<a href="'.createURL('tag2tagadd', $tag).'" title="'._('Add a subtag').'">+</a>'; + if(1) { + $output.= ' - '; + $output.= '<a href="'.createURL('tag2tagdelete', $tag).'">-</a>'; + } + $output.= ')'; + }*/ + $output.= '</td>'; + $output.= '</tr>'; + + $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); +} + +?> |