| *Name* | *Type* | *Tooltip message* | | option1 | option | | | option2 | option | | | option3 | option | |How to extract the 'name' values, i.e. 'option1', 'option2' and 'option3' and put them in a HTML form select input?
<form>
<select>
%SEARCH{ "^\|[^\|]*\| *option *\|" topic="%TOPIC%" regex="on" multiple="on" nosearch="on" nototal="on" format="<option>$pattern(^\| *(.*?) *\|.*)</option>" }%
</select>
</form>
which is, in effect:
%SEARCH{"[T]opicClassification.*value\=.*Two;[T]opicStatus.*value\=.*%URLPARAM{type}%"
regex="on" casesensitive="on" nosearch="on"
format=" * $topic - <font face=\"arial,helvetica\" size=\"1\">
_last modified by_ $wikiusername _on_ $date </font> %BR%
<font face=\"arial,helvetica\" size=\"1\"> $formfield(TopicStatus) </font>"
sort="topic"}%
The filtering select dialogue is created as in Pattern 1:
%STARTSIDEBAR%
*Filter:* %BR%
<form name="selectType" action="%SCRIPTURLPATH{"view"}%/%WEB%/" >
<select name="type" size="1" onchange="document.location=this.value;">
%SEARCH{ "^\|[^\|]*\| *option *\|" topic="TopicClassification" web="%WEB%" regex="on"
multiple="on" nosearch="on" nototal="on" format="<option value=%INCLUDINGTOPIC%?type=$pattern(^\| *(.*?) *\|.*)>$pattern(^\| *(.*?) *\|.*)</option>" }%
<option value=%INCLUDINGTOPIC%>All pages</option> </select>
</form>
%STOPSIDEBAR%
This will create similar functionality as TWiki:Plugins.TopicClassificationAddOn
<form name="testing" action="%SCRIPTURLPATH{"view"}%/%MAINWEB%" method="get">
<select name="topic">
<option>Select user...</option>
%SEARCH{ "Name:;Email:;Country:" web="%MAINWEB%" type="regex" nosearch="on" nototal="on" format="<option>$topic</option>" }%
</select>
<input type="submit" value="Go" />
</form>
Which expands to this: (here limited to all Z* users because TWiki.org has so many)
This searches all topics in the Main web that contain "Name", "Email" and "Country" bullets. Alternatively, do a FormattedSearch with multiple="on" on the Main.TWikiUsers topic.
<select name="topic" size="2" MULTIPLE>Please note that the Search pattern is unchanged compared to Pattern 3a. The change is in the HTML form element.
%SEARCH{ "^%BASETOPIC%$" scope="topic" nosearch="on" type="regex" nototal="on" format="[[$parent][parent_link]]" }%
However, the [[$parent][parent_link]] link fails if the topic has no parent set ($parent will be empty). You can use some SpreadSheetPlugin? magic to conditionally link to the parent or to WebHome: [[$percntCALC{$IF($EXACT($parent,), %HOMETOPIC%, $parent)}$percnt][parent_link]]
So the total Search query to find a topic's parent topic is:
%SEARCH{ "^%BASETOPIC%$" scope="topic" nosearch="on" type="regex" nototal="on" format="[<nop>[$percntCALC{$IF($EXACT($parent,), <nop>%HOMETOPIC%, $parent)}$percnt][parent_link]]" }%
<form>
<select name="topic">
<option value="%TOPIC%">Select...</option>
%SEARCH{ "%HOMETOPIC%" scope="topic" web="all" topic="%HOMETOPIC%" format="<option value=\"$web.$topic\">$web</option>" separator=" " }%
</select>
<input type="submit" value="Go" />
</form>
Exclude web from a web="all" search setting in the relevant web's WebPreferences topic.
Name: entry.
%SEARCH{" * [N]ame: " topic="%TOPIC%" regex="on" casesensitive="on" nosummary="on" nosearch="on" noheader="on" nototal="on" format="---+!! $pattern(.* \* Name: ([^\n]*).*)"}%
td..td in the search expression?
%SEARCH{ "[S]tatus.*(td..td|value\=).*[W]aiting" casesensitive="on" regex="on"
nosearch="on" nototal="on" format="| [[$topic]]<br /> ($date - $rev -
[[%SCRIPTURLPATH{rdiff}%/$web/$topic][Diffs]]) |"}%
%META:FIELD{name="OperatingSystem" title="OperatingSystem" value="OsWin"}%
So a search for a form field could look like:
%SEARCH{ "[O]peratingSystem.*value\=.*[O]sWin" regex="on" ... }%
.* indicate that there can be any number of any character between OperatingSystem and value in the (whole) file
<td valign="top" align="right"> OperatingSystem: </td><td> OsWin </td>The following search finds topics in the old and new format:
%SEARCH{ "[O]peratingSystem.*(td..td|value\=).*[O]sWin" regex="on" ... }%
The td..td matches td<>td; a simple search on "[O]peratingSystem.*[O]sWin" could find a hit in the topic text by coincidence.
A simple %SEARCH{ "[O]peratingSystem.*value\=.*[O]sWin" ...}% search is sufficient if you do not have topics in the old format.
Moved topics: %SEARCH{ "%META\:TOPICMOVED" regex="on" format="$topic, " nosearch="on" noheader="on" nosummary="on" }%
to get this (limited to 10 results):
Moved topics: DragonSkinCustomize,
Number of topics: 1
| Topic SearchPatternCookbook . { Edit | Attach | Backlinks: Web All webs | Printable | History: r1 More } |
|
Ideas, requests, problems regarding TWiki? Send feedback Note: Please contribute updates to this topic on TWiki.org at TWiki:TWiki.SearchPatternCookbook |