From 1acee47fc75dac9d2c7524204cf020e8c22523ba Mon Sep 17 00:00:00 2001 From: Aleisha Amohia Date: Fri, 1 Jul 2022 10:28:31 +1200 Subject: [PATCH] Bug 16522: (follow-up) MARC display templates and get_marc_host fixes Also: - Show related parts 773$g - Normalise using 'Host item entry' as title - Remove 'foreach' because non-xslt views only return first - If no $w, use $atg, and related tests in t/db_dependent/Koha/Biblio/host_record.t --- Koha/Biblio.pm | 6 +++ basket/basket.pl | 4 +- basket/sendbasket.pl | 4 +- .../intranet-tmpl/prog/en/modules/basket/basket.tt | 20 ++++---- .../prog/en/modules/basket/sendbasket.tt | 12 +++-- .../prog/en/modules/virtualshelves/sendshelf.tt | 12 +++-- .../prog/en/xslt/MARC21slim2intranetDetail.xsl | 58 ++-------------------- .../prog/en/xslt/MARC21slim2intranetResults.xsl | 57 ++------------------- .../intranet-tmpl/prog/en/xslt/MARC21slimUtils.xsl | 57 +++++++++++++++++++++ .../opac-tmpl/bootstrap/en/modules/opac-basket.tt | 26 ++++++---- .../bootstrap/en/modules/opac-sendbasket.tt | 12 +++-- .../bootstrap/en/modules/opac-sendshelf.tt | 8 +-- .../bootstrap/en/xslt/MARC21slim2OPACDetail.xsl | 58 ++-------------------- .../bootstrap/en/xslt/MARC21slim2OPACResults.xsl | 57 ++------------------- .../bootstrap/en/xslt/MARC21slimUtils.xsl | 57 +++++++++++++++++++++ opac/opac-basket.pl | 4 +- opac/opac-sendbasket.pl | 4 +- opac/opac-sendshelf.pl | 4 +- t/db_dependent/Koha/Biblio/host_record.t | 8 ++- virtualshelves/sendshelf.pl | 4 +- 20 files changed, 209 insertions(+), 263 deletions(-) diff --git a/Koha/Biblio.pm b/Koha/Biblio.pm index ea0c9d9f84..ae0f7e3dc5 100644 --- a/Koha/Biblio.pm +++ b/Koha/Biblio.pm @@ -1144,6 +1144,12 @@ sub get_marc_host { last; } } + if ( !$hostfld and $record->subfield('773','t') ) { + # not linked using $w so just return plaintext + my $unlinkedf = $record->field('773'); + my $host = join( ", ", $unlinkedf->subfield('a'), $unlinkedf->subfield('t'), $unlinkedf->subfield('g') ); + return wantarray ? ( $host, $unlinkedf->subfield('g') ) : $host; + } return if !$hostfld; my $rcn = $hostfld->subfield('w'); diff --git a/basket/basket.pl b/basket/basket.pl index 6790eaa108..cf3c24172c 100755 --- a/basket/basket.pl +++ b/basket/basket.pl @@ -107,7 +107,9 @@ foreach my $biblionumber ( @bibs ) { $dat->{MARCSERIES} = $marcseriesarray; $dat->{MARCURLS} = $marcurlsarray; $dat->{HASAUTHORS} = $hasauthors; - $dat->{HOSTITEMENTRIES} = $biblio->get_marc_host; + my ( $host, $relatedparts ) = $biblio->get_marc_host; + $dat->{HOSTITEMENTRIES} = $host; + $dat->{RELATEDPARTS} = $relatedparts; push( @results, $dat ); } diff --git a/basket/sendbasket.pl b/basket/sendbasket.pl index c423ecbecc..12504680fb 100755 --- a/basket/sendbasket.pl +++ b/basket/sendbasket.pl @@ -91,7 +91,9 @@ if ( $email_add ) { $dat->{HASAUTHORS} = $hasauthors; $dat->{'biblionumber'} = $biblionumber; $dat->{ITEM_RESULTS} = \@items; - $dat->{HOSTITEMENTRIES} = $biblio->get_marc_host; + my ( $host, $relatedparts ) = $biblio->get_marc_host; + $dat->{HOSTITEMENTRIES} = $host; + $dat->{RELATEDPARTS} = $relatedparts; $iso2709 .= $record->as_usmarc(); diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/basket/basket.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/basket/basket.tt index 30b724d733..f771f8f2da 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/basket/basket.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/basket/basket.tt @@ -219,12 +219,12 @@ [% IF BIBLIO_RESULT.HOSTITEMENTRIES %] - Host item entries + Host item entry - [% FOREACH entry IN BIBLIO_RESULT.HOSTITEMENTRIES %] -

- [% INCLUDE 'biblio-title.inc' link = 1 biblio=entry %] -

+ [% IF BIBLIO_RESULT.HOSTITEMENTRIES.biblionumber %] +

[% INCLUDE 'biblio-title.inc' link = 1 biblio=BIBLIO_RESULT.HOSTITEMENTRIES %] [% BIBLIO_RESULT.RELATEDPARTS | html %]

+ [% ELSE %] +

[% BIBLIO_RESULT.HOSTITEMENTRIES | html %]

[% END %] @@ -295,11 +295,13 @@

[% BIBLIO_RESULT.notes | html %]

[% END %] [% IF BIBLIO_RESULT.HOSTITEMENTRIES %] - [% FOREACH entry IN BIBLIO_RESULT.HOSTITEMENTRIES %] -

Host item entry: - [% INCLUDE 'biblio-title.inc' link = 1 biblio=entry %] -

+

Host item entry: + [% IF BIBLIO_RESULT.HOSTITEMENTRIES.biblionumber %] + [% INCLUDE 'biblio-title.inc' link = 1 biblio=BIBLIO_RESULT.HOSTITEMENTRIES %] [% BIBLIO_RESULT.RELATEDPARTS | html %] + [% ELSE %] + [% BIBLIO_RESULT.HOSTITEMENTRIES | html %] [% END %] +

[% END %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/basket/sendbasket.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/basket/sendbasket.tt index 4c9da15b74..4361473e3b 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/basket/sendbasket.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/basket/sendbasket.tt @@ -128,12 +128,14 @@ Your cart [% END %] [% IF BIBLIO_RESULT.HOSTITEMENTRIES %] - [% FOREACH entry IN BIBLIO_RESULT.HOSTITEMENTRIES %] - Host item entry: - [% INCLUDE 'biblio-title.inc' link = 1 biblio=entry %] - -
+ Host item entry: + [% IF BIBLIO_RESULT.HOSTITEMENTRIES.biblionumber %] + [% INCLUDE 'biblio-title.inc' link = 1 biblio=BIBLIO_RESULT.HOSTITEMENTRIES %] [% BIBLIO_RESULT.RELATEDPARTS | $raw %] + [% ELSE %] + [% BIBLIO_RESULT.HOSTITEMENTRIES %] [% END %] + +
[% END %] [% IF ( BIBLIO_RESULT.url ) %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/sendshelf.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/sendshelf.tt index 2ff9c00b2c..9d84efb2eb 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/sendshelf.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/sendshelf.tt @@ -134,12 +134,14 @@ Your list: [% shelfname | $raw %] [% END %] [% IF BIBLIO_RESULT.HOSTITEMENTRIES %] - [% FOREACH entry IN BIBLIO_RESULT.HOSTITEMENTRIES %] - Host item entry: - [% INCLUDE 'biblio-title.inc' link = 1 biblio=entry %] - -
+ Host item entry: + [% IF BIBLIO_RESULT.HOSTITEMENTRIES.biblionumber %] + [% INCLUDE 'biblio-title.inc' link = 1 biblio=BIBLIO_RESULT.HOSTITEMENTRIES %] [% BIBLIO_RESULT.RELATEDPARTS | $raw %] + [% ELSE %] + [% BIBLIO_RESULT.HOSTITEMENTRIES %] [% END %] + +
[% END %] [% IF ( BIBLIO_RESULT.url ) %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl index 88f60ae598..35f7955724 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl +++ b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl @@ -1046,61 +1046,9 @@ - - - - - - - - In: - - - - - - - - - - - - - a_t - - - - - - - /cgi-bin/koha/catalogue/search.pl?q=Control-number: - - - - - /cgi-bin/koha/catalogue/detail.pl?biblionumber= - - - - - - /cgi-bin/koha/catalogue/search.pl?q=ti,phr:+AND+au: - - - - - - - - - - - - - - - - + + + diff --git a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetResults.xsl b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetResults.xsl index 337acd7188..81a39f3190 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetResults.xsl +++ b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetResults.xsl @@ -926,60 +926,9 @@ - - - - - - - - Source: - - - - - - - - - - - - - a_t - - - - - - - /cgi-bin/koha/catalogue/search.pl?q=Control-number: - - - - - /cgi-bin/koha/catalogue/detail.pl?biblionumber= - - - - - /cgi-bin/koha/catalogue/search.pl?q=ti,phr: - - - - - - - - - - - - - - - - + + + diff --git a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slimUtils.xsl b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slimUtils.xsl index dfc9cc0186..e2bd3028c9 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slimUtils.xsl +++ b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slimUtils.xsl @@ -578,6 +578,63 @@ + + + + + + + + + + Host item entry: + + + + + + + + + + + + + a_t + + + + + + + /cgi-bin/koha/catalogue/search.pl?q=Control-number: + + + + + /cgi-bin/koha/catalogue/detail.pl?biblionumber= + + + + + + /cgi-bin/koha/catalogue/search.pl?q=ti,phr:+AND+au: + + + + + + + + + + + + + + + + - - - - - - - In: - - - - - - - - - - - - - a_t - - - - - - - /cgi-bin/koha/opac-search.pl?q=Control-number: - - - - - /cgi-bin/koha/opac-detail.pl?biblionumber= - - - - - - /cgi-bin/koha/opac-search.pl?q=ti,phr:+AND+au: - - - - - - - - - - - - - - - - + + + diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACResults.xsl b/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACResults.xsl index 1b8fb35f62..6d968286e3 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACResults.xsl +++ b/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACResults.xsl @@ -657,60 +657,9 @@ - - - - - - - -
-
- -
-
-
+ + +
diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slimUtils.xsl b/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slimUtils.xsl index 105da508c7..c0e9b7576d 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slimUtils.xsl +++ b/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slimUtils.xsl @@ -542,6 +542,63 @@ + + + + + + + + + + Host item entry: + + + + + + + + + + + + + a_t + + + + + + + /cgi-bin/koha/catalogue/search.pl?q=Control-number: + + + + + /cgi-bin/koha/catalogue/detail.pl?biblionumber= + + + + + + /cgi-bin/koha/opac-search.pl?q=ti,phr:+AND+au: + + + + + + + + + + + + + + + +