## TWiki Category Table
### What is a Category Table?
It is possible to add a Category Table to a %WIKITOOLNAME% web. It allows you to categorize and classify a topic, e.g. give some structure to the content of a web.
The Category Table is located at the end of a topic. Example:
When you edit the topic you see below the usual text area a table that includes widgets (controls) like drop-down menus, checkboxes, radio buttons, and text boxes. It makes it easy to provide keywords to categorize a topic. Example:
The format of the Category Table can be defined per %WIKITOOLNAME% web.
One sample application is a knowledge base for customer support. The web for customer support contains internal documents, FAQ entries and knowledge base entries. Topics are **_classified_** accordingly. In addition, FAQ entries and knowledge base entries can be **_categorized_** i.e. by the software product anf the operating system. For the operating system category, a checkbox contains OsSolaris, OsSunOS, OsHPUX and OsWin.
**_Hint:_** The topic classification can be used to do some automatic processing in the background. For example, a script could automatically publish the FAQ entries to your corporate web site, including FAQ index page and file attachments.
### How to Define a Category Table
The Category Table is defined by some template files. To add a Category Table to your %WIKITOOLNAME% web you need to place the following three files into the **twiki/templates/\{Yourweb\}** directory:
twikicatitems.tmpl :
Defines the items in the table
twikicatedit.tmpl :
Defines the look of the table when editing a topic
twikicatview.tmpl :
Defines the look of the table when viewing a topic
#### Format of Category Definition Template File twikicatitems.tmpl
Valid lines:
select|{name}|{selSize}|{val1}|{val2}|{val3}...
checkbox|{name}|{checkFlag}|{itemsPerLine}|{val1}|{val2}|{val3}...
radio|{name}|{itemsPerLine}|{val1}|{val2}|{val3}...
text|{name}|{charSize}
# comments start with a # character
Explanation:
{name} name of tag
{selSize} vertical size of SELECT tag
{val1}|{val2}... values
{checkFlag} set to true for [Set] [Clear] buttons, else set to false
{itemsPerLine} input items per line before wrap around, 0 if no wrap around
{charSize} number of characters for text fields
**_Remark:_** Line `radio|UseCategory|0|Yes|No` has a special meaning. If present, it is possible to choose in "edit" if the category table is included in the topic or not
Example file:
radio|UseCategory|0|Yes|No, delete this category table
select|TopicClassification|1|Select one...|NoDisclosure|PublicSupported|PublicFAQ
checkbox|OperatingSystem|true|5|OsSolaris|OsSunOS|OsHPUX|OsWin
text|OsVersion|16
#### Format of twikicatedit.tmpl and twikicatview.tmpl
Use the example below and customize if needed. **twikicatedit.tmpl** and **twikicatview.tmpl** can be identical, but they do not have to be.
**_Attention:_** **<!--TWikiCat-->** is needed at the beginning and end as markers. Do not delete them!
Example:
TWikiCategory
%REPEAT%
%CATNAME%: %CATMODIFIER%
%CATVALUE%
%REPEAT%
Above template files will result in the following category table when **_viewing_** a topic:
#### [TWikiCategory]()
Above template files will result in the following table when **_editing_** a topic:
### Default Values for a Category Table
It is possible to force the values of a Category Table when creating a new topic. You can define a default template to set the Category Table and/or specify individual values.
#### Default Topic Template
Whenever you create a new topic, the **twiki/templates/Webname/notedited.tmpl** file is used as the new topic template. To create this template, save a topic with the default text and the Category Table setting you need, then copy the content of the topic to the **notedited.tmpl** template (including the Category Table). Look also at the **twiki/templates/Know/notedited.tmpl** included in the distribution.
#### Set Individual Category Table Values
It is possible to set individual values of a Category Table when creating a new topic. This is useful when you have a form to create a new topic of a certain classification. The default values of the Category Table can be specified as hidden fields as needed, i.e. ``
Example (edit this page to see the source) :
*
-- [[RandyKramer]] - 26 Feb 2001 -- [[Main/PeterThoeny]] - 04 Mar 2001