diff options
author | mensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2008-11-20 13:42:03 +0000 |
---|---|---|
committer | mensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2008-11-20 13:42:03 +0000 |
commit | 3c685aa352587b752af61c6e80b1645ca3830316 (patch) | |
tree | 1e0782ec1ba91c8bdf5706cb20d702fa261f9be2 | |
parent | 54991bce619b2840452594e8a78004b7389445ed (diff) | |
download | semanticscuttle-3c685aa352587b752af61c6e80b1645ca3830316.tar.gz semanticscuttle-3c685aa352587b752af61c6e80b1645ca3830316.tar.bz2 |
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
-rw-r--r-- | ajax/getlinkedtags.php | 63 | ||||
-rw-r--r-- | config.inc.php.example | 1 | ||||
-rw-r--r-- | scuttle.css | 17 | ||||
-rw-r--r-- | templates/sidebar.block.menu2.php | 62 | ||||
-rw-r--r-- | templates/top.inc.php | 9 |
5 files changed, 147 insertions, 5 deletions
diff --git a/ajax/getlinkedtags.php b/ajax/getlinkedtags.php new file mode 100644 index 0000000..fa8f2d0 --- /dev/null +++ b/ajax/getlinkedtags.php @@ -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); +?> +] } diff --git a/config.inc.php.example b/config.inc.php.example index 9966286..47e314e 100644 --- a/config.inc.php.example +++ b/config.inc.php.example @@ -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]} diff --git a/scuttle.css b/scuttle.css index f148a68..7295987 100644 --- a/scuttle.css +++ b/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 { diff --git a/templates/sidebar.block.menu2.php b/templates/sidebar.block.menu2.php new file mode 100644 index 0000000..9b660fa --- /dev/null +++ b/templates/sidebar.block.menu2.php @@ -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 +} +?> diff --git a/templates/top.inc.php b/templates/top.inc.php index dca9036..88a949a 100644 --- a/templates/top.inc.php +++ b/templates/top.inc.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 = ''; |