'', 'stoplist' => $stopList);
    }
    $tag2tagservice =& ServiceFactory::getServiceInstance('Tag2TagService');
    $tagstatservice =& ServiceFactory::getServiceInstance('TagStatService');
    // link '>'
    if($level>1) {
	if($editingMode) {
	    $link = '> ';
	} else {
	    $link = '> ';	
	}
    }
    $output = '';
    $output.= '
';
    $output.= '| ';
    $output.= ' | ';
    $output.= $level ==  1?'':'';
    $output.= str_repeat(' ', $level*2) .$link.''. filter($tag) .'';
    $output.= $level ==  1?'':'';
    //$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.= ', etc';
    }
    /*if($editingMode) {
	$output.= ' (';
	$output.= '+';
	if(1) {
	    $output.= ' - ';
	    $output.= '-';
	}
	$output.= ')';
    }*/
    $output.= '';
    $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();
if ($logged_on_userid === false) {
    $logged_on_userid = NULL;
}
$explodedTags = array();
if ($currenttag) {
    $explodedTags = explode('+', $currenttag);
} else {
    if($summarizeLinkedTags == true) {
	$orphewTags = $tag2tagservice->getOrphewTags('>', $userid, 4, "nb");
    } else {
        $orphewTags = $tag2tagservice->getOrphewTags('>', $userid);
    }
    foreach($orphewTags as $orphewTag) {
	$explodedTags[] = $orphewTag['tag'];
    }
}
?>
0 || $editingMode):?>
getUser($userid);
	echo '('.T_('plus').')';
    //}
?>
    
    |  | ';
	    echo ' ('.T_('Add new link').') ';
	    echo ' ('.T_('Delete link').')';
	    echo '';
	}
	if(strlen($user)==0) {
	    $cat_url = createURL('tags', '%2$s');
	}
	$stopList = array();
	foreach($explodedTags as $explodedTag) {
	    if(!in_array($explodedTag, $stopList)) {
		// fathers tag
		$fatherTags = $tag2tagservice->getLinkedTags($explodedTag, '>', $userid, true);
		if(count($fatherTags)>0) {
		    foreach($fatherTags as $fatherTag) {
			echo ' | |  | ';
			echo '('. filter($fatherTag) .')';
			echo ' | 
';
		    }
		}
		$displayLinkedTags = displayLinkedTags($explodedTag, '>', $userid, $cat_url, $user, $editingMode, null, 1);
		echo $displayLinkedTags['output'];
		if(is_array($displayLinkedTags['stopList'])) {
	    	    $stopList = array_merge($stopList, $displayLinkedTags['stopList']);
		}
	    }
	}
    ?>