}
sub _get_base_url {
+ my ( $preferred_language ) = @_;
+
+ my @available_languages = qw( en ar cs es fr it pt_BZ tz zh_TW );
+
+ my ( $language ) = grep {
+ my $preferred_short = substr $preferred_language, 0, 2;
+ my $avail_short = substr $_, 0, 2;
+ $preferred_short eq $avail_short ? $_ : ()
+ } @available_languages;
+
+ my $KohaManualLanguage = $language || C4::Context->preference('KohaManualLanguage') || 'en';
my $KohaManualBaseURL = C4::Context->preference('KohaManualBaseURL') || 'http://koha-community.org/manual';
- my $KohaManualLanguage = C4::Context->preference('KohaManualLanguage') || 'en';
if ( $KohaManualBaseURL =~ m|^/| ) {
$KohaManualBaseURL = C4::Context->preference('staffClientBaseURL') . $KohaManualBaseURL;
}
};
sub get_url {
- my $url = shift;
+ my ( $url, $preferred_language ) = @_;
my $file;
if ($url =~ /koha\/(.*)\.pl/) {
$file = $1;
}
$file =~ s/[^a-zA-Z0-9_\-\/]*//g;
- my $base_url = _get_base_url;
+ my $base_url = _get_base_url( $preferred_language );
return $base_url . ( exists $mapping->{$file} ? $mapping->{$file} : $mapping->{mainpage} );
}
use Modern::Perl;
use CGI qw ( -utf8 );
+use C4::Auth;
use C4::Context;
use Koha::Manual;
my $query = new CGI;
+# We need to call get_template_and_user to let it does the job correctly
+# for the language
+my ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user(
+ {
+ template_name => "intranet-main.tt", # Just a valid template path
+ query => $query,
+ type => "intranet",
+ authnotrequired => 1,
+ }
+);
+
# find the script that called the online help using the CGI referer()
our $refer = $query->param('url');
$refer = $query->referer() if !$refer || $refer eq 'undefined';
-my $manual_url = Koha::Manual::get_url($refer);
+my $language = C4::Languages::getlanguage( $query );
+my $manual_url = Koha::Manual::get_url($refer, $language);
print $query->redirect($manual_url);