BEGIN {
# set the version for version checking
- $VERSION = 3.02;
+ $VERSION = 3.03;
require Exporter;
@ISA = qw(Exporter);
@EXPORT_OK = qw(&output_ajax_with_http_headers &is_ajax); # More stuff should go here instead
$htdocs = C4::Context->config('intrahtdocs');
}
my $path = C4::Context->preference('intranet_includes') || 'includes';
-
my ( $theme, $lang ) = themelanguage( $htdocs, $tmplbase, $interface, $query );
my $opacstylesheet = C4::Context->preference('opacstylesheet');
# Set some defaults for language and theme
# First, check the user's preferences
my $lang;
- my $http_accept_language = regex_lang_subtags($ENV{HTTP_ACCEPT_LANGUAGE})->{language};
+ my $http_env = $ENV{HTTP_ACCEPT_LANGUAGE};
+ $http_env =~ m/(\w+-*\w*),/;
+ my $language_preference = $1;
+ my $http_accept_language = regex_lang_subtags($language_preference)->{language};
if ($http_accept_language) {
$lang = accept_language($http_accept_language,getTranslatedLanguages($interface,'prog'));
}
# But, if there's a cookie set, obey it
$lang = $query->cookie('KohaOpacLanguage') if $query->cookie('KohaOpacLanguage');
# Fall back to English
- my @languages = split " ", C4::Context->preference("opaclanguages");
+ my @languages;
+ if ($interface eq 'intranet') {
+ @languages = split ",", C4::Context->preference("language");
+ } else {
+ @languages = split ",", C4::Context->preference("opaclanguages");
+ }
if ($lang){
@languages=($lang,@languages);
} else {
$base_url =~ s/$delim;//g; # remove empties
$base_url =~ s/$delim$//; # remove trailing delim
- my $url = $base_url . ( $base_url =~ m/$delim/ ? '&' : '?' ) . $startfrom_name . '=';
+ my $url = $base_url . (($base_url =~ m/$delim/ or $base_url =~ m/\?/) ? '&' : '?' ) . $startfrom_name . '=';
my $pagination_bar = '';
# navigation bar useful only if more than one page to display !
=item output_html_with_http_headers
- &output_html_with_http_headers($query, $cookie, $html)
+ &output_html_with_http_headers($query, $cookie, $html[, $content_type])
Outputs the HTML page $html with the appropriate HTTP headers,
with the authentication cookie $cookie and a Content-Type that
corresponds to the HTML page $html.
+If the optional C<$content_type> parameter is called, set the
+response's Content-Type to that value instead of "text/html".
+
=cut
-sub output_html_with_http_headers ($$$) {
- my($query, $cookie, $html) = @_;
+sub output_html_with_http_headers ($$$;$) {
+ my $query = shift;
+ my $cookie = shift;
+ my $html = shift;
+ my $content_type = @_ ? shift : "text/html";
+ $content_type = "text/html" unless $content_type =~ m!/!; # very basic sanity check
print $query->header(
- -type => 'text/html',
+ -type => $content_type,
-charset => 'UTF-8',
-cookie => $cookie,
-Pragma => 'no-cache',