From b08651e748eb223e2e67dd77bb9cb4b85539146a Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Mon, 30 Jul 2018 12:57:58 +0200 Subject: [PATCH] Bug 19799: Introduce localReferer in opac-changelanguage.pl Content-Type: text/plain; charset=utf-8 Nice and easy replace.. Test plan: Test changing language from various OPAC locations. (Verify that you are not redirected to the home page.) Include language=[some_language] in the URL before changing language. [Bonus] Test calling opac-changelanguage.pl from another server. Signed-off-by: Marcel de Rooy --- opac/opac-changelanguage.pl | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/opac/opac-changelanguage.pl b/opac/opac-changelanguage.pl index 133e58e..2c01b28 100755 --- a/opac/opac-changelanguage.pl +++ b/opac/opac-changelanguage.pl @@ -16,26 +16,12 @@ # along with Koha; if not, see . use Modern::Perl; - -use C4::Templates; use CGI qw ( -utf8 ); +use C4::Templates; +use Koha::Util; -my $query = new CGI; +my $query = new CGI; my $language = $query->param('language'); - -# 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"; - -# If language was set by an external URL the parameter -# 'language=' should be removed from url string, otherwise -# the language picker will not work -$url =~ s|(.)language=[\w-]*&?|$1|; -$url =~ s|(&\|\?)$||; # Remove extraneous ? or & +my $url = Koha::Util::localReferer($query, { remove_language => 1 }); C4::Templates::setlanguagecookie( $query, $language, $url ); -- 2.1.4