X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/f9957d11ed3674b5c2ff7ba7c234bed7cb036b5f..8e92468eae9ac0ab8161a0c71ff6c6a0a8aef07a:/IkiWiki/Plugin/google.pm diff --git a/IkiWiki/Plugin/google.pm b/IkiWiki/Plugin/google.pm index be07ca2be..4bba5775c 100644 --- a/IkiWiki/Plugin/google.pm +++ b/IkiWiki/Plugin/google.pm @@ -3,33 +3,38 @@ package IkiWiki::Plugin::google; use warnings; use strict; -use IkiWiki 2.00; +use IkiWiki 3.00; use URI; -sub import { #{{{ +my $host; + +sub import { hook(type => "getsetup", id => "google", call => \&getsetup); hook(type => "checkconfig", id => "google", call => \&checkconfig); hook(type => "pagetemplate", id => "google", call => \&pagetemplate); -} # }}} +} -sub getsetup () { #{{{ +sub getsetup () { return plugin => { safe => 1, rebuild => 1, }, -} #}}} +} -sub checkconfig () { #{{{ - foreach my $required (qw(url)) { - if (! length $config{$required}) { - error(sprintf(gettext("Must specify %s when using the google search plugin"), $required)); - } +sub checkconfig () { + if (! length $config{url}) { + error(sprintf(gettext("Must specify %s when using the google search plugin"), "url")); + } + my $uri=URI->new($config{url}); + if (! $uri || ! defined $uri->host) { + error(gettext("Failed to parse url, cannot determine domain name")); } -} #}}} + $host=$uri->host; +} my $form; -sub pagetemplate (@) { #{{{ +sub pagetemplate (@) { my %params=@_; my $page=$params{page}; my $template=$params{template}; @@ -38,12 +43,12 @@ sub pagetemplate (@) { #{{{ if ($template->query(name => "searchform")) { if (! defined $form) { my $searchform = template("googleform.tmpl", blind_cache => 1); - $searchform->param(sitefqdn => URI->new($config{url})->host); + $searchform->param(sitefqdn => $host); $form=$searchform->output; } $template->param(searchform => $form); } -} #}}} +} 1