2008-01-09 16:51:35 +01:00
|
|
|
<?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');
|
2008-01-22 17:16:06 +01:00
|
|
|
$tagstatservice =& ServiceFactory::getServiceInstance('TagStatService');
|
2008-01-09 16:51:35 +01:00
|
|
|
|
|
|
|
$output = '';
|
|
|
|
$output.= '<tr>';
|
|
|
|
$output.= '<td></td>';
|
|
|
|
$output.= '<td>'. str_repeat(' ', $level*2) .'<a href="'. sprintf($cat_url, filter($user, 'url'), filter($tag, 'url')) .'" rel="tag">'. filter($tag) .'</a>';
|
2008-01-22 17:16:06 +01:00
|
|
|
//$output.= ' - '. $tagstatservice->getMaxDepth($tag, $linkType, $uId);
|
|
|
|
|
2008-01-09 16:51:35 +01:00
|
|
|
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)) {
|
2008-01-22 17:16:06 +01:00
|
|
|
$linkedTags = $tag2tagservice->getLinkedTags($tag, '>', $userid);
|
2008-01-09 16:51:35 +01:00
|
|
|
$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 {
|
2008-01-22 17:16:06 +01:00
|
|
|
if($userid != null) {
|
|
|
|
$orphewTags = $tag2tagservice->getOrphewTags('>', $userid);
|
|
|
|
} else {
|
|
|
|
$orphewTags = $tag2tagservice->getOrphewTags('>', $userid, 4, "nb");
|
|
|
|
}
|
|
|
|
|
2008-01-09 16:51:35 +01:00
|
|
|
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) {
|
|
|
|
?>
|
|
|
|
|
2008-01-22 17:16:06 +01:00
|
|
|
<h2>
|
|
|
|
<?php
|
|
|
|
echo T_('Linked Tags').' ';
|
|
|
|
//if($userid != null) {
|
|
|
|
$cUser = $userservice->getUser($userid);
|
|
|
|
echo '<a href="'.createURL('alltags', $cUser['username']).'">('.T_('plus').')</a>';
|
|
|
|
//}
|
|
|
|
?>
|
|
|
|
</h2>
|
|
|
|
|
|
|
|
|
2008-01-09 16:51:35 +01:00
|
|
|
<div id="linked">
|
|
|
|
<table>
|
|
|
|
<?php
|
2008-01-11 10:34:32 +01:00
|
|
|
if(($logged_on_userid != null) && ($userid === $logged_on_userid)) {
|
|
|
|
$editingMode = true;
|
|
|
|
} else {
|
|
|
|
$editingMode = false;
|
|
|
|
}
|
2008-01-09 16:51:35 +01:00
|
|
|
foreach($explodedTags as $explodedTag) {
|
|
|
|
echo displayLinkedTags($explodedTag, '>', $userid, $cat_url, $user, $editingMode);
|
|
|
|
}
|
|
|
|
?>
|
|
|
|
</table>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<?php
|
|
|
|
}
|
|
|
|
}
|
|
|
|
?>
|