5,214 bytes added ,  16:08, 1 April 2010
Created page with 'The '''CategoryTree''' extension provides a dynamic view of the wiki's category structure as a tree. CategoryTree mediawiki page can be found [http://www.mediawiki.org/wiki/Ext…'
The '''CategoryTree''' extension provides a dynamic view of the wiki's category structure as a tree.

CategoryTree mediawiki page can be found [http://www.mediawiki.org/wiki/Extension:CategoryTree here].

== Usage ==
CategoryTree can be used in three ways:
* Directly on the category pages,
* As a "custom tag" (or "parser function") to show a category structure in-line on a wiki page,

The CategoryTree extension adds <nowiki>[+]</nowiki> "expand" widgets to the subcategories listed on category pages. If Javascript is disabled, those widgets takes you to the category page (in earlier versions, it did nothing in that case).

=== The <nowiki><categorytree></nowiki> tag ===
Example:
<pre><categorytree mode=pages>Donkey</categorytree>
</pre>

<categorytree mode=pages style="float:right; clear:right; margin-left:1ex; border:1px solid gray; padding:0.7ex; background-color:white;">Donkey</categorytree>

The custom tag is called <nowiki><categorytree></nowiki>. For example, if you put &lt;categorytree&gt;Foo&lt;/categorytree&gt; on a wiki page, it will show the contents of category Foo as a dynamic tree on that page (see example to the right). <span id="options">The tag accepts the following attributes, using a HTML-like syntax</span>:

;mode: determines which pages are shown in the tree. This may be overridden by the use of the <tt>namespaces</tt> option. Possible values:
:;categories: show subcategories only (configuration constant <tt>CT_MODE_CATEGORIES</tt>)
:;pages: show subcategories and pages, except images (configuration constant <tt>CT_MODE_PAGES</tt>)
:;all: show all pages, subcategories, images, etc (configuration constant <tt>CT_MODE_ALL</tt>)
:;parents: list parent categories instead of subcategories (configuration constant <tt>CT_MODE_PARENTS</tt>). This puts CategoryTree into "inverse" operation (supported since [[rev:36892]], July 2008).
;depth: determines how many levels of the tree are shown initially. Default is 1. 0 means only the root node. The maximum value depends on the mode specified, and on the $wgCategoryTreeMaxDepth option. (introduced between [[rev:r20410]] and [[rev:20840]], Mar 30 2007; fully functional even with <tt>$wgCategoryTreeDynamicTag</tt> since [[rev:36864]], July 2008)
;hideroot: set this to "on" to hide the "root" node of the tree, i.e. <tt>hideroot=on</tt>. For example, it will not display the category name Foo.
;hideprefix: determines when the namespace prefix should be hidden from entries in the tree (since [[rev:36864]], July 2008). Possible values are:
:;always: always hide the prefix. Should be used only if all pages come from the same namespace (configuration constant <tt>CT_MODE_CT_HIDEPREFIX_ALWAYS</tt>).
:;never: never hide the namespace prefix, not even for categories (configuration constant <tt>CT_MODE_CT_HIDEPREFIX_NEVER</tt>).
:;auto: hide the namespace of categories, if only categories are shown, as with <tt>mode="categories"</tt> (configuration constant <tt>CT_MODE_CT_HIDEPREFIX_AUTO</tt>); This is equivalent to the old default behavior (before Jun 2008).
:;categories: always hide the namespace of categories, but show all other prefixes (configuration constant <tt>CT_MODE_CT_HIDEPREFIX_CATEGORIES</tt>). This is the new default behavior (since [[rev:36864]], July 2008).
;showcount: set this to "on" to show the number of entries in subcategories, i.e. <tt>showcount="on"</tt> (since [[rev:36864]], July 2008). This is disabled per default for category trees inlined on pages, but enabled per default in category listings an on Special:CategoryTree.
;namespaces: a list of namespaces from which pages should be shown in the tree (since [[rev:36864]], July 2008). The entries in the list must be namespace names, separated by spaces. The main namespaces can be represented by "-" or "0". This overrides the <tt>mode</tt> option.
;class, style, id, ''etc'': The &lt;categorytree&gt; tag supports all standard HTML attributes for block elements (since [[rev:36864]], July 2008. Before that, only <tt>style</tt> was supported).

=== The <nowiki>{{#categorytree}}</nowiki> parser function ===
You can also use ''parser function'' syntax to place a category tree on a page. This works just like the &lt;categorytree&gt; tag, using a different syntax, e.g. <tt><nowiki>{{#categorytree:Foo}}</nowiki></tt>; options can be specified using the syntax for named template parameters, e.g. <tt><nowiki>{{#categorytree:Foo|hideroot|mode=pages}}</nowiki></tt>.

Using the parser function syntax has the advantage that it allows you to use magic words, templates and template parameters when specifying the category to show.

Some examples:
* Using a magic variable to show "this pages" category tree (may be useful on category description pages): <tt><nowiki>{{#categorytree:{{PAGENAME}}}}</nowiki></tt>.
* Using a template to specify the category: <tt><nowiki>{{#categorytree:{{root category}}}}</nowiki></tt> - the name of the root category would be defined by the contents of Template:Root_category.
* Using a template parameter to specify the category, when using CategoryTree inside a template: <tt><nowiki>{{#categorytree:{{{1}}}}}</nowiki></tt> in Template:Baz can be called using <nowiki>{{Baz|Foo}}</nowiki>