mirrorlist: new mirrorlist_use_cgi boolean setting.

When set to true, let each mirror's ikiwiki CGI find out the correct target page
url themselves.

This resolves the usecase described on
[[todo/mirrorlist_with_per-mirror_usedirs_settings]].

Signed-off-by: intrigeri <intrigeri@boum.org>
master
intrigeri 2010-12-20 15:21:49 +01:00
parent e09eeb2436
commit 5b494e1b63
2 changed files with 31 additions and 1 deletions

View File

@ -24,6 +24,19 @@ sub getsetup () {
safe => 1,
rebuild => 1,
},
mirrorlist_use_cgi => {
type => 'boolean',
example => 1,
description => "generate links that point to the mirrors' ikiwiki CGI",
safe => 1,
rebuild => 1,
},
}
sub checkconfig () {
if (! defined $config{mirrorlist_use_cgi}) {
$config{mirrorlist_use_cgi}=0;
}
}
sub pagetemplate (@) {
@ -46,7 +59,9 @@ sub mirrorlist ($) {
join(", ",
map {
qq{<a href="}.
$config{mirrorlist}->{$_}."/".urlto($page, "").
( $config{mirrorlist_use_cgi} ?
$config{mirrorlist}->{$_}."?do=goto&page=$page" :
$config{mirrorlist}->{$_}."/".urlto($page, "") ).
qq{">$_</a>}
} keys %{$config{mirrorlist}}
).

View File

@ -5,3 +5,18 @@ This plugin allows adding links a list of mirrors to each page in the
wiki. For each mirror, a name and an url should be specified. Pages are
assumed to exist in the same location under the specified url on each
mirror.
In case the `usedirs` setting is not the same on all your mirrors, or
if it is not the same on your local wiki as on the mirror a
possibility is to let each mirror's ikiwiki CGI find out the correct
target page url themselves; in that case the mirrors urls must be set
to their ikiwiki CGI url instead of their base url. Example:
mirrorlist_use_cgi => 1,
mirrorlist => {
'mirror1' => 'https://mirror.example.org/ikiwiki.cgi',
'mirror2' => 'https://mirror2.example.org/ikiwiki.cgi',
},
The mirrors must have the ikiwiki CGI and the [[goto]] plugin enabled
for this to work.