projects
/
koha.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Bug 20696: Fix a few ugly "eq undef" comparisons in Search.pm
[koha.git]
/
opac
/
opac-changelanguage.pl
diff --git
a/opac/opac-changelanguage.pl
b/opac/opac-changelanguage.pl
index
2773704
..
133e58e
100755
(executable)
--- a/
opac/opac-changelanguage.pl
+++ b/
opac/opac-changelanguage.pl
@@
-15,14
+15,27
@@
# You should have received a copy of the GNU General Public License
# along with Koha; if not, see <http://www.gnu.org/licenses>.
# You should have received a copy of the GNU General Public License
# along with Koha; if not, see <http://www.gnu.org/licenses>.
-use
strict
;
-use warnings;
+use
Modern::Perl
;
+
use C4::Templates;
use CGI qw ( -utf8 );
my $query = new CGI;
my $language = $query->param('language');
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";
# 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 &
+
C4::Templates::setlanguagecookie( $query, $language, $url );
C4::Templates::setlanguagecookie( $query, $language, $url );