Navigation

Tree Browser Plugin

Renders a bulleted or numbered list as a collapsable/expandable tree of nodes.

Acknowledgement

This plugin leverages the dTree JavaScript tree menu by Geir Landrö as well as code borrowed from TWiki:Plugins.RenderListPlugin.

Syntax Rules

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" or
theme="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 false if you don't want to show lines linking nodes and leafs in the tree true
useplusminus Set to false if you don't want to show '-' and '+' signs. One can use something like onclick='javascript: tree.o($index);' in the tree item to trigger opening/closing of a node. true
noindent Set to true to show children at the level their parent. It suppresses children indentation. false
nocss Set to true to prevent inclusion of dtree.css. false
closesamelevel If true only one node within a parent can be expanded at the same time. openAll() and closeAll() functions do not work when this is enabled. false

Rendering themes can be defined by <name>_THEME Plugin settings

  • Each theme is defined by a comma separated list containing the render type and parameters required by that render type
  • There are different render types; currently this Plugin supports tree and icon render types
  • Format of the tree render type:
    • Set < name >_THEME = tree
  • Format of the icon render type:
    • Set < name >_THEME = icon, [< root icon image >], [< icon image >], [< folder icon image >], [< open folder icon image >]
    • The root icon image is shown at the root of the tree, the icon image is shown at every leaf node, the folder icon image is shown at every collapsed internal node, and the open folder icon image is shown at every expanded internal node. The icon images point to files attached to TWiki topics and are referenced in the standard manner. If no path is given, the images are taken from TWikiDocGraphics.
    • If an icon image is omitted, the following defaults are chosen: empty.gif, page.gif, folder.gif, folderOpen.gif

If JavaScript is not enabled, the list is rendered as usual, and the =%TREEBROWSER% tag is omitted.

Bullets

  • Use regular * bullets
  • Start with level one
    • Increase indentation only one level at a time
      • Like this
  • Decreasing indentation many levels at a time is fine
  • Keep labels short as text does not wrap.
  • You can specify an icon for a bullet of render type tree or icon:
    • Attach the icon to a topic, e.g. myicon.gif, or
    • Use one of the existing icons: globe.gif %ATTACHURL%/globe.gif, home.gif %ATTACHURL%/home.gif, virtualhome.gif %ATTACHURL%/virtualhome.gif, group.gif %ATTACHURL%/group.gif, persons.gif %ATTACHURL%/persons.gif, virtualpersons.gif virtualpersons.gif, person.gif %ATTACHURL%/person.gif, virtualperson.gif %ATTACHURL%/virtualperson.gif, email.gif %ATTACHURL%/email.gif, trend.gif %ATTACHURL%/trend.gif, folder.gif %ATTACHURL%/folder.gif, file.gif %ATTACHURL%/file.gif, doc.gif %ATTACHURL%/doc.gif, image.gif %ATTACHURL%/image.gif, pdf.gif %ATTACHURL%/pdf.gif, ppt.gif %ATTACHURL%/ppt.gif, sound.gif %ATTACHURL%/sound.gif, xls.gif %ATTACHURL%/xls.gif, zip.gif %ATTACHURL%/zip.gif, see.gif %ATTACHURL%/see.gif
    • Refer to an attached icon at the beginning of the bullet with:
      • icon:myicon.gif Followed by normal bullet text

Example

%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
If installedSimulated

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:

<a href="javascript: tree.openAll();">open all</a> | <a href="javascript: tree.closeAll();">close all</a>
%TREEBROWSER{"file" title="[[%HOMETOPIC%][%INCLUDINGWEB% Web Home]]" shared="tree"}%
...

Plugin Settings

Plugin settings are stored as preferences variables. To reference a plugin setting write %<plugin>_<setting>%, i.e. %TREEBROWSERPLUGIN_SHORTDESCRIPTION%

  • One line description, is shown in the TextFormattingRules topic:
    • Set SHORTDESCRIPTION = Renders a list as a collapsable/expandable tree.

  • Debug plugin: (See output in data/debug.txt)
    • Set DEBUG = 0

  • Themes are named <SOMETHING>_THEME and contain a comma delimited list of render type with parameters:
    • Set THREAD_THEME = tree
    • Set HOME_THEME = icon, home.gif
    • Set ORG_THEME = icon, base.gif, home.gif, person.gif, persons.gif
    • Set GROUP_THEME = icon, tip.gif, page.gif, person.gif, group.gif
    • Set EMAIL_THEME = icon, email.gif
    • Set TREND_THEME = icon, trend.gif
    • Set FILE_THEME = icon, empty.gif
    • Set DIR_THEME = icon, empty.gif
    • Set FORUM_THEME = icon, group.gif, index.gif, indexlist.gif, indexlist.gif

Plugin Installation Instructions

  1. Download the zip file.
  2. Unzip 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/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

Planned Enhancements

  • Support configurable icons for each node (similar to TWiki:Plugins.RenderListPlugin). SL: Sounds fun!
  • Support configurable default icons. SL: I think this was done sometimes ago.
  • Support wrapping of long node text. SL: Not sure how to do that? Looks like it's not such a big problem with Firfox.
  • Support tree browser in other than view mode also. SL: Not sure what's that?
  • Cleanup and comment JavaScript code.

Plugin Info

Plugin Author: TWiki:Main.ThomasWeigert
Plugin Version: v0.7
Change History:  
01 Oct 2006: (v0.7) - Adding useplusminus , noindent and nocss parameters. By Stéphane Lenclud.
17 Sep 2006: (v0.6) - Adding closesamelevel and uselines functionalities, 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 openAll and openTo functions
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)
TWiki:Plugins/Benchmark: GoodStyle n%, FormattedSearch n%, TreeBrowserPlugin n%
Plugin Home: http://TWiki.org/cgi-bin/view/Plugins/TreeBrowserPlugin
Feedback: http://TWiki.org/cgi-bin/view/Plugins/TreeBrowserPluginDev
Appraisal: http://TWiki.org/cgi-bin/view/Plugins/TreeBrowserPluginAppraisal

Related Topics: TWiki:Plugins.RenderListPlugin

-- TWiki:Main.ThomasWeigert - 16 Sep 2005

Attachments Attachments

  Attachment Action Size Date Who Comment
gif base.gif props, move 1.0 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif cd.gif props, move 0.2 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif doc.gif props, move 0.9 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
else dtree.css props, move 0.8 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
else dtree.css~ props, move 0.8 K 28 Sep 2006 - 01:14 UnknownUser  
js dtree.js props, move 12.1 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
else dtree.js~ props, move 12.1 K 01 Oct 2006 - 00:52 UnknownUser  
gif email.gif props, move 0.2 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif empty.gif props, move 0.1 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif file.gif props, move 0.1 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif folder.gif props, move 0.4 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif folderopen.gif props, move 0.4 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif globe.gif props, move 1.1 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif group.gif props, move 0.2 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif home.gif props, move 0.2 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif image.gif props, move 0.9 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif imgfolder.gif props, move 0.6 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif join.gif props, move 0.1 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif joinbottom.gif props, move 0.1 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif line.gif props, move 0.1 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif minus.gif props, move 0.1 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif minusbottom.gif props, move 0.1 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif musicfolder.gif props, move 0.6 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif nolines_minus.gif props, move 0.8 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif nolines_plus.gif props, move 0.8 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif page.gif props, move 0.6 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif pdf.gif props, move 0.9 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif person.gif props, move 0.1 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif persons.gif props, move 0.2 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif plus.gif props, move 0.1 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif plusbottom.gif props, move 0.1 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif ppt.gif props, move 0.9 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif question.gif props, move 1.0 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif see.gif props, move 0.1 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif sound.gif props, move 0.2 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif trash.gif props, move 1.0 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
jpg tree.jpg props, move 7.9 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif trend.gif props, move 0.1 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif virtualhome.gif props, move 0.2 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif virtualperson.gif props, move 0.1 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif virtualpersons.gif props, move 0.2 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif xls.gif props, move 0.9 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
gif zip.gif props, move 0.9 K 01 Oct 2006 - 21:46 TWikiAdminGroup Saved by install script
r2 - 16 Nov 2007 - 20:41:20 - TWikiAdminGroup
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding SmartAgency? Send feedback
Note: Please contribute updates to this topic on TWiki.org at TWiki:TWiki.TreeBrowserPlugin
Syndicate this site RSSATOM