
Renders a bulleted or numbered list as a collapsible/expandable tree of nodes.
This plugin leverages the dTree JavaScript tree menu by Geir Landr� as well as code borrowed from Foswiki:Extensions.RenderListPlugin.
 Place the tag %TREEBROWSER{ parameters }% immediately before a bulleted or numbered list. The lists can be handcrafted, generated by another Plugin, a %TOC%, or the result of a FormattedSearch. The list will be rendered in a tree-like fashion (similar to the explorer folder list). Whenever a new indentation level is started, the subsequent nodes at this or a lower indentation level are shown as descendents of the preceding node. The following parameters can be used to configure the appearance of the tree:                      
| Parameter | Description | Default | 
|---|---|---|
| "name"ortheme="name" | Select a rendering theme | none | 
| title | Required. This text serves as the root of the tree | none | 
| openAll | If on, the tree is shown fully expanded. | off | 
| openTo | Must be an integer. If present, the tree is expanded to the given node, as numbered from the root. | 0 | 
| shared | Must be a string. If present, the state of the tree is shared across all trees using this string. For example, if the tree is used in the WebLeftBar?, the state will hold at all topics with this WebLeftBar?. It's basically the name of the JavaScript? object representing your tree. | none | 
| uselines | Set to falseif you don't want to show lines linking nodes and leafs in the tree | true | 
| useplusminus | Set to falseif you don't want to show '-' and '+' signs. One can use something likeonclick='javascript: tree.o($index);'in the tree item to trigger opening/closing of a node. | true | 
| noindent | Set to trueto show children at the level of their parent. It suppresses children indentation. Enablingnoindentwill disableuselinesanduseplusminus. | false | 
| nocss | Set to trueto prevent inclusion ofdtree.css. | false | 
| closesamelevel | If trueonly one node within a parent can be expanded at the same time. openAll() and closeAll() functions do not work when this is enabled. | false | 
| noroot | Prevents rendering of the title line. Useful if you don't want to show any title. | false | 
| warn | Text to be displayed if no tree was found. | none | 
| style | Name of the CSS file to include without the .cssextension. The CSS file must be attached to this topic. | dtree | 
| autotoggle | Set to onwill enable node open/close when clicking the node item. Typically used for menu style tree along withnoindent. | off | 
| nodeactions | Defines node functionality in a comma separated list of HTML event and dTree function. Typically used for menu style tree along with noindent. Format:
 eventis an HTML event e.g.onclick,ondblclick,onmouseover,onmouseout...functionis one of the three dTree functions:open,close,toggle | none | 
| popup | Set to onto enable pop-up menu mode. Typically used withclosesamelevel. See pop-up menu example. | off | 
| closepopupdelay | Pop-up mode only. Delay in millisecond before all popup close once the mouse cursor has left the menu structure. | 1000 | 
| popupoffset | Provides x and y offset from parent node for pop-up menus. Allows for fine tunning of pop-up position. | 0,0 | 
| firstpopupoffset | Provides x and y offset for first level pop-up menus. Introduce as a workaround for PatternSkin issues. | 0,0 | 
| useopacity | Used to generate extra dtreeTransluscentBackgrounddiv. Enables popup with translucent background and opaque text. | off | 
 Rendering themes can be defined by 
Set < name >_THEME = treeSet < name >_THEME = icon, [< root icon image >], [< icon image >], [< folder icon image >], [< open folder icon image >] ,
,  ,
,  ,
, 
If JavaScript is not enabled, the list is rendered as usual, and the =%TREEBROWSER% tag is omitted.
* bullets Like thismyicon.gif, or  
 %ATTACHURL%/globe.gif,  
 %ATTACHURL%/home.gif,  
 %ATTACHURL%/virtualhome.gif,  
 %ATTACHURL%/group.gif,  
 %ATTACHURL%/persons.gif,  
 virtualpersons.gif,  
 %ATTACHURL%/person.gif,  
 %ATTACHURL%/virtualperson.gif,  
 %ATTACHURL%/email.gif,  
 %ATTACHURL%/trend.gif,  
 %ATTACHURL%/folder.gif,  
 %ATTACHURL%/file.gif,  
 %ATTACHURL%/doc.gif,  
 %ATTACHURL%/image.gif,  
 %ATTACHURL%/pdf.gif,  
 %ATTACHURL%/ppt.gif,  
 %ATTACHURL%/sound.gif,  
 %ATTACHURL%/xls.gif,  
 %ATTACHURL%/zip.gif,  
 %ATTACHURL%/see.gificon:myicon.gif Followed by normal bullet texticon:https://nkwiki.de/foswiki/pub/System/DocumentGraphics/xls.png Followed by normal bullet textA number of classes are used to facilitate look and feel customizations through CSS.
This class won't change from one tree to the other:
treeBrowserPlugin: given to the div element encapsulating the whole tree and javascript.  Those classes are prefixed with the style parameter. For clarity of the documentation we used the default dtree prefix. Variable classes allow for multiple tree style support on one page. 
dtree: given to the div element encapsulating the whole tree. Since v0.1. dtreeRoot: given to the div element encapsulating the root or title of the tree. Introduced in v1.1. dtreeLeaf: given to the div element encapsulating a tree item without children. Introduced in v0.9. dtreeNodeOpened: given to the div element encapsulating a tree item that is showing children. Introduced in v0.9. dtreeNodeClosed: given to the div element encapsulating a tree item that is hiding children. Introduced in v0.9. dtreeChildren: given to the div element encapsulating the children of a tree item. Changed in v0.9. Formerly clip. dtreeLevel0: given to the div element encapsulating the children of the tree root item. Introduced in v0.9. dtreeLevel1: given to the div element encapsulating the children of level 0 items. Introduced in v0.9. dtreeLevel2: given to the div element encapsulating the children of level 1 items. Introduced in v0.9. dtreeLeveln: given to the div element encapsulating the children of level n-1 items. Introduced in v0.9. dtreeTransluscentBackground: given to the div element used for popup translucent background. Introduced in v1.5. dtreeFakeItem: given to the div element simulating nodes and leaf in dtreeTransluscentBackground. It guarantees same size for the translucent background and actual dtreeChildren div. Typically you should give dtreeFakeItem the same margin and padding properties as for dtreeLeaf, dtreeNodeOpened and dtreeNodeclosed. Introduced in v1.5. 
%TREEBROWSER{"file" title="[[%HOMETOPIC%][%INCLUDINGWEB% Web Home]]" shared="left"}%
   * [[WebChanges][Changes]] 
   * [[WebIndex][Index]]
   * [[WebSearch][Search]]
   * this is a very very very long text
   * *Webs*
%WEBLIST{"      * [[$name.%HOMETOPIC%][$name]]"}%
generates
 This tree could be used in the WebLeftBar?, for example. Clicking on the plus icon next to Webs will expand the subtree below that node. 
To add "collapse/expand all nodes" functionalities do something like:
open all | close all %TREEBROWSER{"file" title="[[%HOMETOPIC%][%INCLUDINGWEB% Web Home]]" shared="tree"}% ...
autotoggle example Code
%TREEBROWSER{"thread" noroot="on" shared="menudemo" noindent="on" autotoggle="on" style="dmenu"}%
   * Vegetables
      * Carot
      * Leek
      * Tomato
      * Potato 
   * Fruits
      * Banana 
      * Grape fruit       
         * Pink
         * Yellow 
      * Peach
| If installed | Simulated | 
|---|---|
nodeactions example Code
%TREEBROWSER{"thread" noroot="on" shared="memenudemo" noindent="on" style="dmenu" nodeactions="onmouseover open, onclick close"}%
   * Vegetables
      * Carot
      * Leek
      * Tomato
      * Potato 
   * Fruits
      * Banana
      * Grape fruit       
         * Pink
         * Yellow 
      * Peach
Code
%TREEBROWSER{"thread" noroot="on" shared="memenudemo" noindent="on" style="dmenu" nodeactions="onmouseover open, onclick close", closesamelevel="on" popup="on" popupoffset="-10,-4" }%
   * Vegetables
      * Carot
      * Leek
      * Tomato
      * Potato 
   * Fruits
      * Banana
      * Grape fruit       
         * Pink
         * Yellow 
      * Peach
Simulated
Code
%TREEBROWSER{"thread" noroot="on" shared="opacitynotabledemo" noindent="on" style="smenu" nodeactions="onmouseover open, onclick close" popup="on" closesamelevel="on" closepopupdelay="100" firstpopupoffset="-60,0" popupoffset="-20,0" useopacity="on"}%
   * Vegetables
      * Carot
      * Leek
      * Tomato
      * Potato
   * Fruits
      * Banana
         * Green
         * Yellow 
      * Grape fruit       
         * Pink
         * Yellow 
      * Peach
Simulated
 Plugin settings are stored as preferences variables. To reference a plugin setting write %, i.e. %TREEBROWSERPLUGIN_SHORTDESCRIPTION%
data/debug.txt) _THEME 
 ,
,  ,
,  ,
, 
 ,
,  ,
, 




TreeBrowserPlugin.zip in your twiki installation directory. Content:                                              | File: | Description: | 
|---|---|
| data/TWiki/TreeBrowserPlugin.txt | Plugin topic | 
| lib/TWiki/Plugins/TreeBrowserPlugin.pm | Plugin Perl module | 
| pub/TWiki/TreeBrowserPlugin/dtree.css | part of dtree | 
| pub/TWiki/TreeBrowserPlugin/dmenu.css | Menu CSS | 
| pub/TWiki/TreeBrowserPlugin/smenu.css | Nicer menu CSS | 
| pub/TWiki/TreeBrowserPlugin/dtree.js | part of dtree | 
| pub/TWiki/TreeBrowserPlugin/base.gif | part of dtree | 
| pub/TWiki/TreeBrowserPlugin/cd.gif | part of dtree | 
| pub/TWiki/TreeBrowserPlugin/empty.gif | part of dtree | 
| pub/TWiki/TreeBrowserPlugin/folder.gif | part of dtree | 
| pub/TWiki/TreeBrowserPlugin/folderopen.gif | part of dtree | 
| pub/TWiki/TreeBrowserPlugin/globe.gif | part of dtree | 
| pub/TWiki/TreeBrowserPlugin/imgfolder.gif | part of dtree | 
| pub/TWiki/TreeBrowserPlugin/join.gif | part of dtree | 
| pub/TWiki/TreeBrowserPlugin/joinbottom.gif | part of dtree | 
| pub/TWiki/TreeBrowserPlugin/line.gif | part of dtree | 
| pub/TWiki/TreeBrowserPlugin/minus.gif | part of dtree | 
| pub/TWiki/TreeBrowserPlugin/minusbottom.gif | part of dtree | 
| pub/TWiki/TreeBrowserPlugin/musicfolder.gif | part of dtree | 
| pub/TWiki/TreeBrowserPlugin/nolines_minus.gif | part of dtree | 
| pub/TWiki/TreeBrowserPlugin/nolines_plus.gif | part of dtree | 
| pub/TWiki/TreeBrowserPlugin/page.gif | part of dtree | 
| pub/TWiki/TreeBrowserPlugin/plus.gif | part of dtree | 
| pub/TWiki/TreeBrowserPlugin/plusbottom.gif | part of dtree | 
| pub/TWiki/TreeBrowserPlugin/question.gif | part of dtree | 
| pub/TWiki/TreeBrowserPlugin/trash.gif | part of dtree | 
| pub/TWiki/TreeBrowserPlugin/doc.gif | icons from RenderListPlugin | 
| pub/TWiki/TreeBrowserPlugin/email.gif | icons from RenderListPlugin | 
| pub/TWiki/TreeBrowserPlugin/file.gif | icons from RenderListPlugin | 
| pub/TWiki/TreeBrowserPlugin/group.gif | icons from RenderListPlugin | 
| pub/TWiki/TreeBrowserPlugin/home.gif | icons from RenderListPlugin | 
| pub/TWiki/TreeBrowserPlugin/image.gif | icons from RenderListPlugin | 
| pub/TWiki/TreeBrowserPlugin/pdf.gif | icons from RenderListPlugin | 
| pub/TWiki/TreeBrowserPlugin/person.gif | icons from RenderListPlugin | 
| pub/TWiki/TreeBrowserPlugin/persons.gif | icons from RenderListPlugin | 
| pub/TWiki/TreeBrowserPlugin/ppt.gif | icons from RenderListPlugin | 
| pub/TWiki/TreeBrowserPlugin/see.gif | icons from RenderListPlugin | 
| pub/TWiki/TreeBrowserPlugin/sound.gif | icons from RenderListPlugin | 
| pub/TWiki/TreeBrowserPlugin/trend.gif | icons from RenderListPlugin | 
| pub/TWiki/TreeBrowserPlugin/virtualhome.gif | icons from RenderListPlugin | 
| pub/TWiki/TreeBrowserPlugin/virtualperson.gif | icons from RenderListPlugin | 
| pub/TWiki/TreeBrowserPlugin/virtualpersons.gif | icons from RenderListPlugin | 
| pub/TWiki/TreeBrowserPlugin/xls.gif | icons from RenderListPlugin | 
| pub/TWiki/TreeBrowserPlugin/zip.gif | icons from RenderListPlugin | 
firstpopupoffset="-163,0" as a workaround. natMainContent overflow:hidden causes z-index bug in FireFox. Workaround by removing or overriding overflow:hidden for natMainContent. dtreeTranslucentBackground only works for pop-up and not level 0. Sizing issue... dmenu style. Workaround by using smenu. See TWiki:Plugins.TreeBrowserPluginDev.
| Author(s): | TWiki:Main.ThomasWeigert & TWiki:Main.StephaneLenclud | 
| Version: | 5479 (2009-11-10) | 
| Release: | v2.0 | 
| Change History: | |
| 10 Nov 2009: | (v2.0) - Fixed version numbering for configure. By Ingo Kappler. | 
| 20 Feb 2009: | (v1.9) - Foswiki port. By St�phane Lenclud. | 
| 29 Mar 2007: | (v1.8) - Improved smenuCSS and fixing warning. By St�phane Lenclud. | 
| 18 Mar 2007: | (v1.7) - Improved smenuCSS, resolved highlighting gap issue . Now closing sub-menu when highlighting leaf. By St�phane Lenclud. | 
| 18 Mar 2007: | (v1.6) - Sub-menus now working in IE with smenustyle. Closing sub-menu when going back one level with mouse cursor. By St�phane Lenclud. | 
| 18 Mar 2007: | (v1.5) - Adding useopacityparameter. Addingsmenu.css. By St�phane Lenclud. | 
| 16 Mar 2007: | (v1.4) - Adding firstpopupoffsetallowing workaround for PatternSkin problem. By St�phane Lenclud. | 
| 14 Mar 2007: | (v1.3) - Adding popup,closepopudelayandpopupoffsetparameters. Implemented pop-up menu. Improveddmenu.css. By St�phane Lenclud. | 
| 11 Mar 2007: | (v1.2) - Adding nodeactionsparameter. Improveddmenu.css. By St�phane Lenclud. | 
| 10 Mar 2007: | (v1.1) - Adding autotoggleparameter. It's useful for menu style. Improveddmenu.css. AddeddtreeRootCSS class. By St�phane Lenclud. | 
| 09 Mar 2007: | (v1.0) - Improved CSS with variable class name allowing for multiple tree with different style on the same topic. Now bullet icon:supports full URL or URI. By St�phane Lenclud. | 
| 09 Mar 2007: | (v0.9) - Adding styleparameter. Improved CSS. Fixes extra '\n' in dot pm. By St�phane Lenclud. | 
| 07 Mar 2007: | (v0.8) - Adding norootandwarnparameters. Now usingpreRenderingHandlerinstead of the deprecatedstartRenderingHandler.%TREEBROWSER%are hidden if there is no tree to render. Fixes TOC icons problem with TWiki:Plugins.NatSkin. By St�phane Lenclud. | 
| 01 Oct 2006: | (v0.7) - Adding useplusminus,noindentandnocssparameters. By St�phane Lenclud. | 
| 17 Sep 2006: | (v0.6) - Adding closesamelevelanduselinesfunctionalities, fix rendering issues with Firefox and pattern skin, fix warnings in apache error logs. By St�phane Lenclud | 
| 12 Apr 2006: | (v0.5) - Minor update for TWiki:Codev.TWikiRelease04x00 | 
| 16 Sep 2005: | (v0.4) - Fix bug in openAllandopenTofunctions | 
| 06 Sep 2005: | (v0.3) - Adopt the rendering themes from TWiki:Plugins.RenderListPlugin | 
| 05 Sep 2005: | (v0.2) - Support sharing of tree state across topics. If JavaScript is not enabled, render the list in standard fashion. Correct user input error containig a line that is too deeply indented. | 
| 04 Sep 2005: | (v0.1) - Initial version | 
| TWiki Dependency: | $TWiki::Plugins::VERSION 1.024 | 
| CPAN Dependencies: | none | 
| Other Dependencies: | none | 
| Perl Version: | 5.005, 5.8.7 | 
| License: | GPL (GNU General Public License) | 
| Plugin Home: | http://TWiki.org/cgi-bin/view/Plugins/TreeBrowserPlugin | 
| Feedback: | http://TWiki.org/cgi-bin/view/Plugins/TreeBrowserPluginDev | 
Related Topics: TWiki:Plugins.RenderListPlugin, TWiki:Plugins.TreePlugin
| I | Attachment | Action | Size | Date | Who | Comment | 
|---|---|---|---|---|---|---|
|  gif | base.gif | manage | 1.0 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | cd.gif | manage | 0.2 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  css | dmenu.css | manage | 2.8 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | doc.gif | manage | 0.9 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  css | dtree.css | manage | 1.0 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  js | dtree.js | manage | 29.8 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | email.gif | manage | 0.2 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | empty.gif | manage | 0.1 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | file.gif | manage | 0.1 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | folder.gif | manage | 0.4 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | folderopen.gif | manage | 0.4 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | globe.gif | manage | 1.1 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | group.gif | manage | 0.2 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | home.gif | manage | 0.2 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | image.gif | manage | 0.9 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | imgfolder.gif | manage | 0.6 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | join.gif | manage | 0.1 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | joinbottom.gif | manage | 0.1 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | line.gif | manage | 0.1 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | minus.gif | manage | 0.1 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | minusbottom.gif | manage | 0.1 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | musicfolder.gif | manage | 0.6 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | nolines_minus.gif | manage | 0.8 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | nolines_plus.gif | manage | 0.8 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | page.gif | manage | 0.6 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | pdf.gif | manage | 0.9 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | person.gif | manage | 0.1 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | persons.gif | manage | 0.2 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | plus.gif | manage | 0.1 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | plusbottom.gif | manage | 0.1 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | ppt.gif | manage | 0.9 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | question.gif | manage | 1.0 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | see.gif | manage | 0.1 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  css | smenu.css | manage | 3.2 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | sound.gif | manage | 0.2 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | trash.gif | manage | 1.0 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  jpg | tree.jpg | manage | 7.9 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | trend.gif | manage | 0.1 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | virtualhome.gif | manage | 0.2 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | virtualperson.gif | manage | 0.1 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | virtualpersons.gif | manage | 0.2 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | xls.gif | manage | 0.9 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
|  gif | zip.gif | manage | 0.9 K | 10 Nov 2009 - 22:59 | AdminUser | Saved by install script | 
 Copyright © by the contributing authors. All material on this site is the property of the contributing authors.
Copyright © by the contributing authors. All material on this site is the property of the contributing authors.