none
[openafs-wiki.git] / TWiki / FormattedSearch.mdwn
1 **Formatted Search Using <code>**%SEARCH\{... format="..."\}%**</code> Variable**
2
3 <div>
4   <ul>
5     <li>
6       <ul>
7         <li><a href="#Preface"> Preface</a></li>
8         <li><a href="#Syntax"> Syntax</a></li>
9         <li><a href="#Examples"> Examples</a><ul>
10             <li><a href="#Bullet list showing topic name a"> Bullet list showing topic name and summary</a></li>
11           </ul>
12         </li>
13       </ul>
14     </li>
15     <li><a href="#TWiki Installation Error">TWiki Installation Error</a><ul>
16         <li>
17           <ul>
18             <li><a href="#Table showing form field values"> Table showing form field values of topics with a form</a></li>
19             <li><a href="#Extract some text from a topic u"> Extract some text from a topic using regular expression</a></li>
20           </ul>
21         </li>
22       </ul>
23     </li>
24     <li><a href="#TWiki Installation Error">TWiki Installation Error</a></li>
25   </ul>
26 </div>
27
28 ## <a name="Preface"></a> Preface
29
30 By default, the format for displaying a search result is fixed, e.g. a table with rows of topic name and topic summary. Use the `format="..."` parameter to specify a customized format of the search result. The string of the format parameter is typically a bullet list or table row containing variables (i.e. `%SEARCH{ "food" format="| $topic | $summary |" }%`).
31
32 ## <a name="Syntax"></a> Syntax
33
34 Two paramters can be used to specify a customized search result:
35
36 1. `header="..."` parameter
37
38 Use the header paramter to specify the header of a search result. It should correspond to the format of the format parameter. This parameter is optional. I.e. `header="| *Topic:* | *Summary:* |"`
39
40 2. `format="..."` parameter
41
42 Use the format paramter to specify the format of one search hit. I.e. `format="| $topic | $summary |"`
43
44 Variables that can be used in the format string:
45
46 <table border="1" cellpadding="0" cellspacing="0">
47   <tr>
48     <th bgcolor="#99CCCC"><strong> Name: </strong></th>
49     <th bgcolor="#99CCCC"><strong> Expands To: </strong></th>
50   </tr>
51   <tr>
52     <td><code>$web</code></td>
53     <td> Name of the web </td>
54   </tr>
55   <tr>
56     <td><code>$topic</code></td>
57     <td> Topic name </td>
58   </tr>
59   <tr>
60     <td><code>$locked</code></td>
61     <td> LOCKED flag (if any) </td>
62   </tr>
63   <tr>
64     <td><code>$date</code></td>
65     <td> Time stamp of last topic update </td>
66   </tr>
67   <tr>
68     <td><code>$rev</code></td>
69     <td> Number of last topic revision, i.e. <code>1.4</code></td>
70   </tr>
71   <tr>
72     <td><code>$wikiusername</code></td>
73     <td> Wiki user name of last topic update, i.e. <code>Main.JohnSmith</code></td>
74   </tr>
75   <tr>
76     <td><code>$summary</code></td>
77     <td> Topic summary </td>
78   </tr>
79   <tr>
80     <td><code>$formfield(name)</code></td>
81     <td> The field value of a form field, i.e. <code>$formfield([[Main/TopicClassification]])</code> would get expanded to <code>PublicFAQ</code>. This applies only to topics that have a [[Main/TWikiForms]]</td>
82   </tr>
83   <tr>
84     <td><code>$pattern(reg-exp)</code></td>
85     <td> A regular expression pattern to extract some text from a topic, i.e. <code>$pattern(.*?\*.*?Email\:\s*([^\n\r]+).*)</code> extracts the email address from a bullet of format <code>* Email: ...</code>. </td>
86   </tr>
87 </table>
88
89 **_Note:_** For `$pattern(reg-exp)`, specify a [[RegularExpression]] that scans from start to end and contains the text you want to keep in parenthesis, i.e. `$pattern(.*?(from here.*?to here).*)`. You need to make sure that the integrity of a web page is not compromised, i.e. if you include a table make sure to include everything including the table end tag.
90
91 ## <a name="Examples"></a> Examples
92
93 ### <a name="Bullet list showing topic name a"></a> Bullet list showing topic name and summary
94
95 Write this:
96
97 `%SEARCH{ "FAQ" scope="topic" nosearch="on" nototal="on" header="   * *Topic: Summary:*" format="   * [[$topic]]: $summary" }%`
98
99 To get this:
100
101 # <a name="TWiki Installation Error"></a> TWiki Installation Error
102
103 Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags)
104
105 ### <a name="Table showing form field values"></a><a name="Table showing form field values "></a> Table showing form field values of topics with a form
106
107 Write this in the Know web:
108
109 `| *Topic:* | *OperatingSystem:* | *OsVersion:* |`<br /><code>%SEARCH\{ "[T]opicClassification.\*?value=\\"[P]ublicFAQ\\"" scope="text" regex="on" nosearch="on" nototal="on" format="| \[[$topic]] | $formfield([[OperatingSystem]]) | $formfield([[OsVersion]]) |" \}%</code>
110
111 To get this:
112
113 <table border="1" cellpadding="1" cellspacing="0">
114   <tr>
115     <th bgcolor="#99CCCC"><strong>Topic:</strong></th>
116     <th bgcolor="#99CCCC"><strong>OperatingSystem:</strong></th>
117     <th bgcolor="#99CCCC"><strong>OsVersion:</strong></th>
118   </tr>
119   <tr>
120     <td><a href="http://www.dementia.org/twiki//view/Know/IncorrectDllVersionW32PTH10DLL">IncorrectDllVersionW32PTH10DLL</a></td>
121     <td><a href="http://www.dementia.org/twiki//view/Know/OsWin">OsWin</a></td>
122     <td> 95/98 </td>
123   </tr>
124   <tr>
125     <td><a href="http://www.dementia.org/twiki//view/Know/WinDoze95Crash">WinDoze95Crash</a></td>
126     <td><a href="http://www.dementia.org/twiki//view/Know/OsWin">OsWin</a></td>
127     <td> 95 </td>
128   </tr>
129 </table>
130
131 ### <a name="Extract some text from a topic u"></a> Extract some text from a topic using regular expression
132
133 Write this:
134
135 `%SEARCH{ "__Back to\:__ TWikiFAQ" scope="text" regex="on" nosearch="on" nototal="on" header="TWiki FAQs:" format="   * $pattern(.*?FAQ\:[\n\r]*([^\n\r]+).*) [[$topic][Answer...]]" }%`
136
137 To get this:
138
139 # <a name="TWiki Installation Error"></a> TWiki Installation Error
140
141 Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags)
142
143 -- [[PeterThoeny]] - 24 Oct 2001 <br />