(4) TWiki Category Table
It is possible to add a category table to a TWiki web. This permits storing and searching for more structured information. Editing a topic shows a HTML form with the usual text area and a table with selectors, checkboxes, radio buttons and text fields. The category table is shown at the end of a topic. The format of the category table can be defined per TWiki web.
If you want to use a Category Table in a TWiki web you need to have the following three files in 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 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:
<!--TWikiCat--> <h4> TWikiCategory </h4>
<table border="2" cellspacing="1" cellpadding="1">
%REPEAT%<tr>
<td valign="top" align="right"> %CATNAME%:  <br>%CATMODIFIER%</td><td>  %CATVALUE% </td>
</tr>%REPEAT%
</table><!--TWikiCat-->
Above template files will result in the following category table when viewing a topic:
|  File:  |  Used for:  | 
|  .htaccess.txt  |  Authentication. Rename to .htaccess and customize if used  | 
|  attach  |  Script that shows the attach file page (FileAttachment)  | 
|  changes  |  Script that shows recent changes  | 
|  delete  |  (not used yet)  | 
|  edit  |  Script to edit a topic  | 
|  mailnotify  |  Script called by cron job to notify users of changes  | 
|  oops  |  Script that shows a OK or oops dialog  | 
|  preview  |  Script to preview topic after edit  | 
|  rdiff  |  Script to see differences of topics  | 
|  register  |  Script to register new users  | 
|  save  |  Script that saves a topic, called by preview  | 
|  search  |  Script that displays search results  | 
|  upload  |  Script that does file upload (FileAttachment)  | 
|  view  |  Script to view a topic ( the script )  | 
|  viewfile  |  Script to view an file attachment  | 
|  wiki.pm  |  main TWiki library  | 
|  wikicfg.pm  |  for initialization and configuration, used by wiki.pm  | 
(6) Installation Notes
These installation steps use Apache web server on Linux as an example. TWiki should run on other web servers and Unix systems as well.
-  Request the TWiki distribution (in Unix ZIP format) from http://www.mindspring.net/~peterthoeny/twiki/index.html .
 
-  Create directory 
/home/httpd/twiki and unzip the TWiki distribution to this directory.
 
-  The 
twiki/bin directory of TWiki must be set as a cgi-bin directory. Add /home/httpd/twiki/bin to /etc/httpd/conf/access.conf with only ExecCGI option.
 
-  The 
twiki/pub directory of TWiki must be set so that it is visible as a URL. Add /home/httpd/twiki/pub to /etc/httpd/conf/access.conf with normal access options (copy from /home/httpd/html).
 
-  Now add 
Alias for /twiki/pub and ScriptAlias for /twiki/bin to /etc/httpd/conf/srm-conf .
 
-  Restart Apache by 
/etc/rc.d/rc5.d/S85httpd restart .
 
-  Test if the 
twiki/bin directory is cgi-enabled: Enter the URL of that directory into your browser (http://your.domain.com/twiki/bin). It is not set correctly as cgi-bin in case you get something like "Index of /twiki/bin" . It is OK if you get a message like "Forbidden. You don't have permission to access /twiki/bin/ on this server." .
 
-  Make sure PERL and the PERL CGI library is installed on your system. Default location of PERL executable is 
/usr/bin/perl . In case PERL is installed in a different location, the first line of all perl scripts in the twiki/bin directory need to be changed (alternatively you can create a symbolic link from /usr/bin/perl ).
 
-  To be able to edit the perl scripts and .tmpl files it is necessary to 
chown and chgrp -R twiki so all the files have the owner you want.
 
-  The scripts execute as 
nobody . Set the file permission of all Perl scripts in the twiki/bin directory as executable to -rw-r-xr-x .
 
-  Set the file permission of all files below 
twiki/data to 666 ( -rw-rw-rw- ).
 
-  Set the file permission of the 
twiki/data directory and all its subdirectories to 777 ( drwxrwxrwx ).
 
-  Set the file permission of the 
twiki/pub directory to 777 ( drwxrwxrwx ).
 
-  Edit the file 
twiki/bin/wikicfg.pm and set the variables at the beginning of the file to your needs.
 
-  Make sure RCS is installed. In case RCS is not in the 
path environment variable, add it to path . Alternatively, add the full path name to the rcs, ci, co, rlog, rcsdiff commands in the variables of twiki/bin/wikicfg.pm .
 
-  Point your browser at http://your.domain.com/twiki/bin/view and start wiki-ing away! 
 
-  Security issue: Directories 
twiki/data , twiki/templates and all its subdirectories should be set so that they are not visible as a URL. (Alternatively, move the directries to a place where they are not visible, and change the variables in twiki/bin/wikicfg.pm accordingly)
 
-  Optional: You can add new rendering rules or new %variables%. To insure an easy upgrade of TWiki it is recommended to do this customization in 
twiki/bin/wikicfg.pm , not twiki/bin/wiki.pm .
 
-  Optional: If you are on a public server and you would like to authenticate users you need to rename file 
.htaccess.txt in the twiki/bin directory to .htaccess and change it to your needs. Consult the HTTP server documentation for details.
 
-  To create a new web:
-  Use a topic name consisting of characters 
A..Z , a..z but not in WikiNotation.
 
-  Create a new template directory under 
twiki/templates .
 
-  Create a new data directory under 
twiki/data .
 
-  Copy the files TWikiUsers?.txt, WebHome.txt, WebNotify.txt, WebSearch.txt, webcolor.inc, and weblist.inc from the 
twiki/data/Main directory to the new data directory.
 
-  Make changes to webcolor.inc (unique color for web), and possibly also weblist.inc (web specific links on top).
 
-  In case you need a web specific copyright notice (at the bottom), copy file webcopyright.inc from the 
twiki/data directory to the new data directory, and customize it.
 
-  If needed, create customized templates in the new templates directory. (Non existing templates are inherited from 
twiki/templates )
 
-  If you want to use a category table, copy the three files twikicatitems.tmpl, twikicatedit.tmpl and twikicatview.tmpl from the 
twiki/templates/Know directory to the new templates directory, and customize it. The TWiki Category Table section has more.
 
 
For debugging reasons, here are contents of directories with file permissions:
directory twiki/bin :
drwxr-xr-x   5 twiki    t5            512 Nov 11 02:52 .
drwxr-xr-x   5 twiki    t5            512 Nov  6 02:57 ..
drwxrwxrwx   6 twiki    t5            512 Nov  6 03:13 data
drwxr-xr-x   6 twiki    t5            512 Nov  4 20:34 templates
-rw-r--r--   1 twiki    t5            430 Oct 21 18:51 .htaccess
-rwxrwxrwx   1 twiki    t5           3752 Mar 27 02:21 attach
-rwxr-xr-x   1 twiki    t5           2810 Oct 21 18:51 changes
-rwxrwxrwx   1 twiki    t5           1244 Mar 27 02:21 delete
-rw-r-xr-x   1 twiki    t5           2589 Nov  6 03:05 edit
-rwxr-xr-x   1 twiki    t5           4614 Oct 21 18:52 mailnotify
-rw-r-xr-x   1 twiki    t5           1353 Oct 23 20:19 oops
-rw-r-xr-x   1 twiki    t5           2043 Nov  6 03:05 preview
-rw-r-xr-x   1 twiki    t5           6249 Aug  3 04:34 register
-rw-r-xr-x   1 twiki    t5           6890 Nov 11 03:06 rdiff
-rw-r-xr-x   1 twiki    t5           1819 Nov  6 03:06 save
-rwxr-xr-x   1 twiki    t5           3174 Oct 21 18:51 search
-rwxrwxrwx   1 twiki    t5           6696 Mar 27 02:22 upload
-rw-r-xr-x   1 twiki    t5           3878 Nov 11 03:06 view
-rwxrwxrwx   1 twiki    t5           1538 Mar 27 02:22 viewfile
-rw-r-xr-x   1 twiki    t5          16169 Nov  7 01:43 wiki.pm
-rw-r-xr-x   1 twiki    t5           3945 Jun 23 01:24 wikicfg.pm
directory twiki/templates/ :
drwxr-xr-x   6 twiki    t5            512 Nov  4 20:34 .
drwxr-xr-x   5 twiki    t5            512 Nov 11 02:52 ..
drwxr-xr-x   2 twiki    t5            512 Oct 23 20:57 Know
drwxr-xr-x   2 twiki    t5            512 Nov  4 20:35 Main
-rw-r--r--   1 twiki    t5           2232 Mar 27 02:03 attach.tmpl
-rw-r--r--   1 twiki    t5           1200 Mar 27 02:03 attachtable.tmpl
-rw-r--r--   1 twiki    t5           1751 Nov 11 02:41 changes.tmpl
-rw-r--r--   1 twiki    t5           1711 Nov  6 03:01 edit.tmpl
-rw-r--r--   1 twiki    t5            896 Oct 21 18:51 mailnotify.tmpl
-rw-r--r--   1 twiki    t5             25 Oct 21 18:51 notedited.tmpl
-rw-r--r--   1 twiki    t5             21 Oct 21 18:51 notext.tmpl
-rw-r--r--   1 twiki    t5            157 Oct 23 21:05 notwiki.tmpl
-rw-r--r--   1 twiki    t5            218 Oct 23 20:06 noweb.tmpl
-rw-r--r--   1 twiki    t5            279 Oct 23 20:29 oops.tmpl
-rw-r--r--   1 twiki    t5            833 Mar 27 02:03 oopsdel.tmpl
-rw-r--r--   1 twiki    t5           1331 Oct 23 20:29 oopslocked.tmpl
-rw-r--r--   1 twiki    t5           1026 Aug 03 08:21 oopsregexist.tmpl
-rw-r--r--   1 twiki    t5            935 Aug 03 08:23 oopsregpasswd.tmpl
-rw-r--r--   1 twiki    t5            924 Aug 03 08:26 oopsregrequ.tmpl
-rw-r--r--   1 twiki    t5            931 Aug 03 08:29 oopsregwiki.tmpl
-rw-r--r--   1 twiki    t5            868 Mar 27 02:03 oopsupload.tmpl
-rw-r--r--   1 twiki    t5           2010 Nov  6 03:01 preview.tmpl
-rw-r--r--   1 twiki    t5           1501 Nov 12 22:56 rdiff.tmpl
-rw-r--r--   1 twiki    t5            263 Aug  3 02:44 register.tmpl
-rw-r--r--   1 twiki    t5           1548 Oct 23 21:10 search.tmpl
-rw-r--r--   1 twiki    t5           1541 Oct 26 21:07 view.tmpl
directory twiki/templates/Main :
drwxr-xr-x   2 twiki    t5            512 Nov  4 20:35 .
drwxr-xr-x   6 twiki    t5            512 Nov  4 20:34 ..
-rw-r--r--   1 twiki    t5           2328 Nov  6 03:03 edit.tmpl
directory twiki/templates/Know (has a TWiki Category Table) :
drwxr-xr-x   2 twiki    t5            512 Nov  4 20:35 .
drwxr-xr-x   6 twiki    t5            512 Nov  4 20:34 ..
-rw-r--r--   1 twiki    t5            611 Dec  7 20:59 notedited.tmpl
-rw-r--r--   1 twiki    t5            210 Dec 24 23:22 twikicatedit.tmpl
-rw-r--r--   1 twiki    t5           1887 Jan  6 20:54 twikicatitems.tmpl
-rw-r--r--   1 twiki    t5            245 Dec 24 23:27 twikicatview.tmpl
directory twiki/data/ :
drwxrwxrwx   6 twiki    t5            512 Nov 19 01:01 .
drwxr-xr-x   5 twiki    t5            512 Nov 11 02:52 ..
drwxrwxrwx   2 twiki    t5           9216 Nov 13 13:55 Know
drwxrwxrwx   2 twiki    t5           4608 Nov 15 21:42 Main
-rw-r--r--   1 nobody   65535          53 Aug 03 08:31 .htpasswd
-rw-rw-rw-   1 twiki    t5           1091 Nov  6 04:15 debug.txt
-rw-r--r--   1 nobody   65535        4153 Nov 19 01:01 log199810.txt
-rw-r--r--   1 nobody   65535        7189 Nov 19 01:01 log199811.txt
-rw-r--r--   1 twiki    t5           2356 Oct 22 00:56 webcopyright.inc
-rw-r--r--   1 twiki    t5            276 Oct 22 00:28 wikiwebs.inc
-rw-r--r--   1 twiki    t5           1484 Oct 22 01:11 wikiwebtable.inc
part of directory twiki/data/Main :
drwxrwxrwx   2 twiki    t5           4608 Nov 19 00:56 .
drwxrwxrwx   6 twiki    t5            512 Nov 19 01:01 ..
-rw-rw-rw-   1 twiki    t5           5974 Nov 15 21:42 .changes
-rw-rw-rw-   1 twiki    t5              9 Nov 15 23:00 .mailnotify
-rw-r--r--   1 nobody   65535        3991 Jul 22 04:33 FileAttachment.txt
-r--r--r--   1 nobody   65535        4173 Jul 22 04:33 FileAttachment.txt,v
-rw-r--r--   1 nobody   65535        6773 Aug  5 16:18 TWikiRegistration.txt
-r--r--r--   1 nobody   65535        6960 Aug  5 16:18 TWikiRegistration.txt,v
-rw-r--r--   1 nobody   65535        1990 Nov  6 18:25 TWikiUsers.txt
-r--r--r--   1 nobody   65535        3045 Nov  6 18:25 TWikiUsers.txt,v
-rw-r--r--   1 nobody   65535        1181 Oct 29 20:54 WebHome.txt
-r--r--r--   1 nobody   65535        1537 Oct 29 20:54 WebHome.txt,v
-rw-r--r--   1 nobody   65535         454 Oct 21 18:52 WebNotify.txt
-r--r--r--   1 nobody   65535         638 Oct 27 02:45 WebNotify.txt,v
-rw-r--r--   1 nobody   65535        3653 Oct 21 18:52 WebSearch.txt
-r--r--r--   1 nobody   65535        3835 Oct 27 02:45 WebSearch.txt,v
-rw-rw-rw-   1 twiki    t5              7 Oct 21 18:52 webcolor.inc
-rw-rw-rw-   1 twiki    t5            278 May 20 17:42 webcopyright.inc
-rw-rw-rw-   1 twiki    t5            402 Oct 26 07:45 weblist.inc
directory twiki/pub/ :
drwxrwxrwx   4 twiki    t5           1024 Mar 27 02:58 .
drwxr-xr-x   4 twiki    t5           1024 Mar 27 02:08 ..
drwxrwxrwx   4 nobody   nobody       1024 Mar 27 03:54 Main
-rw-r--r--   1 twiki    t5           2877 Mar 27 02:27 wikiHome.gif
drwxr-xr-x   2 twiki    t5           1024 Mar 27 03:17 icn
directory twiki/pub/icn/ :
drwxr-xr-x   2 twiki    t5           1024 Mar 27 03:17 .
drwxrwxrwx   4 twiki    t5           1024 Mar 27 02:58 ..
-rw-r--r--   1 twiki    t5            801 Mar 27 03:02 _filetypes.txt
-rw-r--r--   1 twiki    t5            143 Mar 27 03:16 bat.gif
-rw-r--r--   1 twiki    t5            926 Mar 27 03:16 bmp.gif
-rw-r--r--   1 twiki    t5            141 Mar 27 03:16 c.gif
-rw-r--r--   1 twiki    t5            144 Mar 27 03:16 dll.gif
-rw-r--r--   1 twiki    t5            152 Mar 27 03:16 doc.gif
-rw-r--r--   1 twiki    t5            130 Mar 27 03:16 else.gif
-rw-r--r--   1 twiki    t5            876 Mar 27 03:16 exe.gif
-rw-r--r--   1 twiki    t5            147 Mar 27 03:16 fon.gif
-rw-r--r--   1 twiki    t5            142 Mar 27 03:16 h.gif
-rw-r--r--   1 twiki    t5            156 Mar 27 03:16 hlp.gif
-rw-r--r--   1 twiki    t5            186 Mar 27 03:16 html.gif
-rw-r--r--   1 twiki    t5            144 Mar 27 03:16 java.gif
-rw-r--r--   1 twiki    t5            148 Mar 27 03:16 mov.gif
-rw-r--r--   1 twiki    t5            150 Mar 27 03:16 pdf.gif
-rw-r--r--   1 twiki    t5            146 Mar 27 03:16 pl.gif
-rw-r--r--   1 twiki    t5            150 Mar 27 03:16 ppt.gif
-rw-r--r--   1 twiki    t5            148 Mar 27 03:16 ps.gif
-rw-r--r--   1 twiki    t5            148 Mar 27 03:16 py.gif
-rw-r--r--   1 twiki    t5            130 Mar 27 03:17 ram.gif
-rw-r--r--   1 twiki    t5            154 Mar 27 03:17 reg.gif
-rw-r--r--   1 twiki    t5            147 Mar 27 03:17 sh.gif
-rw-r--r--   1 twiki    t5            155 Mar 27 03:17 sniff.gif
-rw-r--r--   1 twiki    t5            149 Mar 27 03:17 ttf.gif
-rw-r--r--   1 twiki    t5            134 Mar 27 03:17 txt.gif
-rw-r--r--   1 twiki    t5            154 Mar 27 03:17 wav.gif
-rw-r--r--   1 twiki    t5            152 Mar 27 03:17 wri.gif
-rw-r--r--   1 twiki    t5            152 Mar 27 03:17 xls.gif
-rw-r--r--   1 twiki    t5            144 Mar 27 03:17 zip.gif
-- PeterThoeny? - 22 Oct 1998 
-- PeterThoeny? - 18 Nov 1998 
-- PeterThoeny? - 11 Jan 1999 
-- PeterThoeny? - 20 Jan 1999 
-- PeterThoeny? - 06 Mar 1999 
-- PeterThoeny? - 27 Mar 1999 
-- PeterThoeny? - 02 Jun 1999 
-- PeterThoeny? - 14 Jun 1999 
-- PeterThoeny? - 23 Jun 1999 
-- PeterThoeny? - 01 Sep 1999