diff options
author | joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> | 2006-08-26 21:57:59 +0000 |
---|---|---|
committer | joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> | 2006-08-26 21:57:59 +0000 |
commit | 2bec3518c22c2627df4062c80179a5b7027c52bf (patch) | |
tree | 99b7fe914a0565bb413e52432cfe075c12c0ecc0 | |
parent | 02a2de8ead6d7afd828643397e2f68f0c63acb70 (diff) | |
download | ikiwiki-2bec3518c22c2627df4062c80179a5b7027c52bf.tar ikiwiki-2bec3518c22c2627df4062c80179a5b7027c52bf.tar.gz |
* Patch from James Westby to add a template for the search form.
* Cache search form for speedup.
-rw-r--r-- | IkiWiki/Plugin/search.pm | 17 | ||||
-rw-r--r-- | debian/changelog | 4 | ||||
-rw-r--r-- | doc/patchqueue/make-searchform-template.mdwn | 13 | ||||
-rw-r--r-- | doc/templates.mdwn | 5 | ||||
-rw-r--r-- | templates/searchform.tmpl | 7 |
5 files changed, 23 insertions, 23 deletions
diff --git a/IkiWiki/Plugin/search.pm b/IkiWiki/Plugin/search.pm index 751c75ab5..c8e0dd580 100644 --- a/IkiWiki/Plugin/search.pm +++ b/IkiWiki/Plugin/search.pm @@ -27,6 +27,7 @@ sub checkconfig () { #{{{ } } #}}} +my $form; sub pagetemplate (@) { #{{{ my %params=@_; my $page=$params{page}; @@ -34,15 +35,13 @@ sub pagetemplate (@) { #{{{ # Add search box to page header. if ($template->query(name => "searchform")) { - $template->param(searchform => qq{ -<form method="get" action="$IkiWiki::config{cgiurl}" id="searchform"> -<div> -<input type="text" name="phrase" value="" size="16" /> -<input type="hidden" name="enc" value="UTF-8" /> -<input type="hidden" name="do" value="hyperestraier" /> -</div> -</form> -}); + if (! defined $form) { + my $searchform = IkiWiki::template("searchform.tmpl", blind_cache => 1); + $searchform->param(searchaction => $IkiWiki::config{cgiurl}); + $form=$searchform->output; + } + + $template->param(searchform => $form); } } #}}} diff --git a/debian/changelog b/debian/changelog index e36ad1c8b..a2320c1e0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -32,8 +32,10 @@ ikiwiki (1.22) UNRELEASED; urgency=low from a different directory. * Generalised preprocesser loop protection code. * Patch from James Westby to allow a description to be set for rss feeds. + * Patch from James Westby to add a template for the search form. + * Cache search form for speedup. - -- Joey Hess <joeyh@debian.org> Sat, 26 Aug 2006 13:26:22 -0400 + -- Joey Hess <joeyh@debian.org> Sat, 26 Aug 2006 17:51:16 -0400 ikiwiki (1.21) unstable; urgency=low diff --git a/doc/patchqueue/make-searchform-template.mdwn b/doc/patchqueue/make-searchform-template.mdwn deleted file mode 100644 index 97a8b7e11..000000000 --- a/doc/patchqueue/make-searchform-template.mdwn +++ /dev/null @@ -1,13 +0,0 @@ -Here is a small patch that adds a new template for the search form. - -http://jameswestby.net/scratch/search_template.diff - -I wanted this so I could add a label to it easily. - -I don't really think there's a problem with doing it except that it makes it -more easy to break the search box. - - Thanks for the patch. The only problem I see is that the template - is identical but gets rebuilt per-page. Would probably be better to - build it only the first time, then reuse the rendered text for all - further pages, to avoid slowing ikiwiki down any. --[[Joey]] diff --git a/doc/templates.mdwn b/doc/templates.mdwn index 55e6ec6c8..53b14f9bd 100644 --- a/doc/templates.mdwn +++ b/doc/templates.mdwn @@ -29,6 +29,8 @@ It ships with some basic templates which can be customised: * `rsslink.tmpl` - Used to add a rss link if blogpost.tmpl is not used. * `aggregatepost.tmpl` - Used by the [[plugins/aggregate]] plugin to create a page for a post. +* `searchform.tmpl` - Used by the [[plugins/search]] plugin to add a search + form to wiki pages. If you like, you can add these to further customise it: @@ -44,3 +46,6 @@ CGI::FormBuilder, which interfaces to HTML::Template, so not all of it can be customised with templates, although most of it can, by creating these templates. Without the templates, CGI::FormBuilder creates the page bodies by itself. + +The [[plugin/template]] plugin also uses templates, though those templates +are stored in the wiki. diff --git a/templates/searchform.tmpl b/templates/searchform.tmpl new file mode 100644 index 000000000..7c4fdb026 --- /dev/null +++ b/templates/searchform.tmpl @@ -0,0 +1,7 @@ +<form method="get" action="<TMPL_VAR SEARCHACTION>" id="searchform"> +<div> +<input type="text" name="phrase" value="" size="16" /> +<input type="hidden" name="enc" value="UTF-8" /> +<input type="hidden" name="do" value="hyperestraier" /> +</div> +</form> |