View | Details | Raw Unified | Return to bug 16522
Collapse All | Expand All

(-)a/Koha/Biblio.pm (+6 lines)
Lines 1237-1242 sub get_marc_host { Link Here
1237
            last;
1237
            last;
1238
        }
1238
        }
1239
    }
1239
    }
1240
    if ( !$hostfld and $record->subfield('773','t') ) {
1241
        # not linked using $w so just return plaintext
1242
        my $unlinkedf = $record->field('773');
1243
        my $host = join( ", ", $unlinkedf->subfield('a'), $unlinkedf->subfield('t'), $unlinkedf->subfield('g') );
1244
        return wantarray ? ( $host, $unlinkedf->subfield('g') ) : $host;
1245
    }
1240
    return if !$hostfld;
1246
    return if !$hostfld;
1241
    my $rcn = $hostfld->subfield('w');
1247
    my $rcn = $hostfld->subfield('w');
1242
1248
(-)a/basket/basket.pl (-1 / +3 lines)
Lines 96-102 foreach my $biblionumber ( @bibs ) { Link Here
96
    $dat->{MARCSERIES}  = $marcseriesarray;
96
    $dat->{MARCSERIES}  = $marcseriesarray;
97
    $dat->{MARCURLS}    = $marcurlsarray;
97
    $dat->{MARCURLS}    = $marcurlsarray;
98
    $dat->{HASAUTHORS}  = $hasauthors;
98
    $dat->{HASAUTHORS}  = $hasauthors;
99
    $dat->{HOSTITEMENTRIES} = $biblio->get_marc_host;
99
    my ( $host, $relatedparts ) = $biblio->get_marc_host;
100
    $dat->{HOSTITEMENTRIES} = $host;
101
    $dat->{RELATEDPARTS} = $relatedparts;
100
102
101
    push( @results, $dat );
103
    push( @results, $dat );
102
}
104
}
(-)a/basket/sendbasket.pl (-1 / +3 lines)
Lines 86-92 if ( $email_add ) { Link Here
86
        $dat->{HASAUTHORS}     = $hasauthors;
86
        $dat->{HASAUTHORS}     = $hasauthors;
87
        $dat->{'biblionumber'} = $biblionumber;
87
        $dat->{'biblionumber'} = $biblionumber;
88
        $dat->{ITEM_RESULTS}   = $biblio->items->search_ordered;
88
        $dat->{ITEM_RESULTS}   = $biblio->items->search_ordered;
89
        $dat->{HOSTITEMENTRIES} = $biblio->get_marc_host;
89
        my ( $host, $relatedparts ) = $biblio->get_marc_host;
90
        $dat->{HOSTITEMENTRIES} = $host;
91
        $dat->{RELATEDPARTS} = $relatedparts;
90
92
91
        $iso2709 .= $record->as_usmarc();
93
        $iso2709 .= $record->as_usmarc();
92
94
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/basket/basket.tt (-9 / +11 lines)
Lines 221-232 Link Here
221
221
222
                                    [% IF BIBLIO_RESULT.HOSTITEMENTRIES %]
222
                                    [% IF BIBLIO_RESULT.HOSTITEMENTRIES %]
223
                                        <tr>
223
                                        <tr>
224
                                            <th scope="row">Host item entries</th>
224
                                            <th scope="row">Host item entry</th>
225
                                            <td>
225
                                            <td>
226
                                                [% FOREACH entry IN BIBLIO_RESULT.HOSTITEMENTRIES %]
226
                                                [% IF BIBLIO_RESULT.HOSTITEMENTRIES.biblionumber %]
227
                                                    <p>
227
                                                    <p>[% INCLUDE 'biblio-title.inc' link = 1 biblio=BIBLIO_RESULT.HOSTITEMENTRIES %] [% BIBLIO_RESULT.RELATEDPARTS | html %]</p>
228
                                                        [% INCLUDE 'biblio-title.inc' link = 1 biblio=entry %]
228
                                                [% ELSE %]
229
                                                    </p>
229
                                                    <p>[% BIBLIO_RESULT.HOSTITEMENTRIES | html %]</p>
230
                                                [% END %]
230
                                                [% END %]
231
                                            </td>
231
                                            </td>
232
                                        </tr>
232
                                        </tr>
Lines 299-309 Link Here
299
                                                <p>[% BIBLIO_RESULT.notes | html %]</p>
299
                                                <p>[% BIBLIO_RESULT.notes | html %]</p>
300
                                            [% END %]
300
                                            [% END %]
301
                                            [% IF BIBLIO_RESULT.HOSTITEMENTRIES %]
301
                                            [% IF BIBLIO_RESULT.HOSTITEMENTRIES %]
302
                                                [% FOREACH entry IN BIBLIO_RESULT.HOSTITEMENTRIES %]
302
                                                <p>Host item entry:
303
                                                    <p>Host item entry:
303
                                                [% IF BIBLIO_RESULT.HOSTITEMENTRIES.biblionumber %]
304
                                                        [% INCLUDE 'biblio-title.inc' link = 1 biblio=entry %]
304
                                                    [% INCLUDE 'biblio-title.inc' link = 1 biblio=BIBLIO_RESULT.HOSTITEMENTRIES %] [% BIBLIO_RESULT.RELATEDPARTS | html %]
305
                                                    </p>
305
                                                [% ELSE %]
306
                                                    [% BIBLIO_RESULT.HOSTITEMENTRIES | html %]
306
                                                [% END %]
307
                                                [% END %]
308
                                                </p>
307
                                            [% END %]
309
                                            [% END %]
308
                                            <!-- COinS / Openurl -->
310
                                            <!-- COinS / Openurl -->
309
                                            <span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.au=[% BIBLIO_RESULT.author | html %]&amp;rft.btitle=[% BIBLIO_RESULT.title |url %]&amp;rft.date=[% BIBLIO_RESULT.publicationyear | html %]&amp;rft.tpages=[% BIBLIO_RESULT.item('size') | html %]&amp;rft.isbn=[% BIBLIO_RESULT.isbn |url %]&amp;rft.aucorp=&amp;rft.place=[% BIBLIO_RESULT.place | html %]&amp;rft.pub=[% BIBLIO_RESULT.publisher |url %]&amp;rft.edition=[% BIBLIO_RESULT.edition | html %]&amp;rft.series=[% BIBLIO_RESULT.series | html %]&amp;rft.genre="></span>
311
                                            <span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.au=[% BIBLIO_RESULT.author | html %]&amp;rft.btitle=[% BIBLIO_RESULT.title |url %]&amp;rft.date=[% BIBLIO_RESULT.publicationyear | html %]&amp;rft.tpages=[% BIBLIO_RESULT.item('size') | html %]&amp;rft.isbn=[% BIBLIO_RESULT.isbn |url %]&amp;rft.aucorp=&amp;rft.place=[% BIBLIO_RESULT.place | html %]&amp;rft.pub=[% BIBLIO_RESULT.publisher |url %]&amp;rft.edition=[% BIBLIO_RESULT.edition | html %]&amp;rft.series=[% BIBLIO_RESULT.series | html %]&amp;rft.genre="></span>
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/basket/sendbasket.tt (-5 / +7 lines)
Lines 129-140 Your cart Link Here
129
            [% END %]
129
            [% END %]
130
130
131
            [% IF BIBLIO_RESULT.HOSTITEMENTRIES %]
131
            [% IF BIBLIO_RESULT.HOSTITEMENTRIES %]
132
                [% FOREACH entry IN BIBLIO_RESULT.HOSTITEMENTRIES %]
132
            <span>Host item entry:
133
                    <span>Host item entry:
133
                [% IF BIBLIO_RESULT.HOSTITEMENTRIES.biblionumber %]
134
                        [% INCLUDE 'biblio-title.inc' link = 1 biblio=entry %]
134
                [% INCLUDE 'biblio-title.inc' link = 1 biblio=BIBLIO_RESULT.HOSTITEMENTRIES %] [% BIBLIO_RESULT.RELATEDPARTS | $raw %]
135
                    </span>
135
                [% ELSE %]
136
                    <br/>
136
                [% BIBLIO_RESULT.HOSTITEMENTRIES %]
137
                [% END %]
137
                [% END %]
138
            </span>
139
            <br/>
138
            [% END %]
140
            [% END %]
139
141
140
            [% IF ( BIBLIO_RESULT.url ) %]
142
            [% IF ( BIBLIO_RESULT.url ) %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/sendshelf.tt (-5 / +7 lines)
Lines 136-147 Your list: [% shelfname | $raw %] Link Here
136
            [% END %]
136
            [% END %]
137
137
138
            [% IF BIBLIO_RESULT.HOSTITEMENTRIES %]
138
            [% IF BIBLIO_RESULT.HOSTITEMENTRIES %]
139
                [% FOREACH entry IN BIBLIO_RESULT.HOSTITEMENTRIES %]
139
            <span>Host item entry:
140
                    <span>Host item entry:
140
                [% IF BIBLIO_RESULT.HOSTITEMENTRIES.biblionumber %]
141
                        [% INCLUDE 'biblio-title.inc' link = 1 biblio=entry %]
141
                [% INCLUDE 'biblio-title.inc' link = 1 biblio=BIBLIO_RESULT.HOSTITEMENTRIES %] [% BIBLIO_RESULT.RELATEDPARTS | $raw %]
142
                    </span>
142
                [% ELSE %]
143
                    <br/>
143
                [% BIBLIO_RESULT.HOSTITEMENTRIES %]
144
                [% END %]
144
                [% END %]
145
            </span>
146
            <br/>
145
            [% END %]
147
            [% END %]
146
148
147
            [% IF ( BIBLIO_RESULT.url ) %]
149
            [% IF ( BIBLIO_RESULT.url ) %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl (-72 / +3 lines)
Lines 1053-1130 Link Here
1053
            </span>
1053
            </span>
1054
         </xsl:if>
1054
         </xsl:if>
1055
1055
1056
        <!-- 773 -->
1056
        <xsl:call-template name="host-item-entries">
1057
        <xsl:if test="marc:datafield[@tag=773]">
1057
            <xsl:with-param name="UseControlNumber" select="$UseControlNumber"/>
1058
            <xsl:for-each select="marc:datafield[@tag=773]">
1058
        </xsl:call-template>
1059
                <xsl:if test="@ind1 !=1">
1060
                    <span class="results_summary in"><span class="label">
1061
                    <xsl:choose>
1062
                        <xsl:when test="@ind2=' '">
1063
                            In:
1064
                        </xsl:when>
1065
                        <xsl:when test="@ind2=8">
1066
                            <xsl:if test="marc:subfield[@code='i']">
1067
                                <xsl:value-of select="marc:subfield[@code='i']"/>
1068
                            </xsl:if>
1069
                        </xsl:when>
1070
                    </xsl:choose>
1071
                    </span>
1072
                    <xsl:variable name="f773">
1073
                        <xsl:call-template name="chopPunctuation">
1074
                            <xsl:with-param name="chopString">
1075
                                <xsl:call-template name="subfieldSelect">
1076
                                    <xsl:with-param name="codes">a_t</xsl:with-param>
1077
                                </xsl:call-template>
1078
                            </xsl:with-param>
1079
                        </xsl:call-template>
1080
                    </xsl:variable>
1081
                    <xsl:choose>
1082
                        <xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
1083
                            <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>
1084
                            <xsl:value-of select="translate($f773, '()', '')"/>
1085
                            </a>
1086
                        </xsl:when>
1087
                        <xsl:when test="marc:subfield[@code='0']">
1088
                            <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>
1089
                            <xsl:value-of select="$f773"/>
1090
                            </a>
1091
                        </xsl:when>
1092
                        <xsl:otherwise>
1093
                            <xsl:variable name="host_query">
1094
                                <xsl:text>ti,phr:(</xsl:text>
1095
                                <xsl:call-template name="quote_search_term">
1096
                                    <xsl:with-param name="term"><xsl:value-of select="marc:subfield[@code='t']"/></xsl:with-param>
1097
                                </xsl:call-template>
1098
                                <xsl:text>)</xsl:text>
1099
                                <xsl:if test="marc:subfield[@code='a']">
1100
                                    <xsl:text> AND au:(</xsl:text>
1101
                                    <xsl:call-template name="quote_search_term">
1102
                                        <xsl:with-param name="term">
1103
                                            <xsl:value-of select="marc:subfield[@code='a']"/>
1104
                                        </xsl:with-param>
1105
                                    </xsl:call-template>
1106
                                    <xsl:text>)</xsl:text>
1107
                                </xsl:if>
1108
                            </xsl:variable>
1109
                            <a>
1110
                            <xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=<xsl:value-of select="str:encode-uri($host_query, true())" />
1111
                            </xsl:attribute>
1112
                                <xsl:value-of select="$f773"/>
1113
                            </a>
1114
                        </xsl:otherwise>
1115
                    </xsl:choose>
1116
                    <xsl:if test="marc:subfield[@code='g']">
1117
                        <xsl:text> </xsl:text><xsl:value-of select="marc:subfield[@code='g']"/>
1118
                    </xsl:if>
1119
                    </span>
1120
1121
                    <xsl:if test="marc:subfield[@code='n']">
1122
                        <span class="results_summary in_note"><xsl:value-of select="marc:subfield[@code='n']"/></span>
1123
                    </xsl:if>
1124
1125
                </xsl:if>
1126
            </xsl:for-each>
1127
        </xsl:if>
1128
1059
1129
        <xsl:if test="marc:datafield[@tag=502]">
1060
        <xsl:if test="marc:datafield[@tag=502]">
1130
            <span class="results_summary diss_note">
1061
            <span class="results_summary diss_note">
(-)a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetResults.xsl (-54 / +3 lines)
Lines 929-988 Link Here
929
    </span>
929
    </span>
930
    </xsl:if>
930
    </xsl:if>
931
931
932
    <!-- 773 -->
932
    <xsl:call-template name="host-item-entries">
933
    <xsl:if test="marc:datafield[@tag=773]">
933
        <xsl:with-param name="UseControlNumber" select="$UseControlNumber"/>
934
        <xsl:for-each select="marc:datafield[@tag=773]">
934
    </xsl:call-template>
935
            <xsl:if test="@ind1 !=1">
936
                <span class="results_summary in"><span class="label">
937
                <xsl:choose>
938
                    <xsl:when test="@ind2=' '">
939
                        Source:
940
                    </xsl:when>
941
                    <xsl:when test="@ind2=8">
942
                        <xsl:if test="marc:subfield[@code='i']">
943
                            <xsl:value-of select="marc:subfield[@code='i']"/>
944
                        </xsl:if>
945
                    </xsl:when>
946
                </xsl:choose>
947
                </span>
948
                <xsl:variable name="f773">
949
                    <xsl:call-template name="chopPunctuation">
950
                        <xsl:with-param name="chopString">
951
                            <xsl:call-template name="subfieldSelect">
952
                                <xsl:with-param name="codes">a_t</xsl:with-param>
953
                            </xsl:call-template>
954
                        </xsl:with-param>
955
                    </xsl:call-template>
956
                </xsl:variable>
957
                <xsl:choose>
958
                    <xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
959
                        <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>
960
                        <xsl:value-of select="translate($f773, '()', '')"/>
961
                        </a>
962
                    </xsl:when>
963
                    <xsl:when test="marc:subfield[@code='0']">
964
                        <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>
965
                        <xsl:value-of select="$f773"/>
966
                        </a>
967
                    </xsl:when>
968
                    <xsl:otherwise>
969
                        <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>
970
                        <xsl:value-of select="$f773"/>
971
                        </a>
972
                    </xsl:otherwise>
973
                </xsl:choose>
974
                <xsl:if test="marc:subfield[@code='g']">
975
                    <xsl:text> </xsl:text><xsl:value-of select="marc:subfield[@code='g']"/>
976
                </xsl:if>
977
                </span>
978
979
                <xsl:if test="marc:subfield[@code='n']">
980
                    <span class="results_summary in_note"><xsl:value-of select="marc:subfield[@code='n']"/></span>
981
                </xsl:if>
982
983
            </xsl:if>
984
        </xsl:for-each>
985
    </xsl:if>
986
935
987
    <!-- Other Title  Statement: Alternate Graphic Representation (MARC 880) -->
936
    <!-- Other Title  Statement: Alternate Graphic Representation (MARC 880) -->
988
    <xsl:if test="$display880">
937
    <xsl:if test="$display880">
(-)a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slimUtils.xsl (+74 lines)
Lines 615-620 Link Here
615
        </xsl:choose>
615
        </xsl:choose>
616
    </xsl:template>
616
    </xsl:template>
617
617
618
    <xsl:template name="host-item-entries">
619
        <xsl:param name="UseControlNumber"/>
620
        <!-- 773 -->
621
        <xsl:if test="marc:datafield[@tag=773]">
622
            <xsl:for-each select="marc:datafield[@tag=773]">
623
                <xsl:if test="@ind1 !=1">
624
                    <span class="results_summary in"><span class="label">
625
                    <xsl:choose>
626
                        <xsl:when test="@ind2=' '">
627
                            Host item entry:
628
                        </xsl:when>
629
                        <xsl:when test="@ind2=8">
630
                            <xsl:if test="marc:subfield[@code='i']">
631
                                <xsl:value-of select="marc:subfield[@code='i']"/>
632
                            </xsl:if>
633
                        </xsl:when>
634
                    </xsl:choose>
635
                    </span>
636
                    <xsl:variable name="f773">
637
                        <xsl:call-template name="chopPunctuation">
638
                            <xsl:with-param name="chopString">
639
                                <xsl:call-template name="subfieldSelect">
640
                                    <xsl:with-param name="codes">a_t</xsl:with-param>
641
                                </xsl:call-template>
642
                            </xsl:with-param>
643
                        </xsl:call-template>
644
                    </xsl:variable>
645
                    <xsl:choose>
646
                        <xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
647
                            <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>
648
                            <xsl:value-of select="translate($f773, '()', '')"/>
649
                            </a>
650
                        </xsl:when>
651
                        <xsl:when test="marc:subfield[@code='0']">
652
                            <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>
653
                            <xsl:value-of select="$f773"/>
654
                            </a>
655
                        </xsl:when>
656
                        <xsl:otherwise>
657
                            <xsl:variable name="host_query">
658
                                <xsl:text>ti,phr:(</xsl:text>
659
                                <xsl:call-template name="quote_search_term">
660
                                    <xsl:with-param name="term"><xsl:value-of select="marc:subfield[@code='t']"/></xsl:with-param>
661
                                </xsl:call-template>
662
                                <xsl:text>)</xsl:text>
663
                                <xsl:if test="marc:subfield[@code='a']">
664
                                    <xsl:text> AND au:(</xsl:text>
665
                                    <xsl:call-template name="quote_search_term">
666
                                        <xsl:with-param name="term">
667
                                            <xsl:value-of select="marc:subfield[@code='a']"/>
668
                                        </xsl:with-param>
669
                                    </xsl:call-template>
670
                                    <xsl:text>)</xsl:text>
671
                                </xsl:if>
672
                            </xsl:variable>
673
                            <a>
674
                            <xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=<xsl:value-of select="str:encode-uri($host_query, true())" />
675
                            </xsl:attribute>
676
                                <xsl:value-of select="$f773"/>
677
                            </a>
678
                        </xsl:otherwise>
679
                    </xsl:choose>
680
                    <xsl:if test="marc:subfield[@code='g']">
681
                        <xsl:text> </xsl:text><xsl:value-of select="marc:subfield[@code='g']"/>
682
                    </xsl:if>
683
                    </span>
684
                    <xsl:if test="marc:subfield[@code='n']">
685
                        <span class="results_summary in_note"><xsl:value-of select="marc:subfield[@code='n']"/></span>
686
                    </xsl:if>
687
                </xsl:if>
688
            </xsl:for-each>
689
        </xsl:if>
690
    </xsl:template>
691
618
</xsl:stylesheet>
692
</xsl:stylesheet>
619
693
620
<!-- Stylus Studio meta-information - (c)1998-2002 eXcelon Corp.
694
<!-- Stylus Studio meta-information - (c)1998-2002 eXcelon Corp.
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-basket.tt (-11 / +15 lines)
Lines 238-250 Link Here
238
238
239
                                        [% IF BIBLIO_RESULT.HOSTITEMENTRIES %]
239
                                        [% IF BIBLIO_RESULT.HOSTITEMENTRIES %]
240
                                            <tr>
240
                                            <tr>
241
                                                <th scope="row">Host item entries</th>
241
                                                <th scope="row">Host item entry</th>
242
                                                <td>
242
                                                <td>
243
                                                    [% FOREACH entry IN BIBLIO_RESULT.HOSTITEMENTRIES %]
243
                                                    <p>
244
                                                        <p>
244
                                                        [% IF BIBLIO_RESULT.HOSTITEMENTRIES.biblionumber %]
245
                                                            <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% entry.biblionumber | uri %]">[% INCLUDE 'biblio-title.inc' biblio=entry %]</a>
245
                                                            <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 %]
246
                                                        </p>
246
                                                        [% ELSE %]
247
                                                    [% END %]
247
                                                            [% BIBLIO_RESULT.HOSTITEMENTRIES %]
248
                                                        [% END %]
249
                                                    </p>
248
                                                </td>
250
                                                </td>
249
                                            </tr>
251
                                            </tr>
250
                                        [% END %]
252
                                        [% END %]
Lines 309-319 Link Here
309
                                                [% END %]
311
                                                [% END %]
310
312
311
                                                [% IF BIBLIO_RESULT.HOSTITEMENTRIES %]
313
                                                [% IF BIBLIO_RESULT.HOSTITEMENTRIES %]
312
                                                    [% FOREACH entry IN BIBLIO_RESULT.HOSTITEMENTRIES %]
314
                                                    <p>Host item entry:
313
                                                        <p>Host item entry:
315
                                                        [% IF BIBLIO_RESULT.HOSTITEMENTRIES.biblionumber %]
314
                                                            <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% entry.biblionumber | uri %]">[% INCLUDE 'biblio-title.inc' biblio=entry %]</a>
316
                                                        <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 %]
315
                                                        </p>
317
                                                        [% ELSE %]
316
                                                    [% END %]
318
                                                        [% BIBLIO_RESULT.HOSTITEMENTRIES %]
319
                                                        [% END %]
320
                                                    </p>
317
                                                [% END %]
321
                                                [% END %]
318
                                            </td>
322
                                            </td>
319
                                            <td>[% BIBLIO_RESULT.author | html %]</td>
323
                                            <td>[% BIBLIO_RESULT.author | html %]</td>
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-sendbasket.tt (-5 / +7 lines)
Lines 134-145 Your cart Link Here
134
            [% END %]
134
            [% END %]
135
135
136
            [% IF BIBLIO_RESULT.HOSTITEMENTRIES %]
136
            [% IF BIBLIO_RESULT.HOSTITEMENTRIES %]
137
                [% FOREACH entry IN BIBLIO_RESULT.HOSTITEMENTRIES %]
137
            <span>Host item entry:
138
                    <span>Host item entry:
138
                [% IF BIBLIO_RESULT.HOSTITEMENTRIES.biblionumber %]
139
                        <a href="[% OPACBaseURL | $raw %]/cgi-bin/koha/opac-detail.pl?biblionumber=[% entry.biblionumber | uri %]">[% INCLUDE 'biblio-title.inc' biblio=entry %]</a>
139
                <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 %]
140
                    </span>
140
                [% ELSE %]
141
                    <br/>
141
                [% BIBLIO_RESULT.HOSTITEMENTRIES %]
142
                [% END %]
142
                [% END %]
143
            </span>
144
            <br/>
143
            [% END %]
145
            [% END %]
144
146
145
            [% IF ( BIBLIO_RESULT.url ) %]
147
            [% IF ( BIBLIO_RESULT.url ) %]
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-sendshelf.tt (-3 / +5 lines)
Lines 137-148 Your list : [% shelfname | $raw %] Link Here
137
            [% END %]
137
            [% END %]
138
138
139
            [% IF BIBLIO_RESULT.HOSTITEMENTRIES %]
139
            [% IF BIBLIO_RESULT.HOSTITEMENTRIES %]
140
                [% FOREACH entry IN BIBLIO_RESULT.HOSTITEMENTRIES %]
141
                    <span>Host item entry:
140
                    <span>Host item entry:
142
                        <a href="[% OPACBaseURL | $raw %]/cgi-bin/koha/opac-detail.pl?biblionumber=[% entry.biblionumber | uri %]">[% INCLUDE 'biblio-title.inc' biblio=entry %]</a>
141
                        [% IF BIBLIO_RESULT.HOSTITEMENTRIES.biblionumber %]
142
                        <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 %]
143
                        [% ELSE %]
144
                        [% BIBLIO_RESULT.HOSTITEMENTRIES %]
145
                        [% END %]
143
                    </span>
146
                    </span>
144
                    <br/>
147
                    <br/>
145
                [% END %]
146
            [% END %]
148
            [% END %]
147
149
148
            [% IF ( BIBLIO_RESULT.url ) %]
150
            [% IF ( BIBLIO_RESULT.url ) %]
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACDetail.xsl (-72 / +3 lines)
Lines 1255-1332 Link Here
1255
            </span>
1255
            </span>
1256
        </xsl:if>
1256
        </xsl:if>
1257
1257
1258
        <!-- 773 -->
1258
        <xsl:call-template name="host-item-entries">
1259
        <xsl:if test="marc:datafield[@tag=773]">
1259
            <xsl:with-param name="UseControlNumber" select="$UseControlNumber"/>
1260
            <xsl:for-each select="marc:datafield[@tag=773]">
1260
        </xsl:call-template>
1261
                <xsl:if test="@ind1 !=1">
1262
                    <span class="results_summary in"><span class="label">
1263
                    <xsl:choose>
1264
                        <xsl:when test="@ind2=' '">
1265
                            In:
1266
                        </xsl:when>
1267
                        <xsl:when test="@ind2=8">
1268
                            <xsl:if test="marc:subfield[@code='i']">
1269
                                <xsl:value-of select="marc:subfield[@code='i']"/>
1270
                            </xsl:if>
1271
                        </xsl:when>
1272
                    </xsl:choose>
1273
                    </span>
1274
                    <xsl:variable name="f773">
1275
                        <xsl:call-template name="chopPunctuation">
1276
                            <xsl:with-param name="chopString">
1277
                                <xsl:call-template name="subfieldSelect">
1278
                                    <xsl:with-param name="codes">a_t</xsl:with-param>
1279
                                </xsl:call-template>
1280
                            </xsl:with-param>
1281
                        </xsl:call-template>
1282
                    </xsl:variable>
1283
                    <xsl:choose>
1284
                        <xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
1285
                            <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>
1286
                            <xsl:value-of select="translate($f773, '()', '')"/>
1287
                            </a>
1288
                        </xsl:when>
1289
                        <xsl:when test="marc:subfield[@code='0']">
1290
                            <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>
1291
                            <xsl:value-of select="$f773"/>
1292
                            </a>
1293
                        </xsl:when>
1294
                        <xsl:otherwise>
1295
                            <xsl:variable name="host_query">
1296
                                <xsl:text>ti,phr:(</xsl:text>
1297
                                <xsl:call-template name="quote_search_term">
1298
                                    <xsl:with-param name="term"><xsl:value-of select="marc:subfield[@code='t']"/></xsl:with-param>
1299
                                </xsl:call-template>
1300
                                <xsl:text>)</xsl:text>
1301
                                <xsl:if test="marc:subfield[@code='a']">
1302
                                    <xsl:text> AND au:(</xsl:text>
1303
                                    <xsl:call-template name="quote_search_term">
1304
                                        <xsl:with-param name="term">
1305
                                            <xsl:value-of select="marc:subfield[@code='a']"/>
1306
                                        </xsl:with-param>
1307
                                    </xsl:call-template>
1308
                                    <xsl:text>)</xsl:text>
1309
                                </xsl:if>
1310
                            </xsl:variable>
1311
                            <a>
1312
                            <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=<xsl:value-of select="str:encode-uri($host_query, true())" />
1313
                            </xsl:attribute>
1314
                                <xsl:value-of select="$f773"/>
1315
                            </a>
1316
                        </xsl:otherwise>
1317
                    </xsl:choose>
1318
                    <xsl:if test="marc:subfield[@code='g']">
1319
                        <xsl:text> </xsl:text><xsl:value-of select="marc:subfield[@code='g']"/>
1320
                    </xsl:if>
1321
                    </span>
1322
1323
                    <xsl:if test="marc:subfield[@code='n']">
1324
                        <span class="results_summary in_note"><xsl:value-of select="marc:subfield[@code='n']"/></span>
1325
                    </xsl:if>
1326
1327
                </xsl:if>
1328
            </xsl:for-each>
1329
        </xsl:if>
1330
1261
1331
        <xsl:for-each select="marc:datafield[@tag=511]">
1262
        <xsl:for-each select="marc:datafield[@tag=511]">
1332
            <span class="results_summary perf_note">
1263
            <span class="results_summary perf_note">
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACResults.xsl (-54 / +3 lines)
Lines 660-719 Link Here
660
	</div>
660
	</div>
661
    </xsl:if>
661
    </xsl:if>
662
662
663
    <!-- 773 -->
663
    <xsl:call-template name="host-item-entries">
664
    <xsl:if test="marc:datafield[@tag=773]">
664
        <xsl:with-param name="UseControlNumber" select="$UseControlNumber"/>
665
        <xsl:for-each select="marc:datafield[@tag=773]">
665
    </xsl:call-template>
666
            <xsl:if test="@ind1 !=1">
667
                <div class="results_summary in"><span class="label">
668
                <xsl:choose>
669
                    <xsl:when test="@ind2=' '">
670
                        Source:
671
                    </xsl:when>
672
                    <xsl:when test="@ind2=8">
673
                        <xsl:if test="marc:subfield[@code='i']">
674
                            <xsl:value-of select="marc:subfield[@code='i']"/>
675
                        </xsl:if>
676
                    </xsl:when>
677
                </xsl:choose>
678
                <xsl:variable name="f773">
679
                    <xsl:call-template name="chopPunctuation">
680
                        <xsl:with-param name="chopString">
681
                            <xsl:call-template name="subfieldSelect">
682
                                <xsl:with-param name="codes">a_t</xsl:with-param>
683
                            </xsl:call-template>
684
                        </xsl:with-param>
685
                    </xsl:call-template>
686
                </xsl:variable>
687
                <xsl:choose>
688
                    <xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
689
                        <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>
690
                        <xsl:value-of select="translate($f773, '()', '')"/>
691
                        </a>
692
                    </xsl:when>
693
                    <xsl:when test="marc:subfield[@code='0']">
694
                        <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>
695
                        <xsl:value-of select="$f773"/>
696
                        </a>
697
                    </xsl:when>
698
                    <xsl:otherwise>
699
                        <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>
700
                        <xsl:value-of select="$f773"/>
701
                        </a>
702
                    </xsl:otherwise>
703
                </xsl:choose>
704
                <xsl:if test="marc:subfield[@code='g']">
705
                    <xsl:text> </xsl:text><xsl:value-of select="marc:subfield[@code='g']"/>
706
                </xsl:if>
707
                </span>
708
                </div>
709
710
                <xsl:if test="marc:subfield[@code='n']">
711
                    <div class="results_summary in_note"><xsl:value-of select="marc:subfield[@code='n']"/></div>
712
                </xsl:if>
713
714
            </xsl:if>
715
        </xsl:for-each>
716
    </xsl:if>
717
666
718
<xsl:if test="$DisplayOPACiconsXSLT!='0'">
667
<xsl:if test="$DisplayOPACiconsXSLT!='0'">
719
    <div class="results_summary type">
668
    <div class="results_summary type">
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slimUtils.xsl (+74 lines)
Lines 578-583 Link Here
578
        </xsl:choose>
578
        </xsl:choose>
579
    </xsl:template>
579
    </xsl:template>
580
580
581
    <xsl:template name="host-item-entries">
582
        <xsl:param name="UseControlNumber"/>
583
        <!-- 773 -->
584
        <xsl:if test="marc:datafield[@tag=773]">
585
            <xsl:for-each select="marc:datafield[@tag=773]">
586
                <xsl:if test="@ind1 !=1">
587
                    <span class="results_summary in"><span class="label">
588
                    <xsl:choose>
589
                        <xsl:when test="@ind2=' '">
590
                            Host item entry:
591
                        </xsl:when>
592
                        <xsl:when test="@ind2=8">
593
                            <xsl:if test="marc:subfield[@code='i']">
594
                                <xsl:value-of select="marc:subfield[@code='i']"/>
595
                            </xsl:if>
596
                        </xsl:when>
597
                    </xsl:choose>
598
                    </span>
599
                    <xsl:variable name="f773">
600
                        <xsl:call-template name="chopPunctuation">
601
                            <xsl:with-param name="chopString">
602
                                <xsl:call-template name="subfieldSelect">
603
                                    <xsl:with-param name="codes">a_t</xsl:with-param>
604
                                </xsl:call-template>
605
                            </xsl:with-param>
606
                        </xsl:call-template>
607
                    </xsl:variable>
608
                    <xsl:choose>
609
                        <xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
610
                            <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>
611
                            <xsl:value-of select="translate($f773, '()', '')"/>
612
                            </a>
613
                        </xsl:when>
614
                        <xsl:when test="marc:subfield[@code='0']">
615
                            <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>
616
                            <xsl:value-of select="$f773"/>
617
                            </a>
618
                        </xsl:when>
619
                        <xsl:otherwise>
620
                            <xsl:variable name="host_query">
621
                                <xsl:text>ti,phr:(</xsl:text>
622
                                <xsl:call-template name="quote_search_term">
623
                                    <xsl:with-param name="term"><xsl:value-of select="marc:subfield[@code='t']"/></xsl:with-param>
624
                                </xsl:call-template>
625
                                <xsl:text>)</xsl:text>
626
                                <xsl:if test="marc:subfield[@code='a']">
627
                                    <xsl:text> AND au:(</xsl:text>
628
                                    <xsl:call-template name="quote_search_term">
629
                                        <xsl:with-param name="term">
630
                                            <xsl:value-of select="marc:subfield[@code='a']"/>
631
                                        </xsl:with-param>
632
                                    </xsl:call-template>
633
                                    <xsl:text>)</xsl:text>
634
                                </xsl:if>
635
                            </xsl:variable>
636
                            <a>
637
                            <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=<xsl:value-of select="str:encode-uri($host_query, true())" />
638
                            </xsl:attribute>
639
                                <xsl:value-of select="$f773"/>
640
                            </a>
641
                        </xsl:otherwise>
642
                    </xsl:choose>
643
                    <xsl:if test="marc:subfield[@code='g']">
644
                        <xsl:text> </xsl:text><xsl:value-of select="marc:subfield[@code='g']"/>
645
                    </xsl:if>
646
                    </span>
647
                    <xsl:if test="marc:subfield[@code='n']">
648
                        <span class="results_summary in_note"><xsl:value-of select="marc:subfield[@code='n']"/></span>
649
                    </xsl:if>
650
                </xsl:if>
651
            </xsl:for-each>
652
        </xsl:if>
653
    </xsl:template>
654
581
</xsl:stylesheet>
655
</xsl:stylesheet>
582
656
583
<!-- Stylus Studio meta-information - (c)1998-2002 eXcelon Corp.
657
<!-- Stylus Studio meta-information - (c)1998-2002 eXcelon Corp.
(-)a/opac/opac-basket.pl (-1 / +3 lines)
Lines 117-123 foreach my $biblionumber ( @bibs ) { Link Here
117
    $dat->{MARCSERIES}  = $marcseriesarray;
117
    $dat->{MARCSERIES}  = $marcseriesarray;
118
    $dat->{MARCURLS}    = $marcurlsarray;
118
    $dat->{MARCURLS}    = $marcurlsarray;
119
    $dat->{HASAUTHORS}  = $hasauthors;
119
    $dat->{HASAUTHORS}  = $hasauthors;
120
    $dat->{HOSTITEMENTRIES} = $biblio->get_marc_host;
120
    my ( $host, $relatedparts ) = $biblio->get_marc_host;
121
    $dat->{HOSTITEMENTRIES} = $host;
122
    $dat->{RELATEDPARTS} = $relatedparts;
121
123
122
    push( @results, $dat );
124
    push( @results, $dat );
123
}
125
}
(-)a/opac/opac-sendbasket.pl (-1 / +3 lines)
Lines 97-103 if ( $email_add ) { Link Here
97
        $dat->{HASAUTHORS}     = $hasauthors;
97
        $dat->{HASAUTHORS}     = $hasauthors;
98
        $dat->{'biblionumber'} = $biblionumber;
98
        $dat->{'biblionumber'} = $biblionumber;
99
        $dat->{ITEM_RESULTS}   = $items;
99
        $dat->{ITEM_RESULTS}   = $items;
100
        $dat->{HOSTITEMENTRIES} = $biblio->get_marc_host;
100
        my ( $host, $relatedparts ) = $biblio->get_marc_host;
101
        $dat->{HOSTITEMENTRIES} = $host;
102
        $dat->{RELATEDPARTS} = $relatedparts;
101
103
102
        $iso2709 .= $record->as_usmarc();
104
        $iso2709 .= $record->as_usmarc();
103
105
(-)a/opac/opac-sendshelf.pl (-1 / +3 lines)
Lines 102-108 if ( $shelf and $shelf->can_be_viewed( $borrowernumber ) ) { Link Here
102
        $dat->{'biblionumber'} = $biblionumber;
102
        $dat->{'biblionumber'} = $biblionumber;
103
        $dat->{ITEM_RESULTS}   = $items;
103
        $dat->{ITEM_RESULTS}   = $items;
104
        $dat->{HASAUTHORS}     = $dat->{'author'} || @$marcauthorsarray;
104
        $dat->{HASAUTHORS}     = $dat->{'author'} || @$marcauthorsarray;
105
        $dat->{HOSTITEMENTRIES} = $biblio->get_marc_host;
105
        my ( $host, $relatedparts ) = $biblio->get_marc_host;
106
        $dat->{HOSTITEMENTRIES} = $host;
107
        $dat->{RELATEDPARTS} = $relatedparts;
106
108
107
        $iso2709 .= $record->as_usmarc();
109
        $iso2709 .= $record->as_usmarc();
108
110
(-)a/t/db_dependent/Koha/Biblio/host_record.t (-1 / +7 lines)
Lines 36-42 $schema->storage->txn_begin; Link Here
36
our $builder = t::lib::TestBuilder->new;
36
our $builder = t::lib::TestBuilder->new;
37
37
38
subtest 'get_marc_host' => sub {
38
subtest 'get_marc_host' => sub {
39
    plan tests => 11;
39
    plan tests => 12;
40
40
41
    t::lib::Mocks::mock_preference( 'marcflavour', 'MARC21' );
41
    t::lib::Mocks::mock_preference( 'marcflavour', 'MARC21' );
42
    t::lib::Mocks::mock_preference( 'MARCOrgCode', 'xyz' );
42
    t::lib::Mocks::mock_preference( 'MARCOrgCode', 'xyz' );
Lines 72-77 subtest 'get_marc_host' => sub { Link Here
72
    $marc->field('773')->update( w => '(xyz) bad data' ); # causes no results
72
    $marc->field('773')->update( w => '(xyz) bad data' ); # causes no results
73
    $host = $bib1->get_marc_host;
73
    $host = $bib1->get_marc_host;
74
    is( $bib1->get_marc_host, undef, 'No results for bad 773' );
74
    is( $bib1->get_marc_host, undef, 'No results for bad 773' );
75
    # Test plaintext when no $w
76
    $marc->field('773')->update( t => 'title' );
77
    $marc->field('773')->delete_subfield( code => 'w' );
78
    $host = $bib1->get_marc_host;
79
    is( $host, "title, relpart", '773$atg returned when no $w' );
80
    $marc->field('773')->delete_subfield( code => 't' ); # restore
75
    # Add second 773
81
    # Add second 773
76
    $marc->append_fields( MARC::Field->new( '773', '', '', g => 'relpart2', w => '234' ) );
82
    $marc->append_fields( MARC::Field->new( '773', '', '', g => 'relpart2', w => '234' ) );
77
    $host = $bib1->get_marc_host;
83
    $host = $bib1->get_marc_host;
(-)a/virtualshelves/sendshelf.pl (-2 / +3 lines)
Lines 90-96 if ($to_address) { Link Here
90
        $dat->{'biblionumber'} = $biblionumber;
90
        $dat->{'biblionumber'} = $biblionumber;
91
        $dat->{ITEM_RESULTS}   = $items;
91
        $dat->{ITEM_RESULTS}   = $items;
92
        $dat->{HASAUTHORS}     = $dat->{'author'} || @$marcauthorsarray;
92
        $dat->{HASAUTHORS}     = $dat->{'author'} || @$marcauthorsarray;
93
        $dat->{HOSTITEMENTRIES} = $biblio->get_host_item_entries;
93
        my ( $host, $relatedparts ) = $biblio->get_marc_host;
94
        $dat->{HOSTITEMENTRIES} = $host;
95
        $dat->{RELATEDPARTS} = $relatedparts;
94
96
95
        $iso2709 .= $record->as_usmarc();
97
        $iso2709 .= $record->as_usmarc();
96
98
97
- 

Return to bug 16522