summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorintrigeri <intrigeri@boum.org>2009-08-26 07:56:33 +0200
committerJoey Hess <joey@gnu.kitenet.net>2009-08-27 12:56:49 -0400
commit5eec60d4c6c34b6f3d0d2bc002f5d4158354910a (patch)
treeb12c601799d173e5e01a498a5cdddf483f1b7c0a
parent18fc71f033cf0ff9ccd6ef16212ce3b4e34ac725 (diff)
po: do not beautify urls on the recentchanges page
... else, the recentchanges page shows a link such as "sandbox.es". But, clicking on it goes to the English (or negotiated language) version of the page. It is better in this one case if the link goes direct to the translated version of the page. (cherry picked from commit 496e8523c6706d096f1b794e3f3ba5dd2fa260f3)
-rw-r--r--IkiWiki/Plugin/po.pm16
1 files changed, 10 insertions, 6 deletions
diff --git a/IkiWiki/Plugin/po.pm b/IkiWiki/Plugin/po.pm
index 414906999..a9517adce 100644
--- a/IkiWiki/Plugin/po.pm
+++ b/IkiWiki/Plugin/po.pm
@@ -602,17 +602,21 @@ sub myurlto ($$;$) {
# so that one is redirected to the just-edited page rather than to the
# negociated translation; to prevent unnecessary fiddling with caller/inject,
# we only do so when our beautify_urlpath would actually do what we want to
- # avoid, i.e. when po_link_to = negotiated
+ # avoid, i.e. when po_link_to = negotiated.
+ # also avoid doing so when run by cgi_goto, so that the links on recentchanges
+ # page actually lead to the exact page they pretend to.
if ($config{po_link_to} eq "negotiated") {
my @caller = caller(1);
- my $run_by_editpage = 0;
- $run_by_editpage = 1 if (exists $caller[3] && defined $caller[3]
- && $caller[3] eq "IkiWiki::cgi_editpage");
+ my $use_orig = 0;
+ $use_orig = 1 if (exists $caller[3] && defined $caller[3]
+ && ($caller[3] eq "IkiWiki::cgi_editpage" ||
+ $caller[3] eq "IkiWiki::Plugin::goto::cgi_goto")
+ );
inject(name => "IkiWiki::beautify_urlpath", call => $origsubs{'beautify_urlpath'})
- if $run_by_editpage;
+ if $use_orig;
my $res = $origsubs{'urlto'}->($to,$from,$absolute);
inject(name => "IkiWiki::beautify_urlpath", call => \&mybeautify_urlpath)
- if $run_by_editpage;
+ if $use_orig;
return $res;
}
else {