From 3ef7b27643328861ab47bc1cfd8596bc747b5a09 Mon Sep 17 00:00:00 2001
From: mensonge
Date: Mon, 28 Jan 2008 14:55:07 +0000
Subject: new feature: structured tags, add synonym link
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@29 b3834d28-1941-0410-a4f8-b48e95affb8f
---
templates/editbookmark.tpl.php | 4 +++
templates/sidebar.block.linked.php | 69 +++++++++++++++++++++++++++++++-------
2 files changed, 60 insertions(+), 13 deletions(-)
(limited to 'templates')
diff --git a/templates/editbookmark.tpl.php b/templates/editbookmark.tpl.php
index f707668..3101431 100644
--- a/templates/editbookmark.tpl.php
+++ b/templates/editbookmark.tpl.php
@@ -49,6 +49,10 @@ window.onload = function() {
|
" to include one tag in another. e.g.: europe>france>paris')?> |
+
+ |
+ |
+
|
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.= ' |
';
$output.= ' | ';
- $output.= ''. str_repeat(' ', $level*2) .''. filter($tag) .'';
+ $output.= ' | ';
+ $output.= $level == 0?'':'';
+ $output.= str_repeat(' ', $level*2) .''. 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);
+ foreach($synonymTags as $synonymTag) {
+ $output.= ", ".$synonymTag;
+ }
+
if($editingMode) {
$output.= ' (';
$output.= 'add';
@@ -24,16 +39,26 @@ function displayLinkedTags($tag, $linkType, $uId, $cat_url, $user, $editingMode
$output.= ' | ';
$output.= '
';
- 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 '';
+ echo '('. filter($fatherTag) .')';
+ echo ' |
';
+ }
+ }
+
+ $displayLinkedTags = displayLinkedTags($explodedTag, '>', $userid, $cat_url, $user, $editingMode, null, 0);
+ echo $displayLinkedTags['output'];
+ if(is_array($displayLinkedTags['stopList'])) {
+ $stopList = array_merge($stopList, $displayLinkedTags['stopList']);
+ }
+ }
+
}
?>
--
cgit v1.2.3-54-g00ecf