Bug 37679: Add DC subtypes to allow-list in opac-export.pl

Bug 37370 added an allow-list of formats for exporting in the OPAC. But
it missed the fact there was a modal for choosing DublinCore subtypes
when Dublin Core is chosen in the first place.

This patch fixes this.

To test:
1. On a fresh KTD, make sure `OpacExportOptions` has all options enabled
2. Go to the OPAC and pick a record detail page
3. Choose Save record > Bibtex
=> SUCCESS: The save dialog for bibtext works
4. Repeat for DublinCore, choose any of the sub formats in the modal
=> FAIL: You get a 400 page
5. Go back to 2
6. Apply this patch, and repeat 4
=> SUCCESS: It works!
7. Without refreshing the page, disable DublinCore in the sysprefs
8. Choose any subformat and proceed
=> SUCCESS: You get a 400! This means the subformats are only considered
if DublinCore  itself is enabled
9. Sign off :-D

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This commit is contained in:
Tomás Cohen Arazi 2024-08-19 17:12:23 -03:00 committed by Katrin Fischer
parent 8619598d3b
commit f028769af8
Signed by: kfischer
GPG key ID: 0EF6E2C03357A834

View file

@ -33,7 +33,7 @@ use C4::Ris qw( marc2ris );
use Koha::Biblios;
use Koha::RecordProcessor;
use List::MoreUtils qw(none);
use List::MoreUtils qw(none any);
my $query = CGI->new;
my $op=$query->param("op")||''; #op=export is currently the only use
@ -42,7 +42,14 @@ my $biblionumber = $query->param("bib")||0;
$biblionumber = int($biblionumber);
my $error = q{};
my @dc_subtypes = qw(rdfdc oaidc srwdc);
my @valid_formats = split( ',', C4::Context->preference('OpacExportOptions') // '' );
if ( any { $_ eq 'dc' } @valid_formats ) {
# DC enabled, add @dc_subtypes to @valid_formats
@valid_formats = ( @valid_formats, @dc_subtypes );
}
if ( !scalar @valid_formats || none { $format eq $_ } @valid_formats ) {
# bad request: either the feature is disabled, or requested a format the
# library hasn't made available