Interface fix: use DOJO hierarchy in linked tags box

git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@216 b3834d28-1941-0410-a4f8-b48e95affb8f
This commit is contained in:
mensonge 2009-01-06 16:39:02 +00:00
parent 26c2792d60
commit 829d5327de
5 changed files with 71 additions and 49 deletions

View file

@ -34,6 +34,8 @@ isset($_GET['uId']) ? define('GET_UID', $_GET['uId']): define('GET_UID', '');
function displayTag($tag, $uId) { function displayTag($tag, $uId) {
$uId = ($uId==0)?NULL:$uId; // if user is nobody, NULL allows to look for every public tags
$tag2tagservice =& ServiceFactory::getServiceInstance('Tag2TagService'); $tag2tagservice =& ServiceFactory::getServiceInstance('Tag2TagService');
$output = '{ id:'.rand().', name:\''.$tag.'\''; $output = '{ id:'.rand().', name:\''.$tag.'\'';

View file

@ -78,6 +78,7 @@ if (isset($userid)) {
$tplVars['sidebar_blocks'] = array('linked'); $tplVars['sidebar_blocks'] = array('linked');
$tplVars['userid'] = $userid; $tplVars['userid'] = $userid;
$tplVars['loadjs'] = true;
$tplVars['subtitle'] = $pagetitle; $tplVars['subtitle'] = $pagetitle;
$templateservice->loadTemplate('tags.tpl', $tplVars); $templateservice->loadTemplate('tags.tpl', $tplVars);

View file

@ -77,6 +77,7 @@ if (isset($userid)) {
$tplVars['sidebar_blocks'] = array('linked'); $tplVars['sidebar_blocks'] = array('linked');
$tplVars['subtitle'] = $pagetitle; $tplVars['subtitle'] = $pagetitle;
$tplVars['loadjs'] = true;
$templateservice->loadTemplate('tags.tpl', $tplVars); $templateservice->loadTemplate('tags.tpl', $tplVars);

View file

@ -13,84 +13,102 @@ $summarizeLinkedTags = isset($summarizeLinkedTags)?$summarizeLinkedTags:false;
$logged_on_userid = $userservice->getCurrentUserId(); $logged_on_userid = $userservice->getCurrentUserId();
if ($logged_on_userid === false) { if ($logged_on_userid === false) {
$logged_on_userid = NULL; $logged_on_userid = NULL;
} }
$explodedTags = array(); $explodedTags = array();
if (strlen($currenttag)>0) { if (strlen($currenttag)>0) {
$explodedTags = explode('+', $currenttag); $explodedTags = explode('+', $currenttag);
} else { } else {
if($summarizeLinkedTags == true) { if($summarizeLinkedTags == true) {
$orphewTags = $tag2tagservice->getOrphewTags('>', $userid, 4, "nb"); $orphewTags = $tag2tagservice->getOrphewTags('>', $userid, 4, "nb");
} else { } else {
$orphewTags = $tag2tagservice->getOrphewTags('>', $userid); $orphewTags = $tag2tagservice->getOrphewTags('>', $userid);
} }
foreach($orphewTags as $orphewTag) { foreach($orphewTags as $orphewTag) {
$explodedTags[] = $orphewTag['tag']; $explodedTags[] = $orphewTag['tag'];
} }
} }
?> ?>
<?php <?php
if(($logged_on_userid != null) && ($userid === $logged_on_userid)) { if(($logged_on_userid != null) && ($userid === $logged_on_userid)) {
$editingMode = true; $editingMode = true;
} else { } else {
$editingMode = false; $editingMode = false;
} }
$this->includeTemplate("dojo.inc");
?> ?>
<?php if(count($explodedTags)>0 || $editingMode):?> <?php if(count($explodedTags)>0 || $editingMode):?>
<h2> <h2><?php
<?php
echo T_('Linked Tags').' ';
//if($userid != null) { echo T_('Linked Tags').' ';
$cUser = $userservice->getUser($userid); //if($userid != null) {
//echo '<small><a href="'.createURL('alltags', $cUser['username']).'">('.T_('all tags').')</a></small>'; $cUser = $userservice->getUser($userid);
//} //echo '<small><a href="'.createURL('alltags', $cUser['username']).'">('.T_('all tags').')</a></small>';
?> //}
</h2> ?></h2>
<?php //endif?> <?php //endif?>
<div id="linked"> <div id="related">
<table>
<?php <!-- table-->
if($editingMode) { <?php
echo '<tr><td></td><td>'; if($editingMode) {
echo ' (<a href="'. createURL('tag2tagadd','') .'" rel="tag">'.T_('Add new link').'</a>) '; //echo '<tr><td></td><td>';
echo ' (<a href="'. createURL('tag2tagdelete','') .'" rel="tag">'.T_('Delete link').'</a>)'; echo '<p style="margin-bottom: 13px;text-align:center;">';
echo '</td></tr>'; echo ' (<a href="'. createURL('tag2tagadd','') .'" rel="tag">'.T_('Add new link').'</a>) ';
} echo ' (<a href="'. createURL('tag2tagdelete','') .'" rel="tag">'.T_('Delete link').'</a>)';
echo '</p>';
//echo '</td></tr>';
}
if(strlen($user)==0) {
$cat_url = createURL('tags', '%2$s');
}
$stopList = array();
foreach($explodedTags as $explodedTag) {
if(!in_array($explodedTag, $stopList)) {
if(strlen($user)==0) {
$cat_url = createURL('tags', '%2$s');
}
$stopList = array();
foreach($explodedTags as $explodedTag) {
if(!in_array($explodedTag, $stopList)) {
// fathers tag // fathers tag
$fatherTags = $tag2tagservice->getLinkedTags($explodedTag, '>', $userid, true); /*$fatherTags = $tag2tagservice->getLinkedTags($explodedTag, '>', $userid, true);
if(count($fatherTags)>0) { if(count($fatherTags)>0) {
foreach($fatherTags as $fatherTag) { foreach($fatherTags as $fatherTag) {
echo '<tr><td></td><td>'; echo '<tr><td></td><td>';
echo '<a href="'. sprintf($cat_url, filter($user, 'url'), filter($fatherTag, 'url')) .'" rel="tag">('. filter($fatherTag) .')</a>'; echo '<a href="'. sprintf($cat_url, filter($user, 'url'), filter($fatherTag, 'url')) .'" rel="tag">('. filter($fatherTag) .')</a>';
echo '</td></tr>'; echo '</td></tr>';
} }
} }
$displayLinkedTags = displayLinkedTags($explodedTag, '>', $userid, $cat_url, $user, $editingMode, null, 1); $displayLinkedTags = displayLinkedTags($explodedTag, '>', $userid, $cat_url, $user, $editingMode, null, 1);
echo $displayLinkedTags['output']; echo $displayLinkedTags['output'];
if(is_array($displayLinkedTags['stopList'])) { if(is_array($displayLinkedTags['stopList'])) {
$stopList = array_merge($stopList, $displayLinkedTags['stopList']); $stopList = array_merge($stopList, $displayLinkedTags['stopList']);
} }*/
} echo '<div dojoType="dojo.data.ItemFileReadStore" url="'.ROOT.'ajax/getlinkedtags.php?tag='.$explodedTag.'&uId='.$userid.'" jsid="linkedTagStore" ></div>';
echo '<div dojoType="dijit.Tree" store="linkedTagStore" labelAttr="name" >';
echo '<script type="dojo/method" event="onClick" args="item">';
$returnUrl = sprintf($cat_url, filter($user, 'url'), filter('', 'url'));
echo 'window.location = "'.$returnUrl.'"+item.name';
echo '</script>';
echo '<script type="dojo/method" event="getLabelClass" args="item">';
echo 'return \'treeTag\';';
echo '</script>';
echo '</div>';
} }
?>
</table> }
?>
<!-- /table-->
</div> </div>
<?php endif?> <?php endif?>

View file

@ -24,7 +24,7 @@ if (sizeOf($menu2Tags) > 0) {
$this->includeTemplate("dojo.inc"); $this->includeTemplate("dojo.inc");
?> ?>
<h2><?php echo '<span>'.T_('Menu Tags').'</span> ';?></h2> <h2><?php echo '<span>'.T_('Featured Menu Tags').'</span> ';?></h2>
<div id="related"><?php <div id="related"><?php