%META:TOPICINFO{author="MartinRaabe" date="1043065324" format="1.0" version="1.3"}%
---++ <nop>%TOPIC%

Enables dynamic generation of TWiki topic trees based on topics' parent-child relationships.

Useful for dynamic sitemaps and threads.

_Alpha release. Documentation will be enhanced. More features finalized._

---++ <nop>%TOPIC% Global Settings

Plugin settings are stored as preferences variables. To reference
a plugin setting write ==%<nop>&lt;plugin&gt;_&lt;setting&gt;%==, for example, ==%<nop>INTERWIKIPLUGIN_SHORTDESCRIPTION%==

	* One line description, shown in the %TWIKIWEB%.TextFormattingRules topic:
		* Set SHORTDESCRIPTION = Dynamic generation of TWiki topic trees 

	* Set DEBUG to 1 to get debug messages in =data/debug.txt=.  Default: =0=
		* Set DEBUG = 0


---+++ Syntax Rules

Adds the following tags:
	* %<nop>TREEVIEW% - displays a TWiki topic's children in a hierarchical fashion.

<!--blockquote-->
Attributes:
	* *web* - specify web
	* *topic* - specify tree's root topic (if none, will do the entire web)
	* *formatting* - specify the formatting method
		* _ullist_ is a &lt;ul&gt;-list, see [[TWiki.TreePluginSamples#UlList][sample UL lists]]
		* _ollist_ is a &lt;ol&gt;-list, see [[TWiki.TreePluginSamples#OlList][sample OL lists]]
		* _outline_ is an outline list, see [[TWiki.TreePluginSamples#SampleOutlines][sample Outlines]]
		* _hlist_ is a &lt;h<i>n</i>&gt;-list of section heads, see [[TWiki.TreePluginSamples#SampleHList][sample Headlines]]
		* _coloroutline_ is an outline formatting with level values turned into colors, see [[TWiki.TreePluginSamples#SampleNestedTables][sample Nested tables]]
		* _imageoutline_ is a way to incorporate images into the outline format,
		specifically to display thread-like and fodler views, see [[TWiki.TreePluginSamples#SampleImageTrees][sample Image Trees]]
	* *stoplevel* - the depth of the tree to show
	* *header* - header output
	* *bookview* - list topics in BookView form 
	* *format* - specify the format for each node (=outline= & =coloroutline=). Format variable options:
		* _$topic_ - the topic name
		* _$web_ - the topic's web
		* _$spacetopic_ - the topic with spaces
		* _$summary_ - the topic's summary
		* _$text_ - the topic's text (which will get rendered)
		* _$author_ - the topic's last author 
		* _$modTime_ - the topic's modification time
		* _$level_ - the tree depth of the topic (in whatever format)
		* _$count_ - the topic's child position
		* _$onum_ - outline number for the topic (eg, 1.3.4.2) 
		* _$url_ - the current topic's URL
	* *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)


See Plugins.TWiki.TreePluginSamples for samples usage and output.

<!-- The Plugins.<nop>TreePluginHelp topic in the installation contains complete help information. -->

---+++ Limitations and Known Issues 
	* The parameter *web* does not work correctly. The Tree gets rendered, but the WikiWords of the topics do not contain the *web* value, but refers to the current web. Since I have limited knowledge of perl OO, I can't repair for now. -- Main.MartinRaabe - 16 Jan 2003 

---+++ Plugin Installation Instructions

<!--
		* Set PLDIR = twiki/lib/TWiki/Plugins/
-->

	* Download the ZIP file from the Plugin web (see below). %BR%
Contents:

	| *File:* | *Description:* |
	| ==data/Plugins/%TOPIC%.txt== | Plugin topic |
	| ==data/Plugins/%TOPIC%.txt,v== | Version file of Plugin topic |
	| ==data/Plugins/%TOPIC%Samples.txt== | Plugin Samples |
	| ==data/Plugins/%TOPIC%Samples.txt,v== | Version file of Plugin Samples |
	| ==data/Plugins/HeadingOutlineSample.txt== | Heading Outline Sample |
	| ==data/Plugins/HeadingOutlineSample.txt,v== | Version file of Heading Outline Sample |
	| ==data/Plugins/TreeBookviewOutlineSample.txt== | Tree Bookview Outline Sample |
	| ==data/Plugins/TreeBookviewOutlineSample.txt,v== | Version file of Tree Bookview Outline Sample |
	| ==lib/TWiki/Plugins/%TOPIC%.pm== | Plugin Perl module |
	| ==lib/TWiki/Plugins/%TOPIC%/ColorNodeFormatter.pm== | Library component |
	| ==lib/TWiki/Plugins/%TOPIC%/FormatHelper.pm== | Library component |
	| ==lib/TWiki/Plugins/%TOPIC%/FormatOutlineNodeFormatter.pm== | Library component |
	| ==lib/TWiki/Plugins/%TOPIC%/HOutlineNodeFormatter.pm== | Library component |
	| ==lib/TWiki/Plugins/%TOPIC%/ImgNodeFormatter.pm== | Library component |
	| ==lib/TWiki/Plugins/%TOPIC%/ListNodeFormatter.pm== | Library component |
	| ==lib/TWiki/Plugins/%TOPIC%/TreePlugin/Node.pm== | Library component |
	| ==lib/TWiki/Plugins/%TOPIC%/NodeFormatter.pm== | Library component |
	| ==lib/TWiki/Plugins/%TOPIC%/OutlineNodeFormatter.pm== | Library component |
	| ==lib/TWiki/Plugins/%TOPIC%/TWikiNode.pm== | Library component |
	| ==lib/TWiki/Plugins/%TOPIC%/test.tar.gz== | Test files |
	| ==pub/TWiki/TreePlugin/I.gif== | tree icon |
	| ==pub/TWiki/TreePlugin/L.gif== | tree icon |
	| ==pub/TWiki/TreePlugin/oL.gif== | tree icon |
	| ==pub/TWiki/TreePlugin/oT.gif== | tree icon |
	| ==pub/TWiki/TreePlugin/pL.gif== | tree icon |
	| ==pub/TWiki/TreePlugin/pT.gif== | tree icon |
	| ==pub/TWiki/TreePlugin/T.gif== | tree icon |
	| ==pub/TWiki/TreePlugin/white.gif== | tree icon |
	| ==templates/booktree.tmpl== | Template for bookview mode |

	* Unzip ==%TOPIC%.zip== in your twiki installation directory.
	* Add ==Plugins.%TOPIC%== to the ==INSTALLEDPLUGINS== variable in %TWIKIWEB%.TWikiPreferences (or any Plugins.WebPreferences topic).
	* If you see a tree of this topic here:

%TREEVIEW{topic="TreePlugin"}%

  then installation was successful.

	* If you have Wiki:PerlUnit, you can unzip the test file, chdir to test, and run TestRunner.pl.

<!-- Check the %TOPIC%Help topic. .-->
<!---	* Add the following line to the "TWiki Plugins" section of %TWIKIWEB%.TextFormattingRules:
		* Plugins.%TOPIC%: Tree viewing
-->

---+++ Plugin Info

|  One Line Description: | View Twiki topics as nodes in a tree |
|  Plugin Author: | Main.SlavaKozlov |
|  Plugin Version: | 0.2 |
|  Change History: | 08 Feb 2002 Internal (0.1) release |
| | 15 Feb 2002 Alpha (0.2) release |
|  CPAN Dependencies: | none _(test package relies on PerlUnit)_ |
|  Other Dependencies: | none |
|  Perl Version: | 5.0 _(only tested on 5.6.1 so far)_ |
|  Plugin Home: | http://TWiki.org/cgi-bin/view/Plugins/%TOPIC% |
|  Feedback: | http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Dev |

__Related Topics:__ %TWIKIWEB%.TWikiPreferences, %TWIKIWEB%.TWikiPlugins

---++++ Copyright
This code is protected by the following
copyrights:
	* Copyright (C) 2002 Slava Kozlov. All Rights Reserved.

---++++ License
As required for the publication of all extensions to TWiki, this
software is published under the terms of the GNU General Public
License.

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, published at
http://www.gnu.org/copyleft/gpl.html

-- Main.SlavaKozlov - 16 Feb 2002
%META:TOPICMOVED{by="MartinRaabe" date="1042727857" from="Plugins.TreePlugin" to="TWiki.TreePlugin"}%
