po: fix redirect after edit, using a somehow tricky hack

Signed-off-by: intrigeri <intrigeri@boum.org>
master
intrigeri 2008-12-31 13:02:48 +01:00
parent bd10381103
commit 149a3e65a7
2 changed files with 18 additions and 7 deletions

View File

@ -465,7 +465,24 @@ sub myurlto ($$;$) { #{{{
&& istranslatable('index')) {
return IkiWiki::beautify_urlpath(IkiWiki::baseurl($from) . "index." . lang($from) . ".$config{htmlext}");
}
return $origsubs{'urlto'}->($to,$from,$absolute);
# avoid using our injected beautify_urlpath if run by cgi_editpage,
# 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
if ($config{po_link_to} eq "negotiated") {
my @caller = caller(1);
my $run_by_editpage = ($caller[3] eq "IkiWiki::cgi_editpage");
inject(name => "IkiWiki::beautify_urlpath", call => $origsubs{'beautify_urlpath'})
if $run_by_editpage;
my $res = $origsubs{'urlto'}->($to,$from,$absolute);
inject(name => "IkiWiki::beautify_urlpath", call => \&mybeautify_urlpath)
if $run_by_editpage;
return $res;
}
else {
return $origsubs{'urlto'}->($to,$from,$absolute)
}
} #}}}

View File

@ -520,12 +520,6 @@ See [[contrib/po]].
They are not updated when the source page changes (e.g. meta title).
### Redirect after edit
After editing master page, when using `po_link_to=negotiated`, one is
redirected to the page in her preferred language. Would be slightly
better to be redirected, in any case, to the just saved page.
Page formats
------------