Extension:CategoryTree

From WikiVet English
Jump to navigation Jump to search

The CategoryTree extension provides a dynamic view of the wiki's category structure as a tree.

CategoryTree mediawiki page can be found 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 [+] "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 <categorytree> tag

Example:

<categorytree mode=pages>Parasites</categorytree>

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

mode
determines which pages are shown in the tree. This may be overridden by the use of the namespaces option. Possible values:
categories
show subcategories only (configuration constant CT_MODE_CATEGORIES)
pages
show subcategories and pages, except images (configuration constant CT_MODE_PAGES)
all
show all pages, subcategories, images, etc (configuration constant CT_MODE_ALL)
parents
list parent categories instead of subcategories (configuration constant CT_MODE_PARENTS). 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 $wgCategoryTreeDynamicTag since rev:36864, July 2008)
hideroot
set this to "on" to hide the "root" node of the tree, i.e. hideroot=on. 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 CT_MODE_CT_HIDEPREFIX_ALWAYS).
never
never hide the namespace prefix, not even for categories (configuration constant CT_MODE_CT_HIDEPREFIX_NEVER).
auto
hide the namespace of categories, if only categories are shown, as with mode="categories" (configuration constant CT_MODE_CT_HIDEPREFIX_AUTO); 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 CT_MODE_CT_HIDEPREFIX_CATEGORIES). 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. showcount="on" (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 mode option.
class, style, id, etc
The <categorytree> tag supports all standard HTML attributes for block elements (since rev:36864, July 2008. Before that, only style was supported).

The {{#categorytree}} parser function

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

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): {{#categorytree:{{PAGENAME}}}}.
  • Using a template to specify the category: {{#categorytree:{{root category}}}} - 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: {{#categorytree:{{{1}}}}} in Template:Baz can be called using {{Baz|Foo}}