optimise url parsing and add guard against failure to parse
parent
f9957d11ed
commit
643c0f1afc
|
@ -6,6 +6,8 @@ use strict;
|
||||||
use IkiWiki 2.00;
|
use IkiWiki 2.00;
|
||||||
use URI;
|
use URI;
|
||||||
|
|
||||||
|
my $host;
|
||||||
|
|
||||||
sub import { #{{{
|
sub import { #{{{
|
||||||
hook(type => "getsetup", id => "google", call => \&getsetup);
|
hook(type => "getsetup", id => "google", call => \&getsetup);
|
||||||
hook(type => "checkconfig", id => "google", call => \&checkconfig);
|
hook(type => "checkconfig", id => "google", call => \&checkconfig);
|
||||||
|
@ -21,11 +23,14 @@ sub getsetup () { #{{{
|
||||||
} #}}}
|
} #}}}
|
||||||
|
|
||||||
sub checkconfig () { #{{{
|
sub checkconfig () { #{{{
|
||||||
foreach my $required (qw(url)) {
|
if (! length $config{url}) {
|
||||||
if (! length $config{$required}) {
|
error(sprintf(gettext("Must specify %s when using the google search plugin"), "url"));
|
||||||
error(sprintf(gettext("Must specify %s when using the google search plugin"), $required));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
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;
|
my $form;
|
||||||
|
@ -38,7 +43,7 @@ sub pagetemplate (@) { #{{{
|
||||||
if ($template->query(name => "searchform")) {
|
if ($template->query(name => "searchform")) {
|
||||||
if (! defined $form) {
|
if (! defined $form) {
|
||||||
my $searchform = template("googleform.tmpl", blind_cache => 1);
|
my $searchform = template("googleform.tmpl", blind_cache => 1);
|
||||||
$searchform->param(sitefqdn => URI->new($config{url})->host);
|
$searchform->param(sitefqdn => $host);
|
||||||
$form=$searchform->output;
|
$form=$searchform->output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue