google: Pass the whole wiki url to google, not just the domain, so that search works correctly for wikis that are located in subdirectories of domains.
parent
29f2cf4a49
commit
c29957e017
|
@ -6,8 +6,6 @@ use strict;
|
||||||
use IkiWiki 3.00;
|
use IkiWiki 3.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);
|
||||||
|
@ -26,11 +24,6 @@ sub checkconfig () {
|
||||||
if (! length $config{url}) {
|
if (! length $config{url}) {
|
||||||
error(sprintf(gettext("Must specify %s when using the %s plugin"), "url", 'google'));
|
error(sprintf(gettext("Must specify %s when using the %s plugin"), "url", 'google'));
|
||||||
}
|
}
|
||||||
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;
|
||||||
|
@ -43,7 +36,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 => $host);
|
$searchform->param(url => $config{url});
|
||||||
$form=$searchform->output;
|
$form=$searchform->output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,9 @@ ikiwiki (3.20091024) UNRELEASED; urgency=low
|
||||||
url is uri-encoded. Most browsers other than MSIE don't care, but it's
|
url is uri-encoded. Most browsers other than MSIE don't care, but it's
|
||||||
the right thing to do.
|
the right thing to do.
|
||||||
* Add a spec file to allow building rpm from the source package.
|
* Add a spec file to allow building rpm from the source package.
|
||||||
|
* google: Pass the whole wiki url to google, not just the domain,
|
||||||
|
so that search works correctly for wikis that are located in
|
||||||
|
subdirectories of domains.
|
||||||
|
|
||||||
-- Joey Hess <joeyh@debian.org> Mon, 26 Oct 2009 11:53:32 -0400
|
-- Joey Hess <joeyh@debian.org> Mon, 26 Oct 2009 11:53:32 -0400
|
||||||
|
|
||||||
|
|
|
@ -9,3 +9,5 @@ It works to pass the whole wiki baseurl to Google, not just the
|
||||||
domain, and appears to be legal. I've got a wiki that'd benefit
|
domain, and appears to be legal. I've got a wiki that'd benefit
|
||||||
(it's a few directories down from the root). Can the plugin be
|
(it's a few directories down from the root). Can the plugin be
|
||||||
tweaked to do this? --[[schmonz]]
|
tweaked to do this? --[[schmonz]]
|
||||||
|
|
||||||
|
> Done. --[[Joey]]
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<form method="get" action="http://www.google.com/search" id="searchform">
|
<form method="get" action="http://www.google.com/search" id="searchform">
|
||||||
<div>
|
<div>
|
||||||
<input name="sitesearch" value="<TMPL_VAR SITEFQDN>" type="hidden" />
|
<input name="sitesearch" value="<TMPL_VAR URL>" type="hidden" />
|
||||||
<input name="q" value="" id="searchbox" size="16" maxlength="255" type="text" />
|
<input name="q" value="" id="searchbox" size="16" maxlength="255" type="text" />
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
Loading…
Reference in New Issue