Merge commit 'intrigeri/po'

master
Joey Hess 2009-08-28 19:48:32 -04:00
commit 3811c5f559
2 changed files with 40 additions and 12 deletions

View File

@ -306,17 +306,7 @@ sub preprocess_inline (@) {
# Add a blog post form, with feed buttons. # Add a blog post form, with feed buttons.
my $formtemplate=template("blogpost.tmpl", blind_cache => 1); my $formtemplate=template("blogpost.tmpl", blind_cache => 1);
$formtemplate->param(cgiurl => $config{cgiurl}); $formtemplate->param(cgiurl => $config{cgiurl});
my $rootpage; $formtemplate->param(rootpage => rootpage(%params));
if (exists $params{rootpage}) {
$rootpage=bestlink($params{page}, $params{rootpage});
if (!length $rootpage) {
$rootpage=$params{rootpage};
}
}
else {
$rootpage=$params{page};
}
$formtemplate->param(rootpage => $rootpage);
$formtemplate->param(rssurl => $rssurl) if $feeds && $rss; $formtemplate->param(rssurl => $rssurl) if $feeds && $rss;
$formtemplate->param(atomurl => $atomurl) if $feeds && $atom; $formtemplate->param(atomurl => $atomurl) if $feeds && $atom;
if (exists $params{postformtext}) { if (exists $params{postformtext}) {
@ -653,4 +643,21 @@ sub pingurl (@) {
exit 0; # daemon done exit 0; # daemon done
} }
sub rootpage (@) {
my %params=@_;
my $rootpage;
if (exists $params{rootpage}) {
$rootpage=bestlink($params{page}, $params{rootpage});
if (!length $rootpage) {
$rootpage=$params{rootpage};
}
}
else {
$rootpage=$params{page};
}
return $rootpage;
}
1 1

View File

@ -59,6 +59,8 @@ sub import {
inject(name => "IkiWiki::urlto", call => \&myurlto); inject(name => "IkiWiki::urlto", call => \&myurlto);
$origsubs{'cgiurl'}=\&IkiWiki::cgiurl; $origsubs{'cgiurl'}=\&IkiWiki::cgiurl;
inject(name => "IkiWiki::cgiurl", call => \&mycgiurl); inject(name => "IkiWiki::cgiurl", call => \&mycgiurl);
$origsubs{'rootpage'}=\&IkiWiki::rootpage;
inject(name => "IkiWiki::rootpage", call => \&myrootpage);
} }
@ -566,9 +568,12 @@ sub mybestlink ($$) {
my $link=shift; my $link=shift;
my $res=$origsubs{'bestlink'}->(masterpage($page), $link); my $res=$origsubs{'bestlink'}->(masterpage($page), $link);
my @caller = caller(1);
if (length $res if (length $res
&& istranslatable($res) && istranslatable($res)
&& istranslation($page)) { && istranslation($page)
&& !(exists $caller[3] && defined $caller[3]
&& ($caller[3] eq "IkiWiki::PageSpec::match_link"))) {
return $res . "." . lang($page); return $res . "." . lang($page);
} }
return $res; return $res;
@ -651,6 +656,22 @@ sub mycgiurl (@) {
return $origsubs{'cgiurl'}->(%params); return $origsubs{'cgiurl'}->(%params);
} }
sub myrootpage (@) {
my %params=@_;
my $rootpage;
if (exists $params{rootpage}) {
$rootpage=$origsubs{'bestlink'}->($params{page}, $params{rootpage});
if (!length $rootpage) {
$rootpage=$params{rootpage};
}
}
else {
$rootpage=masterpage($params{page});
}
return $rootpage;
}
# ,---- # ,----
# | Blackboxes for private data # | Blackboxes for private data
# `---- # `----