Tree Plugin
Renders topics' parent-child relationships as hierarchical tree view. Useful for dynamic site maps and threads.
Syntax Rules
%TREEVIEW{}%
displays topic children in a hierarchical tree
%TREE{}%
synonym of
%TREEVIEW{}%
Parameter |
Description |
Default |
web |
The web to search. |
current web |
topic |
Specify tree's root topic. If none the entire web topics' tree is generated |
none |
formatting |
Specify the formatting method ullist is a <ul>-list, see sample UL lists ollist is a <ol>-list, see sample OL lists outline is an outline list, see sample Outlines hlist is a <h n >-list of section heads, see sample Headlines coloroutline:colorlist is an outline formatting with level values turned into colors, see sample Nested tables. Example: formatting="coloroutline:#ffeeff,#eeffee,#ffffee,#eeeeff,#ffeeee,#eeffff" imageoutline:mode is a way to incorporate images into the outline format, specifically to display thread-like and folder views, see sample Image Trees. The general format is: imageoutline: mode : images : imageformat. Example: formatting="imageoutline:thread" or formatting="imageoutline:thread:I.gif,white.gif,T.gif,L.gif:<img src=\"$image\" border=\"0\">" . |
outline |
excludetopic |
Same meaning as VarSEARCH excludetopic . Topics with excluded parent or processed like topic without parent. |
none |
includetopic |
Same meaning as VarSEARCH topic . Can improve processing time. |
none |
startlevel |
The depth of the tree to start showing nodes from. To hide the root node, supply startlevel="1" (root is level 0). The displayed node depths are relative to the root topic. |
0 or 1 if topic is not specified |
stoplevel |
The depth of the tree to show, relative to start level. |
999 |
header |
Output the value within a <div> of class treePluginHeader . Suppressed if the tree is empty. |
none |
footer |
Output the value within a <div> of class treePluginFooter . Suppressed if the tree is empty. |
none |
zero |
Output the value within a <div> of class treePluginZero if the tree is empty. |
none |
bookview |
List topics in BookView form. Not supported from v0.9. Instead use something like: %TREE{topic="GrandParent" formatting="outline" format="$outnum $topic <br /> $summary <hr />"}% |
none |
format |
Specify the format for each node ( outline & coloroutline ). The following pseudo-variable are supported on top of the ones described in FormattedSearch: $spacetopic - the topic with spaces $level - the tree depth of the topic (in whatever format) $count - the topic's child position $index - the index of the topic in the tree. Starts from one. Most useful when used in combination with TreeBrowserPlugin $outnum - outline number for the topic (eg, 1.3.4.2) $url - the current topic's URL Not supported. Use %SCRIPTURL{view}%/$web/$topic instead. $author - the topic's last author Not supported from v0.9. Use %AUTHOR% instead. $modTime - the topic's modification time. Not supported from v0.9. Use $date instead. |
none |
formatbranch |
- specify the format for a group of children ( outline & coloroutline ) $parent - the text of a node $children - the text of all the node's children (if any) |
none |
levelprefix |
Specify a prefix to a node format. The prefix is inserted $level times at the beginning of the rendered node format. It allows generation of trees using Foswiki bullet list syntax thus enabling usage of TreePlugin in combination with TreeBrowserPlugin. |
none |
nodiv |
Suppress the <div> around the tree. Set to 2 to suppress div around header , footer and zero . Allows for trees concatenation. |
none |
separator |
Character string used to separate items in the tree |
\n |
nocache |
Set to 1 to disable caching mechanism for that specific tree. Really a developer setting. |
0 |
Samples
See the following page for sample usage and output:
Usage
%TREE{web="Sandbox" formatting="ullist"}%
%TREE{web="Sandbox"}%
%TREE{excludetopic="Web*" formatting="outline" format="* [[$topic][$spacetopic]]" levelprefix=" " startlevel="1"}%
%TREEBROWSER{"file" title="%WEB%"}%
%TREEVIEW{web="%WEB%" topic="GrandParent" formatting="outline" format="* $topic" levelprefix=" "}%
Performance consideration
For each
%TREE%
or
%TREEVIEW%
tag a
VarSEARCH at topic scope is performed. To reduce the scope of that search one can use
includetopic
and
excludetopic
. Those two parameters should be used by
TreePlugin users worried about performance. In fact they can potently greatly reduce the processing time.
For instance if you know that every topic in your tree has a common prefix you can easily make use of
includetopic
. Also when generating web tree you may want to
excludetopic
prefixed with
Web.
Plugin Settings
Specify plug-in settings in
LocalSite.cfg
:
- Set
{Plugins}{$pluginName}{Debug}
to 1
to enable debug output. Set to 2
to get a lot more debug output.
- Set
{Plugins}{$pluginName}{NoCache}
to 1
to disable caching mechanism. Intended for development purposes only.
Plugin Installation Instructions
You do not need to install anything in the browser to use this extension. The following instructions are for the administrator who installs the extension on the server.
Open configure, and open the "Extensions" section. Use "Find More Extensions" to get a list of available extensions. Select "Install".
If you have any problems, or if the extension isn't available in
configure
, then you can still install manually from the command-line. See
http://foswiki.org/Support/ManuallyInstallingExtensions for more help.
Plugin Info
Authors: |
TWiki:Main.SlavaKozlov (alpha release), Stephane Lenclud (2006-2008) |
Copyright ©: |
Copyright (C) 2002 Slava Kozlov. All Rights Reserved. |
License: |
GPL |
Dependencies: |
None |
CPAN Dependencies: |
none (test package relies on Wiki:PerlUnit) |
Version: |
6156 (2010-01-27) |
Release: |
1.9.1 |
Change History: |
|
27 Jan 2010 |
1.91 - Documentation tweaks. By Foswiki:Main.PaulHarvey |
11 Nov 2009 |
1.9 - Fixed version numbering for configure. By Ingo Kappler |
12 Dec 2008 |
1.8 - Foswiki port. By Stephane Lenclud |
28 Aug 2008 |
1.7 - Fixing warnings in apache logs. Fixing broken cache generation when using excludetopic or includetopic . Better support for Sub Webs and Non-Wiki words from Colas Nahaboo. By Stephane Lenclud |
10 Apr 2008 |
1.6 - File cache implementation. Massive performance improvement for Topic tree. No performance gain for Web tree. Added nocache parameter. Now using LocalLib.cfg for settings. By Stephane Lenclud |
10 Apr 2008 |
1.5 - Slight performance improvement. Improved header parameter. Added footer and zero parameter. By Stephane Lenclud |
29 Mar 2008 |
1.4 - Fixed endless loop in imageoutline:thread . Added separator parameter. By Stephane Lenclud |
11 Jul 2007 |
1.3 - Fixed $onum to $outnum in documentation. Fixed endless loop on inconsistent/looping parent/child relationship. Not supporting bookview any more. Fixed imageoutline:thread not rendering. By Stephane Lenclud |
7 Apr 2007 |
1.2 - Documentation improvement. Adding includetopic parameter. By Stephane Lenclud |
6 Apr 2007 |
1.1 - Even more code cleaning. Rewrote tree building algorithm. Orphaned topics are now sorted as if child of the web root. No more blank line in the middle of the tree. Adding nodiv parameter. By Stephane Lenclud |
6 Apr 2007 |
1.0 - More code cleaning. Testing most formatting. Better support for web="all" . By Stephane Lenclud |
6 Apr 2007 |
0.9 - Support for FormattedSearch pseudo-variables. Code cleaning in TreePlugin.pm . Removed some dead code. Improved documentation. By Stephane Lenclud |
4 Apr 2007 |
0.8 - Adding excludetopic parameter. Adding %TREE% as synonym tag. Code cleaning in TreePlugin.pm . Fix root issue when no topic specified. By Stephane Lenclud |
14 Mar 2007 |
0.7.1 - Arthur Clemens: Made startlevel and stoplevel relative to the root topic. |
14 Mar 2007 |
0.7 - Arthur Clemens: web parameter is now actually used. Added parameter startlevel . |
01 Oct 2006 |
0.6 - Stephane Lenclud: adding $index format subsitution. Useful when used in combination with Foswiki:Extensions/TreeBrowserPlugin. Also attempting to restore compatibility with Cairo, but still waiting for someone to test it. |
16 Sep 2006 |
0.5 - Stephane Lenclud: adding levelprefix parameter to unable usage in combination with Foswiki:Extensions/TreeBrowserPlugin. |
26 Jul 2006: |
0.4 - Steffen Poulsen: Ported to T* 4 (Dakar). Leading text removed, less warnings, no double bracket links, CSS classnames around output. |
15 Feb 2002 |
Alpha (0.2) release |
08 Feb 2002 |
Internal (0.1) release |
Home: |
Foswiki:Extensions.TreePlugin |
Support: |
Foswiki:Support.TreePlugin |
Development: |
Foswiki:Development.TreePlugin |
Related Topics: DefaultPreferences,
SitePreferences,
Plugins