@@ -, +, @@ switcher does not work - Have a multilingual koha installation, let's say en, de-CH, fr-FR and it-IT - Create external links e.g. from your multilingual library website to each language variant of OPAC: - Apply patch - Repeat steps above - Verify that the language switcher works - Verify in browser address field that after switching language, the param 'language= 'has vanished from url string - Try links with multiple params and with params containing 'language', e.g. ...cgi-bin/koha/opac-search.pl?language=fr-FR&q=language&mylanguage=test - Verify that only the parameter 'language=' vanishes --- opac/opac-changelanguage.pl | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) --- a/opac/opac-changelanguage.pl +++ a/opac/opac-changelanguage.pl @@ -25,4 +25,22 @@ my $language = $query->param('language'); my $url = $query->referer() || '/'; # 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 - Bug 16776 + +my @urlarr = split(/\?/,$url); +if (scalar @urlarr > 1) { + my @paramarr = split(/&/,$urlarr[1]); + for my $index ( reverse 0..$#paramarr ) { + if ( $paramarr[$index] =~ /^language=/) { + splice(@paramarr, $index, 1, ()); + } + } + if ( scalar @paramarr > 0) { + $url = $urlarr[0].'?'.join('&', @paramarr); + } +} + C4::Templates::setlanguagecookie( $query, $language, $url ); --