Difference: FormattedSearch (6 vs. 7)

Revision 72002-04-20 - PeterThoeny

Line: 1 to 1
 
META TOPICPARENT name="TWikiVariables"
Line: 6 to 6
  Inline search feature allows flexible formatting of search result
Deleted:
<
<

Overview

 The %SEARCH{...}% variable documented in TWikiVariables has a fixed format for the search result, that is, a table consisting of topic names and topic summaries. 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 (such as %SEARCH{ "food" format="| $topic | $summary |" }%).

Syntax

Changed:
<
<
Two paramters can be used to specify a customized search result:
>
>
Two parameters can be used to specify a customized search result:
  1. header="..." parameter
Changed:
<
<
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:* |"
>
>
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.
Example: header="| *Topic:* | *Summary:* |"
  2. format="..." parameter
Changed:
<
<
Use the format paramter to specify the format of one search hit. I.e.
format="| $topic | $summary |"
>
>
Use the format parameter to specify the format of one search hit.
Example: format="| $topic | $summary |"
  Variables that can be used in the format string:

Name: Expands To:
Deleted:
<
<
$n New line
 
$web Name of the web
$topic Topic name
Added:
>
>
$topic(20) Topic name, "- " hyphenated each 20 characters
$topic(30, -<br />) Topic name, hyphenated each 30 characters with separator "-<br />"
$topic(40, ...) Topic name, shortended to 40 characters with "..." indication
 
$text Formatted topic text
$locked LOCKED flag (if any)
Changed:
<
<
$date Time stamp of last topic update, i.e. 17 Jun 2019 - 05:11
$isodate Time stamp of last topic update, i.e. 2019-06-17T05:11Z
$rev Number of last topic revision, i.e. 1.4
$wikiusername Wiki user name of last topic update, i.e. Main.JohnSmith
$username User name of last topic update, i.e. JohnSmith
>
>
$date Time stamp of last topic update, like 17 Jun 2019 - 05:11
$isodate Time stamp of last topic update, like 2019-06-17T05:11Z
$rev Number of last topic revision, like 1.4
$wikiusername Wiki user name of last topic update, like Main.JohnSmith
$username User name of last topic update, like JohnSmith
 
$summary Topic summary
Changed:
<
<
$formfield(name) The field value of a form field, i.e. $formfield(TopicClassification) would get expanded to PublicFAQ. This applies only to topics that have a TWikiForm
$pattern(reg-exp) A regular expression pattern to extract some text from a topic, i.e. $pattern(.*?\*.*?Email\:\s*([^\n\r]+).*) extracts the email address from a bullet of format * Email: ....
>
>
$formfield(name) The field value of a form field; for example, $formfield(TopicClassification) would get expanded to PublicFAQ. This applies only to topics that have a TWikiForm
$formfield(name, 10) Form field value, "- " hyphenated each 10 characters
$formfield(name, 20, -<br />) Form field value, hyphenated each 20 characters with separator "-<br />"
$formfield(name, 30, ...) Form field value, shortended to 30 characters with "..." indication
$pattern(reg-exp) A regular expression pattern to extract some text from a topic. For example, $pattern(.*?\*.*?Email\:\s*([^\n\r]+).*) extracts the email address from a bullet of format * Email: ....
$n or $n() New line
$nop or $nop() Is a "no operation". This variable gets removed; useful for nested search
$quot Double quote ("). Alternatively write \" to escape it
$percnt Percent sign (%)
$dollar Dollar sign ($)

Note: For $pattern(reg-exp), specify a RegularExpression that scans from start to end and contains the text you want to keep in parenthesis, like $pattern(.*?(from here.*?to here).*). You need to make sure that the integrity of a web page is not compromised; for example, if you include a table make sure to include everything including the table end tag.

Nested Search

Search can be nested. For example, search for some topics, then form a new search for each topic found in the first search. The idea is to build the nested search string using a formatted search in the first search.

Here is an example. We want to search for topics, do a nested search with each hit, and show the result as nested bullets. Parameters like scope="text" regex="on" nosearch="on" nototal="on" are omitted for simplicity.

  • First search:
    • %SEARCH{ "freedom" format="   * $topic" }%
  • Second search. For each hit we want this search:
    • %SEARCH{ "(topic of first search)" format="      * $topic" }%
  • Now we nest the searches. We need to escape the second search, e.g. the first search will build a valid second search string:
    • %SEARCH{ "freedom" format="   * $topic: $n$percntSEARCH{ \"$topic\" format=\"      * $dollartopic" }$nop%\" }%

Note that we escape the second search so that it does not get evaluated by the first search:

  • $percnt to escape the leading percent of the second search
  • \" to escape the qouble quotes
  • $dollar to escape the $ of $topic
  • $nop to escape the }% sequence
 
Deleted:
<
<
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.
 

Examples

Added:
>
>
 

Bullet list showing topic name and summary

Write this:

Line: 85 to 116
  TWiki FAQs:
  • How can I create a simple TWiki Forms based application? Answer...
  • How do I delete or rename a topic? Answer...
  • How do I delete or rename a file attachment? Answer...
  • Why does the topic revision not increase when I edit a topic? Answer...
  • TWiki is distributed under the GPL (GNU General Public License). What is GPL? Answer...
  • I've problems with the WebSearch. There is no Search Result on any inquiry. By clicking the Index topic it's the same problem. Answer...
  • What happens if two of us try to edit the same topic simultaneously? Answer...
  • I would like to install TWiki on my server. Can I get the source? Answer...
  • What does the "T" in TWiki stand for? Answer...
  • So what is this WikiWiki thing exactly? Answer...
  • Everybody can edit any page, this is scary. Doesn't that lead to chaos? Answer...
Changed:
<
<
-- PeterThoeny - 28 Nov 2001
>
>
-- PeterThoeny - 16 May 2002
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 1999-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding URCS? Send feedback
Note: Please contribute updates to this topic on TWiki.org at TWiki:TWiki.FormattedSearch.