Bugzilla – Attachment 145522 Details for
Bug 16522
Add 773 (Host item entry) to the cart and list displays and e-mails
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 16522: (follow-up) MARC display templates and get_marc_host fixes
Bug-16522-follow-up-MARC-display-templates-and-get.patch (text/plain), 45.09 KB, created by
Katrin Fischer
on 2023-01-20 15:37:51 UTC
(
hide
)
Description:
Bug 16522: (follow-up) MARC display templates and get_marc_host fixes
Filename:
MIME Type:
Creator:
Katrin Fischer
Created:
2023-01-20 15:37:51 UTC
Size:
45.09 KB
patch
obsolete
>From 87ed10a6b012bcb3b39b2c2e6776cf98fdaf77a9 Mon Sep 17 00:00:00 2001 >From: Aleisha Amohia <aleishaamohia@hotmail.com> >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 > >Signed-off-by: Heather Hernandez <heather_hernandez@nps.gov> > >Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de> >--- > Koha/Biblio.pm | 6 ++ > basket/basket.pl | 4 +- > basket/sendbasket.pl | 4 +- > .../prog/en/modules/basket/basket.tt | 20 ++--- > .../prog/en/modules/basket/sendbasket.tt | 12 +-- > .../en/modules/virtualshelves/sendshelf.tt | 12 +-- > .../en/xslt/MARC21slim2intranetDetail.xsl | 75 +------------------ > .../en/xslt/MARC21slim2intranetResults.xsl | 57 +------------- > .../prog/en/xslt/MARC21slimUtils.xsl | 74 ++++++++++++++++++ > .../bootstrap/en/modules/opac-basket.tt | 26 ++++--- > .../bootstrap/en/modules/opac-sendbasket.tt | 12 +-- > .../bootstrap/en/modules/opac-sendshelf.tt | 8 +- > .../en/xslt/MARC21slim2OPACDetail.xsl | 75 +------------------ > .../en/xslt/MARC21slim2OPACResults.xsl | 57 +------------- > .../bootstrap/en/xslt/MARC21slimUtils.xsl | 74 ++++++++++++++++++ > 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, 243 insertions(+), 297 deletions(-) > >diff --git a/Koha/Biblio.pm b/Koha/Biblio.pm >index 5b7541a36e..4b0c14aec9 100644 >--- a/Koha/Biblio.pm >+++ b/Koha/Biblio.pm >@@ -1237,6 +1237,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 c1e76ebb2a..54fabe44d4 100755 >--- a/basket/basket.pl >+++ b/basket/basket.pl >@@ -96,7 +96,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 f6740eb1b3..af47302d5c 100755 >--- a/basket/sendbasket.pl >+++ b/basket/sendbasket.pl >@@ -86,7 +86,9 @@ if ( $email_add ) { > $dat->{HASAUTHORS} = $hasauthors; > $dat->{'biblionumber'} = $biblionumber; > $dat->{ITEM_RESULTS} = $biblio->items->search_ordered; >- $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 9f8453b98d..a6886790ee 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/basket/basket.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/basket/basket.tt >@@ -221,12 +221,12 @@ > > [% IF BIBLIO_RESULT.HOSTITEMENTRIES %] > <tr> >- <th scope="row">Host item entries</th> >+ <th scope="row">Host item entry</th> > <td> >- [% FOREACH entry IN BIBLIO_RESULT.HOSTITEMENTRIES %] >- <p> >- [% INCLUDE 'biblio-title.inc' link = 1 biblio=entry %] >- </p> >+ [% IF BIBLIO_RESULT.HOSTITEMENTRIES.biblionumber %] >+ <p>[% INCLUDE 'biblio-title.inc' link = 1 biblio=BIBLIO_RESULT.HOSTITEMENTRIES %] [% BIBLIO_RESULT.RELATEDPARTS | html %]</p> >+ [% ELSE %] >+ <p>[% BIBLIO_RESULT.HOSTITEMENTRIES | html %]</p> > [% END %] > </td> > </tr> >@@ -299,11 +299,13 @@ > <p>[% BIBLIO_RESULT.notes | html %]</p> > [% END %] > [% IF BIBLIO_RESULT.HOSTITEMENTRIES %] >- [% FOREACH entry IN BIBLIO_RESULT.HOSTITEMENTRIES %] >- <p>Host item entry: >- [% INCLUDE 'biblio-title.inc' link = 1 biblio=entry %] >- </p> >+ <p>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 %] >+ </p> > [% END %] > <!-- COinS / Openurl --> > <span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.au=[% BIBLIO_RESULT.author | html %]&rft.btitle=[% BIBLIO_RESULT.title |url %]&rft.date=[% BIBLIO_RESULT.publicationyear | html %]&rft.tpages=[% BIBLIO_RESULT.item('size') | html %]&rft.isbn=[% BIBLIO_RESULT.isbn |url %]&rft.aucorp=&rft.place=[% BIBLIO_RESULT.place | html %]&rft.pub=[% BIBLIO_RESULT.publisher |url %]&rft.edition=[% BIBLIO_RESULT.edition | html %]&rft.series=[% BIBLIO_RESULT.series | html %]&rft.genre="></span> >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 88ec0af752..03b703f932 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/basket/sendbasket.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/basket/sendbasket.tt >@@ -129,12 +129,14 @@ Your cart > [% END %] > > [% IF BIBLIO_RESULT.HOSTITEMENTRIES %] >- [% FOREACH entry IN BIBLIO_RESULT.HOSTITEMENTRIES %] >- <span>Host item entry: >- [% INCLUDE 'biblio-title.inc' link = 1 biblio=entry %] >- </span> >- <br/> >+ <span>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 %] >+ </span> >+ <br/> > [% 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 a05dfe7a47..d46591b28b 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/sendshelf.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/sendshelf.tt >@@ -136,12 +136,14 @@ Your list: [% shelfname | $raw %] > [% END %] > > [% IF BIBLIO_RESULT.HOSTITEMENTRIES %] >- [% FOREACH entry IN BIBLIO_RESULT.HOSTITEMENTRIES %] >- <span>Host item entry: >- [% INCLUDE 'biblio-title.inc' link = 1 biblio=entry %] >- </span> >- <br/> >+ <span>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 %] >+ </span> >+ <br/> > [% 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 dd3cda470a..c5fd064e63 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl >+++ b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl >@@ -1053,78 +1053,9 @@ > </span> > </xsl:if> > >- <!-- 773 --> >- <xsl:if test="marc:datafield[@tag=773]"> >- <xsl:for-each select="marc:datafield[@tag=773]"> >- <xsl:if test="@ind1 !=1"> >- <span class="results_summary in"><span class="label"> >- <xsl:choose> >- <xsl:when test="@ind2=' '"> >- In: >- </xsl:when> >- <xsl:when test="@ind2=8"> >- <xsl:if test="marc:subfield[@code='i']"> >- <xsl:value-of select="marc:subfield[@code='i']"/> >- </xsl:if> >- </xsl:when> >- </xsl:choose> >- </span> >- <xsl:variable name="f773"> >- <xsl:call-template name="chopPunctuation"> >- <xsl:with-param name="chopString"> >- <xsl:call-template name="subfieldSelect"> >- <xsl:with-param name="codes">a_t</xsl:with-param> >- </xsl:call-template> >- </xsl:with-param> >- </xsl:call-template> >- </xsl:variable> >- <xsl:choose> >- <xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']"> >- <a><xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=Control-number:<xsl:call-template name="extractControlNumber"><xsl:with-param name="subfieldW" select="marc:subfield[@code='w']"/></xsl:call-template></xsl:attribute> >- <xsl:value-of select="translate($f773, '()', '')"/> >- </a> >- </xsl:when> >- <xsl:when test="marc:subfield[@code='0']"> >- <a><xsl:attribute name="href">/cgi-bin/koha/catalogue/detail.pl?biblionumber=<xsl:value-of select="str:encode-uri(marc:subfield[@code='0'], true())"/></xsl:attribute> >- <xsl:value-of select="$f773"/> >- </a> >- </xsl:when> >- <xsl:otherwise> >- <xsl:variable name="host_query"> >- <xsl:text>ti,phr:(</xsl:text> >- <xsl:call-template name="quote_search_term"> >- <xsl:with-param name="term"><xsl:value-of select="marc:subfield[@code='t']"/></xsl:with-param> >- </xsl:call-template> >- <xsl:text>)</xsl:text> >- <xsl:if test="marc:subfield[@code='a']"> >- <xsl:text> AND au:(</xsl:text> >- <xsl:call-template name="quote_search_term"> >- <xsl:with-param name="term"> >- <xsl:value-of select="marc:subfield[@code='a']"/> >- </xsl:with-param> >- </xsl:call-template> >- <xsl:text>)</xsl:text> >- </xsl:if> >- </xsl:variable> >- <a> >- <xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=<xsl:value-of select="str:encode-uri($host_query, true())" /> >- </xsl:attribute> >- <xsl:value-of select="$f773"/> >- </a> >- </xsl:otherwise> >- </xsl:choose> >- <xsl:if test="marc:subfield[@code='g']"> >- <xsl:text> </xsl:text><xsl:value-of select="marc:subfield[@code='g']"/> >- </xsl:if> >- </span> >- >- <xsl:if test="marc:subfield[@code='n']"> >- <span class="results_summary in_note"><xsl:value-of select="marc:subfield[@code='n']"/></span> >- </xsl:if> >- >- </xsl:if> >- </xsl:for-each> >- </xsl:if> >+ <xsl:call-template name="host-item-entries"> >+ <xsl:with-param name="UseControlNumber" select="$UseControlNumber"/> >+ </xsl:call-template> > > <xsl:if test="marc:datafield[@tag=502]"> > <span class="results_summary diss_note"> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetResults.xsl b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetResults.xsl >index d8091ce483..bc3a0ed760 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetResults.xsl >+++ b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetResults.xsl >@@ -929,60 +929,9 @@ > </span> > </xsl:if> > >- <!-- 773 --> >- <xsl:if test="marc:datafield[@tag=773]"> >- <xsl:for-each select="marc:datafield[@tag=773]"> >- <xsl:if test="@ind1 !=1"> >- <span class="results_summary in"><span class="label"> >- <xsl:choose> >- <xsl:when test="@ind2=' '"> >- Source: >- </xsl:when> >- <xsl:when test="@ind2=8"> >- <xsl:if test="marc:subfield[@code='i']"> >- <xsl:value-of select="marc:subfield[@code='i']"/> >- </xsl:if> >- </xsl:when> >- </xsl:choose> >- </span> >- <xsl:variable name="f773"> >- <xsl:call-template name="chopPunctuation"> >- <xsl:with-param name="chopString"> >- <xsl:call-template name="subfieldSelect"> >- <xsl:with-param name="codes">a_t</xsl:with-param> >- </xsl:call-template> >- </xsl:with-param> >- </xsl:call-template> >- </xsl:variable> >- <xsl:choose> >- <xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']"> >- <a><xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=Control-number:<xsl:call-template name="extractControlNumber"><xsl:with-param name="subfieldW" select="marc:subfield[@code='w']"/></xsl:call-template></xsl:attribute> >- <xsl:value-of select="translate($f773, '()', '')"/> >- </a> >- </xsl:when> >- <xsl:when test="marc:subfield[@code='0']"> >- <a><xsl:attribute name="href">/cgi-bin/koha/catalogue/detail.pl?biblionumber=<xsl:value-of select="str:encode-uri(marc:subfield[@code='0'], true())"/></xsl:attribute> >- <xsl:value-of select="$f773"/> >- </a> >- </xsl:when> >- <xsl:otherwise> >- <a><xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=ti,phr:<xsl:value-of select="str:encode-uri(translate($f773, '()', ''), true())"/></xsl:attribute> >- <xsl:value-of select="$f773"/> >- </a> >- </xsl:otherwise> >- </xsl:choose> >- <xsl:if test="marc:subfield[@code='g']"> >- <xsl:text> </xsl:text><xsl:value-of select="marc:subfield[@code='g']"/> >- </xsl:if> >- </span> >- >- <xsl:if test="marc:subfield[@code='n']"> >- <span class="results_summary in_note"><xsl:value-of select="marc:subfield[@code='n']"/></span> >- </xsl:if> >- >- </xsl:if> >- </xsl:for-each> >- </xsl:if> >+ <xsl:call-template name="host-item-entries"> >+ <xsl:with-param name="UseControlNumber" select="$UseControlNumber"/> >+ </xsl:call-template> > > <!-- Other Title Statement: Alternate Graphic Representation (MARC 880) --> > <xsl:if test="$display880"> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slimUtils.xsl b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slimUtils.xsl >index 109d1ad75e..0fa279abe1 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slimUtils.xsl >+++ b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slimUtils.xsl >@@ -615,6 +615,80 @@ > </xsl:choose> > </xsl:template> > >+ <xsl:template name="host-item-entries"> >+ <xsl:param name="UseControlNumber"/> >+ <!-- 773 --> >+ <xsl:if test="marc:datafield[@tag=773]"> >+ <xsl:for-each select="marc:datafield[@tag=773]"> >+ <xsl:if test="@ind1 !=1"> >+ <span class="results_summary in"><span class="label"> >+ <xsl:choose> >+ <xsl:when test="@ind2=' '"> >+ Host item entry: >+ </xsl:when> >+ <xsl:when test="@ind2=8"> >+ <xsl:if test="marc:subfield[@code='i']"> >+ <xsl:value-of select="marc:subfield[@code='i']"/> >+ </xsl:if> >+ </xsl:when> >+ </xsl:choose> >+ </span> >+ <xsl:variable name="f773"> >+ <xsl:call-template name="chopPunctuation"> >+ <xsl:with-param name="chopString"> >+ <xsl:call-template name="subfieldSelect"> >+ <xsl:with-param name="codes">a_t</xsl:with-param> >+ </xsl:call-template> >+ </xsl:with-param> >+ </xsl:call-template> >+ </xsl:variable> >+ <xsl:choose> >+ <xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']"> >+ <a><xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=Control-number:<xsl:call-template name="extractControlNumber"><xsl:with-param name="subfieldW" select="marc:subfield[@code='w']"/></xsl:call-template></xsl:attribute> >+ <xsl:value-of select="translate($f773, '()', '')"/> >+ </a> >+ </xsl:when> >+ <xsl:when test="marc:subfield[@code='0']"> >+ <a><xsl:attribute name="href">/cgi-bin/koha/catalogue/detail.pl?biblionumber=<xsl:value-of select="str:encode-uri(marc:subfield[@code='0'], true())"/></xsl:attribute> >+ <xsl:value-of select="$f773"/> >+ </a> >+ </xsl:when> >+ <xsl:otherwise> >+ <xsl:variable name="host_query"> >+ <xsl:text>ti,phr:(</xsl:text> >+ <xsl:call-template name="quote_search_term"> >+ <xsl:with-param name="term"><xsl:value-of select="marc:subfield[@code='t']"/></xsl:with-param> >+ </xsl:call-template> >+ <xsl:text>)</xsl:text> >+ <xsl:if test="marc:subfield[@code='a']"> >+ <xsl:text> AND au:(</xsl:text> >+ <xsl:call-template name="quote_search_term"> >+ <xsl:with-param name="term"> >+ <xsl:value-of select="marc:subfield[@code='a']"/> >+ </xsl:with-param> >+ </xsl:call-template> >+ <xsl:text>)</xsl:text> >+ </xsl:if> >+ </xsl:variable> >+ <a> >+ <xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=<xsl:value-of select="str:encode-uri($host_query, true())" /> >+ </xsl:attribute> >+ <xsl:value-of select="$f773"/> >+ </a> >+ </xsl:otherwise> >+ </xsl:choose> >+ <xsl:if test="marc:subfield[@code='g']"> >+ <xsl:text> </xsl:text><xsl:value-of select="marc:subfield[@code='g']"/> >+ </xsl:if> >+ </span> >+ <xsl:if test="marc:subfield[@code='n']"> >+ <span class="results_summary in_note"><xsl:value-of select="marc:subfield[@code='n']"/></span> >+ </xsl:if> >+ </xsl:if> >+ </xsl:for-each> >+ </xsl:if> >+ </xsl:template> >+ > </xsl:stylesheet> > > <!-- Stylus Studio meta-information - (c)1998-2002 eXcelon Corp. >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-basket.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-basket.tt >index cbec186bd0..8e7f85b88a 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-basket.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-basket.tt >@@ -238,13 +238,15 @@ > > [% IF BIBLIO_RESULT.HOSTITEMENTRIES %] > <tr> >- <th scope="row">Host item entries</th> >+ <th scope="row">Host item entry</th> > <td> >- [% FOREACH entry IN BIBLIO_RESULT.HOSTITEMENTRIES %] >- <p> >- <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% entry.biblionumber | uri %]">[% INCLUDE 'biblio-title.inc' biblio=entry %]</a> >- </p> >- [% END %] >+ <p> >+ [% IF BIBLIO_RESULT.HOSTITEMENTRIES.biblionumber %] >+ <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% BIBLIO_RESULT.HOSTITEMENTRIES.biblionumber | uri %]">[% INCLUDE 'biblio-title.inc' biblio=BIBLIO_RESULT.HOSTITEMENTRIES %]</a> [% BIBLIO_RESULT.RELATEDPARTS | html %] >+ [% ELSE %] >+ [% BIBLIO_RESULT.HOSTITEMENTRIES %] >+ [% END %] >+ </p> > </td> > </tr> > [% END %] >@@ -309,11 +311,13 @@ > [% END %] > > [% IF BIBLIO_RESULT.HOSTITEMENTRIES %] >- [% FOREACH entry IN BIBLIO_RESULT.HOSTITEMENTRIES %] >- <p>Host item entry: >- <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% entry.biblionumber | uri %]">[% INCLUDE 'biblio-title.inc' biblio=entry %]</a> >- </p> >- [% END %] >+ <p>Host item entry: >+ [% IF BIBLIO_RESULT.HOSTITEMENTRIES.biblionumber %] >+ <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% BIBLIO_RESULT.HOSTITEMENTRIES.biblionumber | uri %]">[% INCLUDE 'biblio-title.inc' biblio=entry %]</a> [% BIBLIO_RESULT.RELATEDPARTS | html %] >+ [% ELSE %] >+ [% BIBLIO_RESULT.HOSTITEMENTRIES %] >+ [% END %] >+ </p> > [% END %] > </td> > <td>[% BIBLIO_RESULT.author | html %]</td> >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-sendbasket.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-sendbasket.tt >index 6c9e0e35fa..cd89d19ba1 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-sendbasket.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-sendbasket.tt >@@ -134,12 +134,14 @@ Your cart > [% END %] > > [% IF BIBLIO_RESULT.HOSTITEMENTRIES %] >- [% FOREACH entry IN BIBLIO_RESULT.HOSTITEMENTRIES %] >- <span>Host item entry: >- <a href="[% OPACBaseURL | $raw %]/cgi-bin/koha/opac-detail.pl?biblionumber=[% entry.biblionumber | uri %]">[% INCLUDE 'biblio-title.inc' biblio=entry %]</a> >- </span> >- <br/> >+ <span>Host item entry: >+ [% IF BIBLIO_RESULT.HOSTITEMENTRIES.biblionumber %] >+ <a href="[% OPACBaseURL | $raw %]/cgi-bin/koha/opac-detail.pl?biblionumber=[% BIBLIO_RESULT.HOSTITEMENTRIES.biblionumber | uri %]">[% INCLUDE 'biblio-title.inc' biblio=BIBLIO_RESULT.HOSTITEMENTRIES %]</a> [% BIBLIO_RESULT.RELATEDPARTS | $raw %] >+ [% ELSE %] >+ [% BIBLIO_RESULT.HOSTITEMENTRIES %] > [% END %] >+ </span> >+ <br/> > [% END %] > > [% IF ( BIBLIO_RESULT.url ) %] >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-sendshelf.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-sendshelf.tt >index 1ed378e0a7..ba4f092857 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-sendshelf.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-sendshelf.tt >@@ -137,12 +137,14 @@ Your list : [% shelfname | $raw %] > [% END %] > > [% IF BIBLIO_RESULT.HOSTITEMENTRIES %] >- [% FOREACH entry IN BIBLIO_RESULT.HOSTITEMENTRIES %] > <span>Host item entry: >- <a href="[% OPACBaseURL | $raw %]/cgi-bin/koha/opac-detail.pl?biblionumber=[% entry.biblionumber | uri %]">[% INCLUDE 'biblio-title.inc' biblio=entry %]</a> >+ [% IF BIBLIO_RESULT.HOSTITEMENTRIES.biblionumber %] >+ <a href="[% OPACBaseURL | $raw %]/cgi-bin/koha/opac-detail.pl?biblionumber=[% BIBLIO_RESULT.HOSTITEMENTRIES.biblionumber | uri %]">[% INCLUDE 'biblio-title.inc' biblio=BIBLIO_RESULT.HOSTITEMENTRIES %]</a> [% BIBLIO_RESULT.RELATEDPARTS | $raw %] >+ [% ELSE %] >+ [% BIBLIO_RESULT.HOSTITEMENTRIES %] >+ [% END %] > </span> > <br/> >- [% END %] > [% END %] > > [% IF ( BIBLIO_RESULT.url ) %] >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACDetail.xsl b/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACDetail.xsl >index 5cd31e0ce0..34a6e0bbf7 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACDetail.xsl >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACDetail.xsl >@@ -1255,78 +1255,9 @@ > </span> > </xsl:if> > >- <!-- 773 --> >- <xsl:if test="marc:datafield[@tag=773]"> >- <xsl:for-each select="marc:datafield[@tag=773]"> >- <xsl:if test="@ind1 !=1"> >- <span class="results_summary in"><span class="label"> >- <xsl:choose> >- <xsl:when test="@ind2=' '"> >- In: >- </xsl:when> >- <xsl:when test="@ind2=8"> >- <xsl:if test="marc:subfield[@code='i']"> >- <xsl:value-of select="marc:subfield[@code='i']"/> >- </xsl:if> >- </xsl:when> >- </xsl:choose> >- </span> >- <xsl:variable name="f773"> >- <xsl:call-template name="chopPunctuation"> >- <xsl:with-param name="chopString"> >- <xsl:call-template name="subfieldSelect"> >- <xsl:with-param name="codes">a_t</xsl:with-param> >- </xsl:call-template> >- </xsl:with-param> >- </xsl:call-template> >- </xsl:variable> >- <xsl:choose> >- <xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']"> >- <a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=Control-number:<xsl:call-template name="extractControlNumber"><xsl:with-param name="subfieldW" select="marc:subfield[@code='w']"/></xsl:call-template></xsl:attribute> >- <xsl:value-of select="translate($f773, '()', '')"/> >- </a> >- </xsl:when> >- <xsl:when test="marc:subfield[@code='0']"> >- <a><xsl:attribute name="href">/cgi-bin/koha/opac-detail.pl?biblionumber=<xsl:value-of select="str:encode-uri(marc:subfield[@code='0'], true())"/></xsl:attribute> >- <xsl:value-of select="$f773"/> >- </a> >- </xsl:when> >- <xsl:otherwise> >- <xsl:variable name="host_query"> >- <xsl:text>ti,phr:(</xsl:text> >- <xsl:call-template name="quote_search_term"> >- <xsl:with-param name="term"><xsl:value-of select="marc:subfield[@code='t']"/></xsl:with-param> >- </xsl:call-template> >- <xsl:text>)</xsl:text> >- <xsl:if test="marc:subfield[@code='a']"> >- <xsl:text> AND au:(</xsl:text> >- <xsl:call-template name="quote_search_term"> >- <xsl:with-param name="term"> >- <xsl:value-of select="marc:subfield[@code='a']"/> >- </xsl:with-param> >- </xsl:call-template> >- <xsl:text>)</xsl:text> >- </xsl:if> >- </xsl:variable> >- <a> >- <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=<xsl:value-of select="str:encode-uri($host_query, true())" /> >- </xsl:attribute> >- <xsl:value-of select="$f773"/> >- </a> >- </xsl:otherwise> >- </xsl:choose> >- <xsl:if test="marc:subfield[@code='g']"> >- <xsl:text> </xsl:text><xsl:value-of select="marc:subfield[@code='g']"/> >- </xsl:if> >- </span> >- >- <xsl:if test="marc:subfield[@code='n']"> >- <span class="results_summary in_note"><xsl:value-of select="marc:subfield[@code='n']"/></span> >- </xsl:if> >- >- </xsl:if> >- </xsl:for-each> >- </xsl:if> >+ <xsl:call-template name="host-item-entries"> >+ <xsl:with-param name="UseControlNumber" select="$UseControlNumber"/> >+ </xsl:call-template> > > <xsl:for-each select="marc:datafield[@tag=511]"> > <span class="results_summary perf_note"> >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACResults.xsl b/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACResults.xsl >index 4dc2a2ea27..23b04636ae 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACResults.xsl >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACResults.xsl >@@ -660,60 +660,9 @@ > </div> > </xsl:if> > >- <!-- 773 --> >- <xsl:if test="marc:datafield[@tag=773]"> >- <xsl:for-each select="marc:datafield[@tag=773]"> >- <xsl:if test="@ind1 !=1"> >- <div class="results_summary in"><span class="label"> >- <xsl:choose> >- <xsl:when test="@ind2=' '"> >- Source: >- </xsl:when> >- <xsl:when test="@ind2=8"> >- <xsl:if test="marc:subfield[@code='i']"> >- <xsl:value-of select="marc:subfield[@code='i']"/> >- </xsl:if> >- </xsl:when> >- </xsl:choose> >- <xsl:variable name="f773"> >- <xsl:call-template name="chopPunctuation"> >- <xsl:with-param name="chopString"> >- <xsl:call-template name="subfieldSelect"> >- <xsl:with-param name="codes">a_t</xsl:with-param> >- </xsl:call-template> >- </xsl:with-param> >- </xsl:call-template> >- </xsl:variable> >- <xsl:choose> >- <xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']"> >- <a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=Control-number:<xsl:call-template name="extractControlNumber"><xsl:with-param name="subfieldW" select="marc:subfield[@code='w']"/></xsl:call-template></xsl:attribute> >- <xsl:value-of select="translate($f773, '()', '')"/> >- </a> >- </xsl:when> >- <xsl:when test="marc:subfield[@code='0']"> >- <a><xsl:attribute name="href">/cgi-bin/koha/opac-detail.pl?biblionumber=<xsl:value-of select="str:encode-uri(marc:subfield[@code='0'], true())"/></xsl:attribute> >- <xsl:value-of select="$f773"/> >- </a> >- </xsl:when> >- <xsl:otherwise> >- <a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=ti,phr:<xsl:value-of select="str:encode-uri(translate($f773, '()', ''), true())"/></xsl:attribute> >- <xsl:value-of select="$f773"/> >- </a> >- </xsl:otherwise> >- </xsl:choose> >- <xsl:if test="marc:subfield[@code='g']"> >- <xsl:text> </xsl:text><xsl:value-of select="marc:subfield[@code='g']"/> >- </xsl:if> >- </span> >- </div> >- >- <xsl:if test="marc:subfield[@code='n']"> >- <div class="results_summary in_note"><xsl:value-of select="marc:subfield[@code='n']"/></div> >- </xsl:if> >- >- </xsl:if> >- </xsl:for-each> >- </xsl:if> >+ <xsl:call-template name="host-item-entries"> >+ <xsl:with-param name="UseControlNumber" select="$UseControlNumber"/> >+ </xsl:call-template> > > <xsl:if test="$DisplayOPACiconsXSLT!='0'"> > <div class="results_summary type"> >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slimUtils.xsl b/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slimUtils.xsl >index b1afb43616..5b08c73c76 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slimUtils.xsl >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slimUtils.xsl >@@ -578,6 +578,80 @@ > </xsl:choose> > </xsl:template> > >+ <xsl:template name="host-item-entries"> >+ <xsl:param name="UseControlNumber"/> >+ <!-- 773 --> >+ <xsl:if test="marc:datafield[@tag=773]"> >+ <xsl:for-each select="marc:datafield[@tag=773]"> >+ <xsl:if test="@ind1 !=1"> >+ <span class="results_summary in"><span class="label"> >+ <xsl:choose> >+ <xsl:when test="@ind2=' '"> >+ Host item entry: >+ </xsl:when> >+ <xsl:when test="@ind2=8"> >+ <xsl:if test="marc:subfield[@code='i']"> >+ <xsl:value-of select="marc:subfield[@code='i']"/> >+ </xsl:if> >+ </xsl:when> >+ </xsl:choose> >+ </span> >+ <xsl:variable name="f773"> >+ <xsl:call-template name="chopPunctuation"> >+ <xsl:with-param name="chopString"> >+ <xsl:call-template name="subfieldSelect"> >+ <xsl:with-param name="codes">a_t</xsl:with-param> >+ </xsl:call-template> >+ </xsl:with-param> >+ </xsl:call-template> >+ </xsl:variable> >+ <xsl:choose> >+ <xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']"> >+ <a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=Control-number:<xsl:call-template name="extractControlNumber"><xsl:with-param name="subfieldW" select="marc:subfield[@code='w']"/></xsl:call-template></xsl:attribute> >+ <xsl:value-of select="translate($f773, '()', '')"/> >+ </a> >+ </xsl:when> >+ <xsl:when test="marc:subfield[@code='0']"> >+ <a><xsl:attribute name="href">/cgi-bin/koha/opac-detail.pl?biblionumber=<xsl:value-of select="str:encode-uri(marc:subfield[@code='0'], true())"/></xsl:attribute> >+ <xsl:value-of select="$f773"/> >+ </a> >+ </xsl:when> >+ <xsl:otherwise> >+ <xsl:variable name="host_query"> >+ <xsl:text>ti,phr:(</xsl:text> >+ <xsl:call-template name="quote_search_term"> >+ <xsl:with-param name="term"><xsl:value-of select="marc:subfield[@code='t']"/></xsl:with-param> >+ </xsl:call-template> >+ <xsl:text>)</xsl:text> >+ <xsl:if test="marc:subfield[@code='a']"> >+ <xsl:text> AND au:(</xsl:text> >+ <xsl:call-template name="quote_search_term"> >+ <xsl:with-param name="term"> >+ <xsl:value-of select="marc:subfield[@code='a']"/> >+ </xsl:with-param> >+ </xsl:call-template> >+ <xsl:text>)</xsl:text> >+ </xsl:if> >+ </xsl:variable> >+ <a> >+ <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=<xsl:value-of select="str:encode-uri($host_query, true())" /> >+ </xsl:attribute> >+ <xsl:value-of select="$f773"/> >+ </a> >+ </xsl:otherwise> >+ </xsl:choose> >+ <xsl:if test="marc:subfield[@code='g']"> >+ <xsl:text> </xsl:text><xsl:value-of select="marc:subfield[@code='g']"/> >+ </xsl:if> >+ </span> >+ <xsl:if test="marc:subfield[@code='n']"> >+ <span class="results_summary in_note"><xsl:value-of select="marc:subfield[@code='n']"/></span> >+ </xsl:if> >+ </xsl:if> >+ </xsl:for-each> >+ </xsl:if> >+ </xsl:template> >+ > </xsl:stylesheet> > > <!-- Stylus Studio meta-information - (c)1998-2002 eXcelon Corp. >diff --git a/opac/opac-basket.pl b/opac/opac-basket.pl >index 2f7d235cb9..31096332b6 100755 >--- a/opac/opac-basket.pl >+++ b/opac/opac-basket.pl >@@ -117,7 +117,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/opac/opac-sendbasket.pl b/opac/opac-sendbasket.pl >index 35860f5f88..278cfd34a6 100755 >--- a/opac/opac-sendbasket.pl >+++ b/opac/opac-sendbasket.pl >@@ -97,7 +97,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/opac/opac-sendshelf.pl b/opac/opac-sendshelf.pl >index 96c36c1cf0..3d3d9232ed 100755 >--- a/opac/opac-sendshelf.pl >+++ b/opac/opac-sendshelf.pl >@@ -102,7 +102,9 @@ if ( $shelf and $shelf->can_be_viewed( $borrowernumber ) ) { > $dat->{'biblionumber'} = $biblionumber; > $dat->{ITEM_RESULTS} = $items; > $dat->{HASAUTHORS} = $dat->{'author'} || @$marcauthorsarray; >- $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/t/db_dependent/Koha/Biblio/host_record.t b/t/db_dependent/Koha/Biblio/host_record.t >index 505efe0b95..d348f963c3 100755 >--- a/t/db_dependent/Koha/Biblio/host_record.t >+++ b/t/db_dependent/Koha/Biblio/host_record.t >@@ -36,7 +36,7 @@ $schema->storage->txn_begin; > our $builder = t::lib::TestBuilder->new; > > subtest 'get_marc_host' => sub { >- plan tests => 11; >+ plan tests => 12; > > t::lib::Mocks::mock_preference( 'marcflavour', 'MARC21' ); > t::lib::Mocks::mock_preference( 'MARCOrgCode', 'xyz' ); >@@ -72,6 +72,12 @@ subtest 'get_marc_host' => sub { > $marc->field('773')->update( w => '(xyz) bad data' ); # causes no results > $host = $bib1->get_marc_host; > is( $bib1->get_marc_host, undef, 'No results for bad 773' ); >+ # Test plaintext when no $w >+ $marc->field('773')->update( t => 'title' ); >+ $marc->field('773')->delete_subfield( code => 'w' ); >+ $host = $bib1->get_marc_host; >+ is( $host, "title, relpart", '773$atg returned when no $w' ); >+ $marc->field('773')->delete_subfield( code => 't' ); # restore > # Add second 773 > $marc->append_fields( MARC::Field->new( '773', '', '', g => 'relpart2', w => '234' ) ); > $host = $bib1->get_marc_host; >diff --git a/virtualshelves/sendshelf.pl b/virtualshelves/sendshelf.pl >index d9daa40b19..d3514159a6 100755 >--- a/virtualshelves/sendshelf.pl >+++ b/virtualshelves/sendshelf.pl >@@ -90,7 +90,9 @@ if ($to_address) { > $dat->{'biblionumber'} = $biblionumber; > $dat->{ITEM_RESULTS} = $items; > $dat->{HASAUTHORS} = $dat->{'author'} || @$marcauthorsarray; >- $dat->{HOSTITEMENTRIES} = $biblio->get_host_item_entries; >+ my ( $host, $relatedparts ) = $biblio->get_marc_host; >+ $dat->{HOSTITEMENTRIES} = $host; >+ $dat->{RELATEDPARTS} = $relatedparts; > > $iso2709 .= $record->as_usmarc(); > >-- >2.30.2
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 16522
:
114178
|
114429
|
120425
|
130250
|
133509
|
135416
|
137196
|
137197
|
139168
|
139169
|
139846
|
139847
|
139848
|
141058
|
141059
|
141060
|
141061
|
141062
|
141063
|
142036
|
142037
|
142038
|
142039
|
142040
|
142041
|
142042
|
142843
|
144455
|
144456
|
145047
|
145521
| 145522 |
145523
|
145524
|
145525
|
145526
|
145527
|
145528