Bug 11994: OpenSearch plugins needs to be delivered with Content-Type application...
authorKatrin Fischer <katrin.fischer.83@web.de>
Fri, 1 May 2020 17:20:43 +0000 (17:20 +0000)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Wed, 24 Jun 2020 12:31:37 +0000 (14:31 +0200)
https://developer.mozilla.org/en-US/docs/Web/OpenSearch
Your server should serve OpenSearch plugins using
Content-Type: application/opensearchdescription+xml.

To test:
- Verify the Content-Type the file is delivered with
  is correct, for example using wget
  http://127.0.0.1:8080/cgi-bin/koha/opac-search.pl?format=opensearchdescription

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

C4/Output.pm
opac/opac-search.pl

index 921c3a4..8ea7bb5 100644 (file)
@@ -235,7 +235,7 @@ $content_type.
 
 If applicable, $cookie can be undef, and it will not be sent.
 
-$content_type is one of the following: 'html', 'js', 'json', 'xml', 'rss', or 'atom'.
+$content_type is one of the following: 'html', 'js', 'json', 'opensearchdescription', 'xml', 'rss', or 'atom'.
 
 $status is an HTTP status message, like '403 Authentication Required'. It defaults to '200 OK'.
 
@@ -259,7 +259,8 @@ sub output_with_http_headers {
         # NOTE: not using application/atom+xml or application/rss+xml because of
         # Internet Explorer 6; see bug 2078.
         'rss'  => 'text/xml',
-        'atom' => 'text/xml'
+        'atom' => 'text/xml',
+        'opensearchdescription' => 'application/opensearchdescription+xml',
     );
 
     die "Unknown content type '$content_type'" if ( !defined( $content_type_map{$content_type} ) );
index 54655d8..4e6fa71 100755 (executable)
@@ -1015,7 +1015,7 @@ $template->param(
     add_to_some_public_shelves  => $some_public_shelves,
 );
 
-my $content_type = ($format eq 'rss' or $format eq 'atom') ? $format : 'html';
+my $content_type = ($format eq 'rss' or $format eq 'atom' or $format eq 'opensearchdescription') ? $format : 'html';
 
 # If GoogleIndicTransliteration system preference is On Set parameter to load Google's javascript in OPAC search screens
 if (C4::Context->preference('GoogleIndicTransliteration')) {