%META:TOPICINFO{author="MikeMannix" date="1007296400" format="1.0" version="1.3"}% %META:TOPICPARENT{name="TWikiVariables"}% %TOC% %STARTINCLUDE% ---# TWiki Formatted Search Results _Inline search feature allows flexible formatting of search result_ ---++ Overview 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 |" }%=). ---++ Syntax Two paramters can be used to specify a customized search result: 1. =header="..."= parameter 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:* |"= 2. =format="..."= parameter Use the format paramter to specify the format of one search hit. I.e.
=format="| $topic | $summary |"= Variables that can be used in the format string: | *Name:* | *Expands To:* | | =$n= | New line | | =$web= | Name of the web | | =$topic= | Topic name | | =$locked= | LOCKED flag (if any) | | =$date= | Time stamp of last topic update, i.e. =%GMTIME{"$day $mon $year - $hour:$min"}%= | | =$isodate= | Time stamp of last topic update, i.e. =%GMTIME{"$year-$mo-$dayT$hour:$minZ"}%= | | =$rev= | Number of last topic revision, i.e. =1.4= | | =$wikiusername= | Wiki user name of last topic update, i.e. =%MAINWEB%.JohnSmith= | | =$username= | User name of last topic update, i.e. =JohnSmith= | | =$summary= | Topic summary | | =$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 [[TWikiForms][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: ...=. | __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 ---+++ Bullet list showing topic name and summary Write this: =%SEARCH{ "FAQ" scope="topic" nosearch="on" nototal="on" header=" * *Topic: Summary:*" format=" * [[$topic]]: $summary" }%= To get this: %SEARCH{ "FAQ" scope="topic" nosearch="on" nototal="on" header=" * *Topic: Summary:*" format=" * [[$topic]]: $summary" }% ---+++ Table showing form field values of topics with a form Write this in the Know web: =| *Topic:* | *OperatingSystem:* | *OsVersion:* |=
=%SEARCH{ "[T]opicClassification.*?value=\"[P]ublicFAQ\"" scope="text" regex="on" nosearch="on" nototal="on" format="| [[$topic]] | $formfield(OperatingSystem) | $formfield(OsVersion) |" }%= To get this:
Topic: OperatingSystem: OsVersion:
IncorrectDllVersionW32PTH10DLL OsWin 95/98
WinDoze95Crash OsWin 95
---+++ Extract some text from a topic using regular expression Write this: =%SEARCH{ "__Back to\:__ TWikiFAQ" scope="text" regex="on" nosearch="on" nototal="on" header="TWiki FAQs:" format=" * $pattern(.*?FAQ\:[\n\r]*([^\n\r]+).*) [[$topic][Answer...]]" }%= To get this: %SEARCH{ "__Back to\:__ TWikiFAQ" scope="text" regex="on" nosearch="on" nototal="on" header="TWiki FAQs:" format=" * $pattern(.*?FAQ\:[\n\r]*([^\n\r]+).*) [[$topic][Answer...]]" }% -- Main.PeterThoeny - 28 Nov 2001