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');
$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 );
}
$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();
[% 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>
<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>
[% 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 ) %]
[% 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 ) %]
</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">
</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">
</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.
[% 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 %]
[% 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>
[% 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 ) %]
[% 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>
</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">
</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">
</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.
$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 );
}
$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();
$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();
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' );
$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;
$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();