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>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit adad3a9e22
)
Signed-off-by: Jacob O'Mara <jacob.omara@ptfs-europe.com>
This commit is contained in:
parent
9af524253c
commit
468d94ded3
20 changed files with 243 additions and 297 deletions
|
@ -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');
|
||||
|
||||
|
|
|
@ -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 );
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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>
|
||||
[% 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>
|
||||
|
|
|
@ -129,13 +129,15 @@ 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 %]
|
||||
[% 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 %]
|
||||
[% END %]
|
||||
|
||||
[% IF ( BIBLIO_RESULT.url ) %]
|
||||
<span>
|
||||
|
|
|
@ -136,13 +136,15 @@ 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 %]
|
||||
[% 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 %]
|
||||
[% END %]
|
||||
|
||||
[% IF ( BIBLIO_RESULT.url ) %]
|
||||
<span>
|
||||
|
|
|
@ -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 name="host-item-entries">
|
||||
<xsl:with-param name="UseControlNumber" select="$UseControlNumber"/>
|
||||
</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:if test="marc:datafield[@tag=502]">
|
||||
<span class="results_summary diss_note">
|
||||
|
|
|
@ -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 name="host-item-entries">
|
||||
<xsl:with-param name="UseControlNumber" select="$UseControlNumber"/>
|
||||
</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>
|
||||
|
||||
<!-- Other Title Statement: Alternate Graphic Representation (MARC 880) -->
|
||||
<xsl:if test="$display880">
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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>
|
||||
[% 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>
|
||||
[% 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>
|
||||
|
|
|
@ -134,13 +134,15 @@ 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>
|
||||
[% 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 ) %]
|
||||
<span>
|
||||
|
|
|
@ -137,13 +137,15 @@ 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 ) %]
|
||||
<span>
|
||||
|
|
|
@ -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 name="host-item-entries">
|
||||
<xsl:with-param name="UseControlNumber" select="$UseControlNumber"/>
|
||||
</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:for-each select="marc:datafield[@tag=511]">
|
||||
<span class="results_summary perf_note">
|
||||
|
|
|
@ -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 name="host-item-entries">
|
||||
<xsl:with-param name="UseControlNumber" select="$UseControlNumber"/>
|
||||
</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:if test="$DisplayOPACiconsXSLT!='0'">
|
||||
<div class="results_summary type">
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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 );
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
Loading…
Reference in a new issue