@@ -, +, @@ --- C4/Breeding.pm | 38 ++++++++++++++++++- .../data/mysql/atomicupdate/bug_28166.pl | 17 +++++++++ installer/data/mysql/mandatory/sysprefs.sql | 1 + .../admin/preferences/authorities.pref | 4 ++ .../modules/cataloguing/z3950_auth_search.tt | 16 ++++++++ 5 files changed, 74 insertions(+), 2 deletions(-) create mode 100755 installer/data/mysql/atomicupdate/bug_28166.pl --- a/C4/Breeding.pm +++ a/C4/Breeding.pm @@ -342,10 +342,37 @@ sub _do_xslt_proc { } } +sub _add_rowdata { + my ($row, $record)=@_; + my %fetch= ( + title => 'biblio.title', + author => 'biblio.author', + isbn =>'biblioitems.isbn', + lccn =>'biblioitems.lccn', #LC control number (not call number) + edition =>'biblioitems.editionstatement' + ); + $fetch{date} = C4::Context->preference('marcflavour') eq "MARC21" ? 'biblio.copyrightdate' : 'biblioitems.publicationyear'; + + #foreach my $k (keys %fetch) { + # $row->{$k} = C4::Biblio::TransformMarcToKohaOneField( $fetch{$k}, $record ); + #} + $row->{date}//= $row->{date2}; + $row->{isbn}=_isbn_replace($row->{isbn}); + + $row = _add_custom_field_rowdata( + $row, + $record, + C4::Context->preference('AdditionalFieldsInZ3950ResultSearch')) + if C4::Context->preference('AdditionalFieldsInZ3950ResultSearch'); + return $row; +} + sub _add_custom_field_rowdata { - my ( $row, $record ) = @_; - my $pref_newtags = C4::Context->preference('AdditionalFieldsInZ3950ResultSearch'); + # my ( $row, $record ) = @_; + # my $pref_newtags = C4::Context->preference('AdditionalFieldsInZ3950ResultSearch'); + # hks3 + my ( $row, $record, $pref_newtags ) = @_; my $pref_flavour = C4::Context->preference('MarcFlavour'); $pref_newtags =~ s/^\s+|\s+$//g; @@ -602,6 +629,13 @@ sub Z3950SearchAuth { $row_data{heading} = $heading; $row_data{authid} = $authid; $row_data{heading_code} = $heading_authtype_code; + my $pref_newtags = + C4::Context->preference('AdditionalFieldsInZ3950ResultAuthSearch'); + if ($pref_newtags) { + my $row = {}; + $row = _add_custom_field_rowdata($row, $marcrecord, $pref_newtags); + $row_data{row} = $row; + } push( @breeding_loop, \%row_data ); } else { --- a/installer/data/mysql/atomicupdate/bug_28166.pl +++ a/installer/data/mysql/atomicupdate/bug_28166.pl @@ -0,0 +1,17 @@ +use Modern::Perl; + +return { + bug_number => "28166", + description => "Add system preference for additional columns for Z39.50 authority search results", + up => sub { + my ($args) = @_; + my ($dbh, $out) = @$args{qw(dbh out)}; + # Do you stuffs here + $dbh->do(q{INSERT IGNORE INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `type` ) VALUES +('AdditionalFieldsInZ3950ResultAuthSearch', '', NULL, 'Determines which MARC field/subfields are displayed in -Additional field- column in the result of an authority Z39.50 search', 'Free') +}); + # Print useful stuff here + # sysprefs + say $out "Added new system preference 'AdditionalFieldsInZ3950ResultAuthSearch'"; + }, +}; --- a/installer/data/mysql/mandatory/sysprefs.sql +++ a/installer/data/mysql/mandatory/sysprefs.sql @@ -11,6 +11,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` ('AcqWarnOnDuplicateInvoice','0','','Warn librarians when they try to create a duplicate invoice','YesNo'), ('ActionLogsTraceDepth', '0', '', 'Sets the maximum depth of the action logs stack trace', 'Integer'), ('AdditionalContentsEditor','tinymce','tinymce|codemirror','Choose tool for editing News.', 'Choice'), +('AdditionalFieldsInZ3950ResultAuthSearch', '', NULL, 'Determines which MARC field/subfields are displayed in -Additional field- column in the result of an authority Z39.50 search', 'Free'), ('AdditionalFieldsInZ3950ResultSearch', '', NULL, 'Determines which MARC field/subfields are displayed in -Additional field- column in the result of a search Z3950', 'Free'), ('AddressForFailedOverdueNotices', '', NULL, 'Destination email for failed overdue notices. If left empty then it will fallback to the first defined address in the following list: Library ReplyTo, Library Email, ReplytoDefault and KohaAdminEmailAddress', 'free'), ('AddressFormat','us','us|de|fr','Choose format to display postal addresses', 'Choice'), --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/authorities.pref +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/authorities.pref @@ -75,6 +75,10 @@ Authorities: default: "Work cat." type: textarea class: code + - + - Display the MARC field/subfields + - pref: AdditionalFieldsInZ3950ResultAuthSearch + - " in the 'Additional fields' column of Z39.50 search results (use comma as delimiter e.g.: \"001, 035$a\")" Linker: - --- a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/z3950_auth_search.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/z3950_auth_search.tt @@ -1,5 +1,6 @@ [% USE raw %] [% USE Asset %] +[% USE Koha %] [% SET footerjs = 1 %] [% INCLUDE 'doc-head-open.inc' %] [% IF ( opsearch ) %] @@ -80,6 +81,9 @@ Server Heading Authority type + [% IF Koha.Preference('AdditionalFieldsInZ3950ResultAuthSearch') %] + Additional fields + [% END %] Actions [% FOREACH breeding_loo IN breeding_loop %] @@ -88,6 +92,18 @@ [% breeding_loo.server | html %] [% breeding_loo.heading | html %] [% breeding_loo.heading_code | html %] + [% IF Koha.Preference('AdditionalFieldsInZ3950ResultAuthSearch') != '' %] + +
+ [% FOREACH addnumberfield IN breeding_loo.row.addnumberfields %] + [% FOREACH string IN breeding_loo.row.$addnumberfield %] +
[% addnumberfield | html %]:
+
[% string | html %]
+ [% END %] + [% END %] +
+ + [% END %]
MARC --