]> gitweb.fluxo.info Git - semanticscuttle.git/commitdiff
make adminlinkedtags (menu2Tags) finally work with jquery
authorChristian Weiske <cweiske@cweiske.de>
Fri, 1 Oct 2010 16:21:33 +0000 (18:21 +0200)
committerChristian Weiske <cweiske@cweiske.de>
Fri, 1 Oct 2010 16:21:33 +0000 (18:21 +0200)
data/templates/sidebar.block.menu2.php
www/ajax/getadminlinkedtags.php

index 81ee121367ba98046ad9f51eb768552acfa318af..dec520a32d758f25f0b6638ff81fcd0ee5ab1805 100644 (file)
@@ -61,7 +61,22 @@ jQuery("#maintagsmenu")
         "icons": true,
         "url": '<?php echo ROOT ?>js/themes/default/style.css'
     },
-    plugins : [ "themes", "html_data"],
+    "json_data" : {
+        "ajax" : {
+            "url": function(node) {
+                //-1 is root
+                if (node == -1 ) {
+                    node = "";
+                } else if (node.attr('rel')) {
+                    node = node.attr('rel');
+                } else {
+                    return;
+                }
+                return "<?php echo ROOT ?>ajax/getadminlinkedtags.php?tag=" + node;
+            }
+        }
+    },
+    plugins : [ "themes", "json_data"]
 });
 </script>
 <?php
index 6646c50560c4d62ce86d3e649fd1386d3de8c99f..a08045a7f88a4821cc01e6390199076726aba9be 100644 (file)
 
 /* Return a json file with list of linked tags */
 $httpContentType = 'application/json';
+$httpContentType='text/plain';
 require_once '../www-header.php';
 
-/* Service creation: only useful services are created */
-$b2tservice =SemanticScuttle_Service_Factory::get('Bookmark2Tag');
-$bookmarkservice =SemanticScuttle_Service_Factory::get('Tag');
-$tagstatservice =SemanticScuttle_Service_Factory::get('TagStat');
+$tag = isset($_GET['tag']) ? trim($_GET['tag']) : '';
 
-/* Managing all possible inputs */
-isset($_GET['tag']) ? define('GET_TAG', $_GET['tag']): define('GET_TAG', '');
-isset($_GET['uId']) ? define('GET_UID', $_GET['uId']): define('GET_UID', '');
+function assembleTagData($tag, SemanticScuttle_Service_Tag2Tag $t2t)
+{
+    if ($tag == '') {
+        $linkedTags = $GLOBALS['menu2Tags'];
+    } else {
+        $linkedTags = $t2t->getAdminLinkedTags($tag, '>');
+    }
 
+    $tagData = array();
+    foreach ($linkedTags as $tag) {
+        $tagData[] = createTagArray($tag);
+    }
 
-function displayTag($tag, $uId) {
-       $uId = ($uId==0)?NULL:$uId;  // if user is nobody, NULL allows to look for every public tags
-       
-       $tag2tagservice =SemanticScuttle_Service_Factory::get('Tag2Tag');
-       $output =  '{ id:'.rand().', name:\''.$tag.'\'';
-
-       $linkedTags = $tag2tagservice->getAdminLinkedTags($tag, '>');
-       if(count($linkedTags) > 0) {
-               $output.= ', children: [';
-               foreach($linkedTags as $linkedTag) {
-                       $output.= displayTag($linkedTag, $uId);
-               }
-               $output = substr($output, 0, -1); // remove final comma avoiding IE6 Dojo bug
-               $output.= "]";
-       }
+       return $tagData;
+}
 
-       $output.= '},';
-       return $output;
+function createTagArray($tag)
+{
+    return array(
+        'data' => $tag,
+        'attr' => array('rel' => $tag),
+        //'children' => array('foo', 'bar'),
+        'state' => 'closed'
+    );
 }
 
-?>
 
-{ label: 'name', identifier: 'id', items: [
-<?php
-$json = displayTag(GET_TAG, intval(GET_UID));
-$json = substr($json, 0, -1); // remove final comma avoiding IE6 Dojo bug
-echo $json;
-?>
-] }
+$tagData = assembleTagData(
+    $tag,
+    SemanticScuttle_Service_Factory::get('Tag2Tag')
+);
+//$json = substr($json, 0, -1); // remove final comma avoiding IE6 Dojo bug
+echo json_encode($tagData);
+?>
\ No newline at end of file