X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/b1d8437f8abaaf94b69c07ba9607c53d8184b515..bd8198fb77ed5cf77ddeb860ca1ac983bfaacbbd:/IkiWiki/Plugin/mirrorlist.pm diff --git a/IkiWiki/Plugin/mirrorlist.pm b/IkiWiki/Plugin/mirrorlist.pm index aab60c435..5afd9ec1a 100644 --- a/IkiWiki/Plugin/mirrorlist.pm +++ b/IkiWiki/Plugin/mirrorlist.pm @@ -3,18 +3,19 @@ package IkiWiki::Plugin::mirrorlist; use warnings; use strict; -use IkiWiki 2.00; +use IkiWiki 3.00; -sub import { #{{{ +sub import { hook(type => "getsetup", id => "mirrorlist", call => \&getsetup); hook(type => "pagetemplate", id => "mirrorlist", call => \&pagetemplate); -} # }}} +} -sub getsetup () { #{{{ +sub getsetup () { return plugin => { safe => 1, rebuild => 1, + section => "web", }, mirrorlist => { type => "string", @@ -23,32 +24,48 @@ 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 (@) { #{{{ +sub pagetemplate (@) { my %params=@_; my $template=$params{template}; - if ($template->query(name => "extrafooter")) { + if ($template->query(name => "extrafooter") && + keys %{$config{mirrorlist}} > 0) { my $value=$template->param("extrafooter"); $value.=mirrorlist($params{page}); $template->param(extrafooter => $value); } -} # }}} +} -sub mirrorlist ($) { #{{{ +sub mirrorlist ($) { my $page=shift; - return "

". + return ($config{html5} ? ''. (keys %{$config{mirrorlist}} > 1 ? gettext("Mirrors") : gettext("Mirror")). ": ". join(", ", map { qq{{$_}."?do=goto&page=$page" : + $config{mirrorlist}->{$_}."/".urlto($page, "") ). qq{">$_} } keys %{$config{mirrorlist}} ). - "

"; -} # }}} + ($config{html5} ? '' : ''); +} 1