X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=opac%2Fopac-changelanguage.pl;h=133e58efdbec00a08bc1880db90d53c91a7105bd;hb=bc0012de2eda1b9f077459df757fd82ea07ca343;hp=9c68ab46f6b0df2757c37a64ef9e12f517c303fd;hpb=62d16aa6b750aaade2267596c19292659333f8c8;p=koha.git diff --git a/opac/opac-changelanguage.pl b/opac/opac-changelanguage.pl index 9c68ab46f6..133e58efdb 100755 --- a/opac/opac-changelanguage.pl +++ b/opac/opac-changelanguage.pl @@ -15,14 +15,20 @@ # You should have received a copy of the GNU General Public License # along with Koha; if not, see . -use strict; -use warnings; +use Modern::Perl; + use C4::Templates; use CGI qw ( -utf8 ); my $query = new CGI; my $language = $query->param('language'); -my $url = $query->referer() || '/'; + +# Detect where the user came from and save that url +my $requestedUrl = $query->url( -base => 1 ); + +# Use referer url if it matches $requestedUrl else use $requestedUrl as the url . +my $url = + $query->referer() =~ $requestedUrl ? $query->referer() : $requestedUrl; # warn "Language : $query // $language // $url"; @@ -30,6 +36,6 @@ my $url = $query->referer() || '/'; # 'language=' should be removed from url string, otherwise # the language picker will not work $url =~ s|(.)language=[\w-]*&?|$1|; -$url =~ s|(&\|\?)$||; # Remove extraneous ? or & +$url =~ s|(&\|\?)$||; # Remove extraneous ? or & C4::Templates::setlanguagecookie( $query, $language, $url );