New feature: Dynamic tree of tags using Dojo toolkit (used by a menu2 sidebar box) [Config file modified: ]
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@165 b3834d28-1941-0410-a4f8-b48e95affb8f
This commit is contained in:
parent
54991bce61
commit
3c685aa352
5 changed files with 147 additions and 5 deletions
63
ajax/getlinkedtags.php
Normal file
63
ajax/getlinkedtags.php
Normal file
|
@ -0,0 +1,63 @@
|
|||
<?php
|
||||
/***************************************************************************
|
||||
Copyright (C) 2004 - 2006 Scuttle project
|
||||
http://sourceforge.net/projects/scuttle/
|
||||
http://scuttle.org/
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
***************************************************************************/
|
||||
|
||||
/* Return a json file with list of linked tags */
|
||||
|
||||
require_once('../header.inc.php');
|
||||
|
||||
$b2tservice =& ServiceFactory::getServiceInstance('Bookmark2TagService');
|
||||
$bookmarkservice =& ServiceFactory::getServiceInstance('TagService');
|
||||
$userservice =& ServiceFactory::getServiceInstance('UserService');
|
||||
$tagstatservice =& ServiceFactory::getServiceInstance('TagStatService');
|
||||
|
||||
$tag = $_GET['tag'];
|
||||
$uId = $_GET['uId'];
|
||||
|
||||
if ($userservice->isLoggedOn()) {
|
||||
$loggedon = true;
|
||||
$currentUser = $userservice->getCurrentUser();
|
||||
$currentUserID = $userservice->getCurrentUserId();
|
||||
}
|
||||
|
||||
function displayTag($tag, $uId) {
|
||||
$tag2tagservice =& ServiceFactory::getServiceInstance('Tag2TagService');
|
||||
$output = '{ id:'.rand().', name:\''.$tag.'\'';
|
||||
|
||||
$linkedTags = $tag2tagservice->getLinkedTags($tag, '>', $uId);
|
||||
if(count($linkedTags) > 0) {
|
||||
$output.= ', children: [';
|
||||
foreach($linkedTags as $linkedTag) {
|
||||
$output.= displayTag($linkedTag, $uId);
|
||||
}
|
||||
$output.= "]";
|
||||
}
|
||||
|
||||
$output.= '},';
|
||||
return $output;
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
{ label: 'name', identifier: 'id', items: [
|
||||
<?php
|
||||
echo displayTag($tag, $uId);
|
||||
?>
|
||||
] }
|
|
@ -79,6 +79,7 @@ $thumbnailsKey = ''; #then artviper.net send you a UserId and a secretKey
|
|||
$enableCommonTagDescription = true; # enableCommonTagDescription {true, false}
|
||||
$menuTag = 'menu'; # name of the tag whose subtags will appear into the menu box
|
||||
$maxSizeMenuBlock = 7; # maximum number of items (tags) appearing into menu box
|
||||
$menu2Tags = array('example', 'of', 'menu', 'tags'); # list of tags used by menu2 sidebar box (void list = hidden menu2 box)
|
||||
|
||||
### Other ###
|
||||
$sizeSearchHistory = 10; # number of users' searches that are saved {1..10[Default]..-1[Unlimited]}
|
||||
|
|
17
scuttle.css
17
scuttle.css
|
@ -243,7 +243,7 @@ div#sidebar a {
|
|||
div#sidebar a:hover {
|
||||
color: #773;
|
||||
}
|
||||
div#sidebar div {
|
||||
div#sidebar>div {
|
||||
background: #FFF url('bg_sidebar.png') bottom repeat-x;
|
||||
border: 1px solid #CC8;
|
||||
color: #555;
|
||||
|
@ -282,6 +282,10 @@ div#sidebar ul li {
|
|||
margin: 0.5em 0;
|
||||
}
|
||||
|
||||
div#related {
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
/* TAGS */
|
||||
|
||||
p.commondescription {
|
||||
|
@ -312,6 +316,17 @@ p.tags span.selected {
|
|||
background: #CEC;
|
||||
}
|
||||
|
||||
.treeTag {
|
||||
color: #999955;
|
||||
}
|
||||
.treeTag:hover {
|
||||
cursor: pointer;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.treeTag.selected {
|
||||
background: #CEC;
|
||||
}
|
||||
|
||||
/* PROFILE */
|
||||
|
||||
table.profile th {
|
||||
|
|
62
templates/sidebar.block.menu2.php
Normal file
62
templates/sidebar.block.menu2.php
Normal file
|
@ -0,0 +1,62 @@
|
|||
<?php
|
||||
$tag2tagservice =& ServiceFactory::getServiceInstance('Tag2TagService');
|
||||
$userservice =& ServiceFactory::getServiceInstance('UserService');
|
||||
|
||||
require_once('sidebar.linkedtags.inc.php');
|
||||
|
||||
/* Manage input */
|
||||
$userid = isset($userid)?$userid:0;
|
||||
$user = isset($user)?$user:null;
|
||||
|
||||
|
||||
$logged_on_userid = $userservice->getCurrentUserId();
|
||||
if ($logged_on_userid === false) {
|
||||
$logged_on_userid = NULL;
|
||||
}
|
||||
|
||||
if(!isset($user)) {
|
||||
$cat_url = createURL('tags', '%2$s');
|
||||
}
|
||||
|
||||
$menu2Tags = $GLOBALS['menu2Tags'];
|
||||
if (sizeOf($menu2Tags) > 0) {
|
||||
?>
|
||||
|
||||
<h2><?php echo '<span>'.T_('Menu Tags').'</span> ';?></h2>
|
||||
|
||||
|
||||
<div id="related"><?php
|
||||
foreach($menu2Tags as $menu2Tag) {
|
||||
|
||||
echo '<div dojoType="dojo.data.ItemFileReadStore" url="http://127.0.0.6/SemanticScuttle/trunk/ajax/getlinkedtags.php?tag='.$menu2Tag.'" 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--> <?php $cUser = $userservice->getUser($userid); ?> <?php if($userid>0): ?>
|
||||
<?php if($userid==$logged_on_userid): ?>
|
||||
<p style="text-align: right"><a
|
||||
href="<?php echo createURL('alltags', $cUser['username']); ?>"
|
||||
title="<?php echo T_('See all your tags')?>"><?php echo T_('all your tags'); ?></a>
|
||||
→</p>
|
||||
<?php else: ?>
|
||||
<p style="text-align: right"><a
|
||||
href="<?php echo createURL('alltags', $cUser['username']); ?>"
|
||||
title="<?php echo T_('See all tags from this user')?>"><?php echo T_('all tags from this user'); ?></a>
|
||||
→</p>
|
||||
<?php endif; ?> <?php else : ?>
|
||||
<p style="text-align: right"><a
|
||||
href="<?php echo createURL('populartags', $cUser['username']); ?>"
|
||||
title="<?php echo T_('See popular tags')?>"><?php echo T_('Popular Tags'); ?></a>
|
||||
→</p>
|
||||
<?php endif; ?></div>
|
||||
|
||||
<?php
|
||||
}
|
||||
?>
|
|
@ -23,7 +23,7 @@ if(isset($rsschannels)) {
|
|||
src="<?php echo $GLOBALS['root']; ?>jsScuttle.php"></script>
|
||||
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="http://ajax.googleapis.com/ajax/libs/dojo/1.2/dijit/themes/tundra/tundra.css">
|
||||
href="http://ajax.googleapis.com/ajax/libs/dojo/1.2/dijit/themes/nihilo/nihilo.css">
|
||||
|
||||
<script type="text/javascript"
|
||||
src="http://ajax.googleapis.com/ajax/libs/dojo/1.2/dojo/dojo.xd.js"
|
||||
|
@ -32,14 +32,15 @@ if(isset($rsschannels)) {
|
|||
<script type="text/javascript">
|
||||
dojo.require("dojo.parser");
|
||||
dojo.require("dojo.data.ItemFileReadStore");
|
||||
dojo.require("dojox.form.MultiComboBox");
|
||||
dojo.require("dojox.form.MultiComboBox");
|
||||
dojo.require("dijit.Tree");
|
||||
</script>
|
||||
<?php endif ?>
|
||||
|
||||
</head>
|
||||
|
||||
<body class="tundra">
|
||||
<!-- the tundra class is used by Dojo widgets -->
|
||||
<body class="nihilo">
|
||||
<!-- the class is used by Dojo widgets -->
|
||||
|
||||
<?php
|
||||
$headerstyle = '';
|
||||
|
|
Loading…
Reference in a new issue