search: Update search page when page.tmpl or searchquery.tmpl are locally modified.
parent
7f87035c8d
commit
d7c4001748
|
@ -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");
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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]]
|
||||
|
|
Loading…
Reference in New Issue