summaryrefslogtreecommitdiff
path: root/TWiki/TWikiCategoryTable.mdwn
blob: 7a048c659cfead46b15b79f1d67484af45c42e49 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
## <a name="TWiki_Category_Table"> TWiki Category Table </a>

### <a name="What_is_a_Category_Table_"> What is a Category Table? </a>

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:

<table border="2" cellpadding="1" cellspacing="1">
  <tr>
    <td align="right" valign="top"><a href="">TopicClassification</a>: <br />
    </td>
    <td><a href="">PublicFAQ</a></td>
  </tr>
  <tr>
    <td align="right" valign="top"><a href="">OperatingSystem</a>: <br />
    </td>
    <td><a href="">OsSolaris</a></td>
  </tr>
</table>

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:

<form>
  <table border="2" cellpadding="1" cellspacing="1">
    <tr>
      <td align="right" valign="top"><a href="">UseCategory</a> : <br />
      </td>
      <td>
        <table cellpadding="0" cellspacing="0">
          <tr>
            <td><input checked name="UseCategory" type="radio" value="Yes" />Yes   </td>
            <td><input name="UseCategory" type="radio" value="Nodeletethiscategorytable" />No, delete this category table   </td>
          </tr>
        </table>
      </td>
    </tr>
    <tr>
      <td align="right" valign="top"><a href="">TopicClassification</a> : <br />
      </td>
      <td><select name="TopicClassification" size="1"><option value="Selectone">Select one... </option>
          <option value="NoDisclosure">NoDisclosure </option>
          <option value="PublicSupported">PublicSupported </option>
          <option selected value="PublicFAQ">PublicFAQ </option></select></td>
    </tr>
    <tr>
      <td align="right" valign="top"><a href="">OperatingSystem</a> : <br /><input onclick="" type="button" value=" Set " />  <input onclick="" type="button" value="Clear" /> </td>
      <td>
        <table cellpadding="0" cellspacing="0">
          <tr>
            <td><input checked name="OperatingSystemOsSolaris" type="checkbox" />OsSolaris   </td>
            <td><input name="OperatingSystemOsSunOS" type="checkbox" />OsSunOS   </td>
            <td><input name="OperatingSystemOsHPUX" type="checkbox" />OsHPUX   </td>
            <td><input name="OperatingSystemOsWin" type="checkbox" />OsWin   </td>
          </tr>
        </table>
      </td>
    </tr>
  </table>
</form>

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.

### <a name="How_to_Define_a_Category_Table"> How to Define a Category Table </a>

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 <code>**twiki/templates/\{Yourweb\}**</code> directory:

<table border="1" cellpadding="1" cellspacing="0">
  <tr>
    <td><code><b>twikicatitems.tmpl</b></code> : </td>
    <td> Defines the items in the table </td>
  </tr>
  <tr>
    <td><code><b>twikicatedit.tmpl</b></code> : </td>
    <td> Defines the look of the table when editing a topic </td>
  </tr>
  <tr>
    <td><code><b>twikicatview.tmpl</b></code> : </td>
    <td> Defines the look of the table when viewing a topic </td>
  </tr>
</table>

#### <a name="Format_of_Category_Definition_Te"> Format of Category Definition Template File twikicatitems.tmpl </a>

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

#### <a name="Format_of_twikicatedit_tmpl_and_"> Format of twikicatedit.tmpl and twikicatview.tmpl </a>

Use the example below and customize if needed. <code>**twikicatedit.tmpl**</code> and <code>**twikicatview.tmpl**</code> can be identical, but they do not have to be.

**_Attention:_** <code>**&lt;!--TWikiCat--&gt;**</code> 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:

#### <a name="TWikiCategory_a_"> </a> [TWikiCategory]()

<table border="2" cellpadding="1" cellspacing="1">
  <tr>
    <td align="right" valign="top"><a href="">TopicClassification</a>: <br />
    </td>
    <td><a href="">PublicFAQ</a></td>
  </tr>
  <tr>
    <td align="right" valign="top"><a href="">OperatingSystem</a>: <br />
    </td>
    <td><a href="">OsSolaris</a></td>
  </tr>
  <tr>
    <td align="right" valign="top"><a href="">OsVersion</a>: <br />
    </td>
    <td>2.5  </td>
  </tr>
</table>

Above template files will result in the following table when **_editing_** a topic:

<form><nop><h4><a name="TWikiCategory_a_"> </a> <a href="">TWikiCategory</a></h4>
    <table border="2" cellpadding="1" cellspacing="1">
      <tr>
        <td align="right" valign="top"><a href="">UseCategory</a> : <br />
        </td>
        <td>
          <table cellpadding="0" cellspacing="0">
            <tr>
              <td><input checked name="UseCategory" type="radio" value="Yes" />Yes   </td>
              <td><input name="UseCategory" type="radio" value="Nodeletethiscategorytable" />No, delete this category table   </td>
            </tr>
          </table>
        </td>
      </tr>
      <tr>
        <td align="right" valign="top"><a href="">TopicClassification</a> : <br />
        </td>
        <td><select name="TopicClassification" size="1"><option value="Selectone">Select one... </option>
            <option value="NoDisclosure">NoDisclosure </option>
            <option value="PublicSupported">PublicSupported </option>
            <option selected value="PublicFAQ">PublicFAQ </option></select></td>
      </tr>
      <tr>
        <td align="right" valign="top"><a href="">OperatingSystem</a> : <br /><input onclick="" type="button" value=" Set " />  <input onclick="" type="button" value="Clear" /> </td>
        <td>
          <table cellpadding="0" cellspacing="0">
            <tr>
              <td><input checked name="OperatingSystemOsSolaris" type="checkbox" />OsSolaris   </td>
              <td><input name="OperatingSystemOsSunOS" type="checkbox" />OsSunOS   </td>
              <td><input name="OperatingSystemOsHPUX" type="checkbox" />OsHPUX   </td>
              <td><input name="OperatingSystemOsWin" type="checkbox" />OsWin   </td>
            </tr>
          </table>
        </td>
      </tr>
      <tr>
        <td align="right" valign="top"><a href="">OsVersion</a> : <br />
        </td>
        <td><input name="OsVersion" size="16" type="text" value="2.5" /></td>
      </tr>
    </table></nop></form>

### <a name="Default_Values_for_a_Category_Ta"> Default Values for a Category Table </a>

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.

#### <a name="Default_Topic_Template"> Default Topic Template </a>

Whenever you create a new topic, the <code>**twiki/templates/Webname/notedited.tmpl**</code> 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 <code>**notedited.tmpl**</code> template (including the Category Table). Look also at the <code>**twiki/templates/Know/notedited.tmpl**</code> included in the distribution.

#### <a name="Set_Individual_Category_Table_Va"> Set Individual Category Table Values </a>

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. `<input type="hidden" name="someCategory" value="someValue">`

Example (edit this page to see the source) :

* <form action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/Know/"> New <span style="background:"><font color="">Public FAQ</font></span><a href="http://LOCATIONKnow/PublicFAQ">?</a> topic: <input name="topic" size="32" type="text" /> <input name="TopicClassification" type="hidden" value="PublicFAQ" /> <input name="OperatingSystem" type="hidden" value="OsSolaris,OsSunOS" /> <input name="OsVersion" type="hidden" value="Just testing..." /> <input name="onlywikiname" type="hidden" value="on" /> <input type="submit" value="Create Topic" /></form>

-- [[RandyKramer]] - 26 Feb 2001 <br /> -- [[Main/PeterThoeny]] - 04 Mar 2001 <br />