search: Update search page when page.tmpl or searchquery.tmpl are locally modified.

master
Joey Hess 2011-06-03 20:31:20 -04:00
parent 7f87035c8d
commit d7c4001748
3 changed files with 37 additions and 17 deletions

View File

@ -14,6 +14,7 @@ sub import {
hook(type => "delete", id => "search", call => \&delete);
hook(type => "cgi", id => "search", call => \&cgi);
hook(type => "disable", id => "search", call => \&disable);
hook(type => "needsbuild", id => "search", call => \&needsbuild);
}
sub getsetup () {
@ -226,27 +227,39 @@ sub setupfiles () {
writefile("omega.conf", $config{wikistatedir}."/xapian",
"database_dir .\n".
"template_dir ./templates\n");
# Avoid omega interpreting anything in the cgitemplate
# as an omegascript command.
eval q{use IkiWiki::CGI};
my $template=IkiWiki::cgitemplate(undef, gettext("search"), "\0",
searchform => "", # avoid showing the small search form
);
eval q{use HTML::Entities};
error $@ if $@;
$template=encode_entities($template, '\$');
my $querytemplate=readfile(IkiWiki::template_file("searchquery.tmpl"));
$template=~s/\0/$querytemplate/;
writefile("query", $config{wikistatedir}."/xapian/templates",
$template);
omega_template();
$setup=1;
}
}
}
sub needsbuild {
my $list=shift;
if (grep {
$_ eq "templates/page.tmpl" ||
$_ eq "templates/searchquery.tmpl"
} @$list) {
omega_template();
}
}
sub omega_template {
# Avoid omega interpreting anything in the cgitemplate
# as an omegascript command.
eval q{use IkiWiki::CGI};
my $template=IkiWiki::cgitemplate(undef, gettext("search"), "\0",
searchform => "", # avoid showing the small search form
);
eval q{use HTML::Entities};
error $@ if $@;
$template=encode_entities($template, '\$');
my $querytemplate=readfile(IkiWiki::template_file("searchquery.tmpl"));
$template=~s/\0/$querytemplate/;
writefile("query", $config{wikistatedir}."/xapian/templates",
$template);
}
sub disable () {
if (-d $config{wikistatedir}."/xapian") {
system("rm", "-rf", $config{wikistatedir}."/xapian");

7
debian/changelog vendored
View File

@ -1,3 +1,10 @@
ikiwiki (3.20110432) UNRELEASED; urgency=low
* search: Update search page when page.tmpl or searchquery.tmpl are locally
modified.
-- Joey Hess <joeyh@debian.org> Fri, 03 Jun 2011 20:30:35 -0400
ikiwiki (3.20110431) unstable; urgency=low
* Danish translation update. Closes: #625721

View File

@ -1,4 +1,4 @@
The [[plugins/search]] plugin caches a filled in version of `page.tmpl` for
omega. This is updated only if missing or on rebuild, so if the template is
modified otherwise and normal refresh allowed to update the rest of the
site, this gets missed and a stale template is used. --[[Joey]]
site, this gets missed and a stale template is used. --[[Joey]] [[done]]