bug 2297: improve ModBiblio() to avoid duplicate item fields
[koha-ffzg.git] / C4 / Output.pm
index 5af9ef1..3f96e8f 100644 (file)
@@ -35,7 +35,7 @@ use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
 
 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
@@ -79,7 +79,6 @@ sub gettemplate {
         $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');
 
@@ -133,14 +132,22 @@ sub themelanguage {
     # 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 {
@@ -342,18 +349,25 @@ sub pagination_bar {
 
 =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',