From c5599b7b399e9d588746dfdfb0a449862ca7f6fe Mon Sep 17 00:00:00 2001 From: Julian Maurice Date: Wed, 2 Sep 2015 13:56:39 +0200 Subject: [PATCH] Bug 14770: Use $9 in GetMarcSeries to build search link The behaviour is the same as in GetMarcAuthors. Also skip $3 subfields if UNIMARC --- C4/Biblio.pm | 20 ++++++++++++++++---- .../prog/en/modules/catalogue/detail.tt | 22 +++++++++++++++++----- .../opac-tmpl/bootstrap/en/modules/opac-detail.tt | 2 +- 3 files changed, 34 insertions(+), 10 deletions(-) diff --git a/C4/Biblio.pm b/C4/Biblio.pm index d90094e..8662666 100644 --- a/C4/Biblio.pm +++ b/C4/Biblio.pm @@ -2074,10 +2074,19 @@ sub GetMarcSeries { my @subfields = $field->subfields(); my @link_loop; + # if there is an authority link, build the links with an= subfield9 + my $subfield9 = $field->subfield('9'); + if ($subfield9) { + my $linkvalue = $subfield9; + $linkvalue =~ s/(\(|\))//g; + @link_loop = ( { limit => 'an', 'link' => $linkvalue } ); + } + for my $series_subfield (@subfields) { # ignore $9, used for authority link next if ( $series_subfield->[0] eq '9' ); + next if ( $series_subfield->[0] eq '3' && $marcflavour eq "UNIMARC" ); my $volume_number; my $code = $series_subfield->[0]; @@ -2090,10 +2099,13 @@ sub GetMarcSeries { $volume_number = 1; } - push @link_loop, { - 'link' => $linkvalue, - operator => (scalar @link_loop) ? ' and ' : undef - }; + unless ($subfield9) { + push @link_loop, { + limit => 'se', + 'link' => $linkvalue, + operator => (scalar @link_loop) ? ' and ' : undef + }; + } if ($volume_number) { push @subfields_loop, { volumenum => $value }; diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt index 41730f5..fb29baa 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt @@ -415,11 +415,23 @@ function verify_images() { [% END %] [% IF ( MARCSERIES ) %] -
  • Series: -
  • +
  • + Series: + +
  • [% END %] [% IF ( publishercode ) %]
  • Published by: diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt index 6799e23..9bcb66d 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt @@ -199,7 +199,7 @@ [% FOREACH MARCSERIE IN MARCSERIES %] [% FOREACH MARCSERIES_SUBFIELDS_LOO IN MARCSERIE.MARCSERIES_SUBFIELDS_LOOP %] [% IF ( MARCSERIES_SUBFIELDS_LOO.value ) %] - [% MARCSERIES_SUBFIELDS_LOO.value %] + [% MARCSERIES_SUBFIELDS_LOO.value %] [% END %] [% IF ( MARCSERIES_SUBFIELDS_LOO.volumenum ) %] . [% MARCSERIES_SUBFIELDS_LOO.volumenum %] -- 1.9.1