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

(-)a/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACDetail.xsl (+90 lines)
Lines 12-17 Link Here
12
    </xsl:template>
12
    </xsl:template>
13
13
14
    <xsl:template match="marc:record">
14
    <xsl:template match="marc:record">
15
16
        <!-- Option: Display Alternate Graphic Representation (MARC 880)  -->
17
        <xsl:variable name="display880" select="boolean(marc:datafield[@tag=880])"/>
18
15
        <xsl:variable name="leader" select="marc:leader"/>
19
        <xsl:variable name="leader" select="marc:leader"/>
16
        <xsl:variable name="leader6" select="substring($leader,7,1)"/>
20
        <xsl:variable name="leader6" select="substring($leader,7,1)"/>
17
        <xsl:variable name="leader7" select="substring($leader,8,1)"/>
21
        <xsl:variable name="leader7" select="substring($leader,8,1)"/>
Lines 50-55 Link Here
50
        </xsl:variable>
54
        </xsl:variable>
51
55
52
        <!-- Title Statement -->
56
        <!-- Title Statement -->
57
        <!-- Alternate Graphic Representation (MARC 880) -->
58
        <xsl:if test="$display880">
59
            <h1 class="title">
60
                <xsl:call-template name="m880Select">
61
                    <xsl:with-param name="basetags">245</xsl:with-param>
62
                    <xsl:with-param name="codes">abhfgknps</xsl:with-param>
63
                </xsl:call-template>
64
            </h1>
65
        </xsl:if>
66
53
        <xsl:if test="marc:datafield[@tag=245]">
67
        <xsl:if test="marc:datafield[@tag=245]">
54
        <h1>
68
        <h1>
55
            <xsl:for-each select="marc:datafield[@tag=245]">
69
            <xsl:for-each select="marc:datafield[@tag=245]">
Lines 75-80 Link Here
75
        </h1>
89
        </h1>
76
        </xsl:if>
90
        </xsl:if>
77
91
92
        <!-- Author Statement: Alternate Graphic Representation (MARC 880) -->
93
        <xsl:if test="$display880">
94
            <h5 class="author">
95
                <xsl:call-template name="m880Select">
96
                    <xsl:with-param name="basetags">100,110,111,700,710,711</xsl:with-param>
97
                    <xsl:with-param name="codes">abc</xsl:with-param>
98
                    <xsl:with-param name="index">au</xsl:with-param>
99
                    <!-- do not use label 'by ' here, it would be repeated for every occurence of 100,110,111,700,710,711 -->
100
                </xsl:call-template>
101
            </h5>
102
        </xsl:if>
103
78
        <xsl:choose>
104
        <xsl:choose>
79
        <xsl:when test="marc:datafield[@tag=100] or marc:datafield[@tag=110] or marc:datafield[@tag=111] or marc:datafield[@tag=700] or marc:datafield[@tag=710] or marc:datafield[@tag=711]">
105
        <xsl:when test="marc:datafield[@tag=100] or marc:datafield[@tag=110] or marc:datafield[@tag=111] or marc:datafield[@tag=700] or marc:datafield[@tag=710] or marc:datafield[@tag=711]">
80
        <h5 class="author">by
106
        <h5 class="author">by
Lines 138-143 Link Here
138
        <xsl:value-of select="$materialTypeLabel"/>
164
        <xsl:value-of select="$materialTypeLabel"/>
139
        </span>
165
        </span>
140
        </xsl:if>
166
        </xsl:if>
167
168
        <!--Series: Alternate Graphic Representation (MARC 880) -->
169
        <xsl:if test="$display880">
170
            <xsl:call-template name="m880Select">
171
                <xsl:with-param name="basetags">440,490</xsl:with-param>
172
                <xsl:with-param name="codes">av</xsl:with-param>
173
                <xsl:with-param name="class">results_summary</xsl:with-param>
174
                <xsl:with-param name="label">Series: </xsl:with-param>
175
                <xsl:with-param name="index">se</xsl:with-param>
176
            </xsl:call-template>
177
        </xsl:if>
178
        
141
        <xsl:if test="marc:datafield[@tag=440 or @tag=490]">
179
        <xsl:if test="marc:datafield[@tag=440 or @tag=490]">
142
        <span class="results_summary"><span class="label">Series: </span>
180
        <span class="results_summary"><span class="label">Series: </span>
143
        <xsl:for-each select="marc:datafield[@tag=440]">
181
        <xsl:for-each select="marc:datafield[@tag=440]">
Lines 169-174 Link Here
169
        </xsl:for-each>
207
        </xsl:for-each>
170
        </span>
208
        </span>
171
        </xsl:if>
209
        </xsl:if>
210
211
        <!-- Publisher Statement: Alternate Graphic Representation (MARC 880) -->
212
        <xsl:if test="$display880">
213
            <xsl:call-template name="m880Select">
214
                <xsl:with-param name="basetags">260</xsl:with-param>
215
                <xsl:with-param name="codes">abcg</xsl:with-param>
216
                <xsl:with-param name="class">results_summary</xsl:with-param>
217
                <xsl:with-param name="label">Publisher: </xsl:with-param>
218
            </xsl:call-template>
219
        </xsl:if>
220
        
172
        <xsl:if test="marc:datafield[@tag=260]">
221
        <xsl:if test="marc:datafield[@tag=260]">
173
        <span class="results_summary"><span class="label">Publisher: </span>
222
        <span class="results_summary"><span class="label">Publisher: </span>
174
            <xsl:for-each select="marc:datafield[@tag=260]">
223
            <xsl:for-each select="marc:datafield[@tag=260]">
Lines 183-188 Link Here
183
            </xsl:for-each>
232
            </xsl:for-each>
184
        </span> 
233
        </span> 
185
        </xsl:if>
234
        </xsl:if>
235
236
        <!-- Edition Statement: Alternate Graphic Representation (MARC 880) -->
237
        <xsl:if test="$display880">
238
            <xsl:call-template name="m880Select">
239
                <xsl:with-param name="basetags">250</xsl:with-param>
240
                <xsl:with-param name="codes">ab</xsl:with-param>
241
                <xsl:with-param name="class">results_summary</xsl:with-param>
242
                <xsl:with-param name="label">Edition: </xsl:with-param>
243
            </xsl:call-template>
244
        </xsl:if>
245
        
186
        <xsl:if test="marc:datafield[@tag=250]">
246
        <xsl:if test="marc:datafield[@tag=250]">
187
        <span class="results_summary"><span class="label">Edition: </span>
247
        <span class="results_summary"><span class="label">Edition: </span>
188
            <xsl:for-each select="marc:datafield[@tag=250]">
248
            <xsl:for-each select="marc:datafield[@tag=250]">
Lines 198-203 Link Here
198
        </span>
258
        </span>
199
        </xsl:if>
259
        </xsl:if>
200
260
261
        <!-- Description: Alternate Graphic Representation (MARC 880) -->
262
        <xsl:if test="$display880">
263
            <xsl:call-template name="m880Select">
264
                <xsl:with-param name="basetags">300</xsl:with-param>
265
                <xsl:with-param name="codes">abceg</xsl:with-param>
266
                <xsl:with-param name="class">results_summary</xsl:with-param>
267
                <xsl:with-param name="label">Description: </xsl:with-param>
268
            </xsl:call-template>
269
        </xsl:if>
270
        
201
        <xsl:if test="marc:datafield[@tag=300]">
271
        <xsl:if test="marc:datafield[@tag=300]">
202
        <span class="results_summary"><span class="label">Description: </span>
272
        <span class="results_summary"><span class="label">Description: </span>
203
            <xsl:for-each select="marc:datafield[@tag=300]">
273
            <xsl:for-each select="marc:datafield[@tag=300]">
Lines 234-239 Link Here
234
        </span>
304
        </span>
235
        </xsl:if>
305
        </xsl:if>
236
306
307
        <!-- Other Title  Statement: Alternate Graphic Representation (MARC 880) -->
308
        <xsl:if test="$display880">
309
            <xsl:call-template name="m880Select">
310
                <xsl:with-param name="basetags">246</xsl:with-param>
311
                <xsl:with-param name="codes">abhfgnp</xsl:with-param>
312
                <xsl:with-param name="class">results_summary</xsl:with-param>
313
                <xsl:with-param name="label">Other Title: </xsl:with-param>
314
            </xsl:call-template>
315
        </xsl:if>
316
237
        <xsl:if test="marc:datafield[@tag=246]">
317
        <xsl:if test="marc:datafield[@tag=246]">
238
        <span class="results_summary"><span class="label">Other Title: </span>
318
        <span class="results_summary"><span class="label">Other Title: </span>
239
            <xsl:for-each select="marc:datafield[@tag=246]">
319
            <xsl:for-each select="marc:datafield[@tag=246]">
Lines 249-254 Link Here
249
        </span>
329
        </span>
250
       </xsl:if>
330
       </xsl:if>
251
331
332
        <!-- Uniform Title  Statement: Alternate Graphic Representation (MARC 880) -->
333
        <xsl:if test="$display880">
334
            <xsl:call-template name="m880Select">
335
                <xsl:with-param name="basetags">130,240</xsl:with-param>
336
                <xsl:with-param name="codes">adfklmor</xsl:with-param>
337
                <xsl:with-param name="class">results_summary</xsl:with-param>
338
                <xsl:with-param name="label">Uniform Title: </xsl:with-param>
339
            </xsl:call-template>
340
        </xsl:if>
341
252
        <xsl:if test="marc:datafield[@tag=130]|marc:datafield[@tag=240]|marc:datafield[@tag=730][@ind2!=2]">
342
        <xsl:if test="marc:datafield[@tag=130]|marc:datafield[@tag=240]|marc:datafield[@tag=730][@ind2!=2]">
253
        <span class="results_summary"><span class="label">Uniform titles: </span>
343
        <span class="results_summary"><span class="label">Uniform titles: </span>
254
        <xsl:for-each select="marc:datafield[@tag=130]|marc:datafield[@tag=240]|marc:datafield[@tag=730][@ind2!=2]">
344
        <xsl:for-each select="marc:datafield[@tag=130]|marc:datafield[@tag=240]|marc:datafield[@tag=730][@ind2!=2]">
(-)a/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACResults.xsl (+43 lines)
Lines 14-19 Link Here
14
            <xsl:apply-templates/>
14
            <xsl:apply-templates/>
15
    </xsl:template>
15
    </xsl:template>
16
    <xsl:template match="marc:record">
16
    <xsl:template match="marc:record">
17
18
        <!-- Option: Display Alternate Graphic Representation (MARC 880)  -->
19
        <xsl:variable name="display880" select="boolean(marc:datafield[@tag=880])"/>
20
17
        <xsl:variable name="leader" select="marc:leader"/>
21
        <xsl:variable name="leader" select="marc:leader"/>
18
        <xsl:variable name="leader6" select="substring($leader,7,1)"/>
22
        <xsl:variable name="leader6" select="substring($leader,7,1)"/>
19
        <xsl:variable name="leader7" select="substring($leader,8,1)"/>
23
        <xsl:variable name="leader7" select="substring($leader,8,1)"/>
Lines 372-377 Link Here
372
            </xsl:for-each>
376
            </xsl:for-each>
373
-->
377
-->
374
        </xsl:variable>
378
        </xsl:variable>
379
380
        <!-- Title Statement: Alternate Graphic Representation (MARC 880) -->
381
        <xsl:if test="$display880">
382
           <xsl:call-template name="m880Select">
383
              <xsl:with-param name="basetags">245</xsl:with-param>
384
              <xsl:with-param name="codes">abh</xsl:with-param>
385
              <xsl:with-param name="bibno"><xsl:value-of  select="$biblionumber"/></xsl:with-param>
386
           </xsl:call-template>
387
        </xsl:if>
388
375
     	<a><xsl:attribute name="href">/cgi-bin/koha/opac-detail.pl?biblionumber=<xsl:value-of select="$biblionumber"/></xsl:attribute>
389
     	<a><xsl:attribute name="href">/cgi-bin/koha/opac-detail.pl?biblionumber=<xsl:value-of select="$biblionumber"/></xsl:attribute>
376
390
377
        <xsl:if test="marc:datafield[@tag=245]">
391
        <xsl:if test="marc:datafield[@tag=245]">
Lines 409-414 Link Here
409
    </a>
423
    </a>
410
    <p>
424
    <p>
411
425
426
    <!-- Author Statement: Alternate Graphic Representation (MARC 880) -->
427
    <xsl:if test="$display880">
428
      <xsl:call-template name="m880Select">
429
      <xsl:with-param name="basetags">100,110,111,700,710,711</xsl:with-param>
430
      <xsl:with-param name="codes">abc</xsl:with-param>
431
      <xsl:with-param name="class">term</xsl:with-param>
432
      </xsl:call-template>
433
    </xsl:if>
434
412
    <xsl:choose>
435
    <xsl:choose>
413
    <xsl:when test="marc:datafield[@tag=100] or marc:datafield[@tag=110] or marc:datafield[@tag=111] or marc:datafield[@tag=700] or marc:datafield[@tag=710] or marc:datafield[@tag=711]">
436
    <xsl:when test="marc:datafield[@tag=100] or marc:datafield[@tag=110] or marc:datafield[@tag=111] or marc:datafield[@tag=700] or marc:datafield[@tag=710] or marc:datafield[@tag=711]">
414
437
Lines 797-802 Link Here
797
    </xsl:if>
820
    </xsl:if>
798
	</span>
821
	</span>
799
822
823
    <!-- Publisher Statement: Alternate Graphic Representation (MARC 880) -->
824
    <xsl:if test="$display880">
825
      <xsl:call-template name="m880Select">
826
        <xsl:with-param name="basetags">260</xsl:with-param>
827
        <xsl:with-param name="codes">abcg</xsl:with-param>
828
        <xsl:with-param name="class">results_summary</xsl:with-param>
829
        <xsl:with-param name="label">Publisher: </xsl:with-param>
830
      </xsl:call-template>
831
    </xsl:if>
832
        
800
    <xsl:if test="marc:datafield[@tag=260]">
833
    <xsl:if test="marc:datafield[@tag=260]">
801
	<span class="results_summary">
834
	<span class="results_summary">
802
    <span class="label">Publisher: </span> 
835
    <span class="label">Publisher: </span> 
Lines 808-813 Link Here
808
	</span>
841
	</span>
809
    </xsl:if>
842
    </xsl:if>
810
843
844
    <!-- Other Title  Statement: Alternate Graphic Representation (MARC 880) -->
845
    <xsl:if test="$display880">
846
       <xsl:call-template name="m880Select">
847
         <xsl:with-param name="basetags">246</xsl:with-param>
848
         <xsl:with-param name="codes">ab</xsl:with-param>
849
         <xsl:with-param name="class">results_summary</xsl:with-param>
850
         <xsl:with-param name="label">Other Title: </xsl:with-param>
851
       </xsl:call-template>
852
    </xsl:if>
853
        
811
    <xsl:if test="marc:datafield[@tag=246]">
854
    <xsl:if test="marc:datafield[@tag=246]">
812
	<span class="results_summary">
855
	<span class="results_summary">
813
    <span class="label">Other title: </span>
856
    <span class="label">Other title: </span>
(-)a/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slimUtils.xsl (-2 / +88 lines)
Lines 64-70 Link Here
64
		</xsl:choose>
64
		</xsl:choose>
65
<xsl:text> </xsl:text>
65
<xsl:text> </xsl:text>
66
	</xsl:template>
66
	</xsl:template>
67
</xsl:stylesheet><!-- Stylus Studio meta-information - (c)1998-2002 eXcelon Corp.
67
68
69
    <!-- Function m880Select:  Display Alternate Graphic Representation (MARC 880) for selected latin "base"tags
70
        - should be called immediately before the corresonding latin tags are processed 
71
        - tags in right-to-left languages are displayed floating right
72
        * Parameter:
73
           + basetags: display these tags if found in linkage section ( subfield 6) of tag 880
74
           + codes: display these subfields codes
75
        * Options: 
76
            - class: wrap output in <span class="$class">...</span>
77
            - label: prefix each(!) tag with label $label
78
            - bibno: link to biblionumber $bibno
79
            - index: build a search link using index $index with subfield $a as key; if subfield $9 is present use index 'an' with key $9 instead.
80
         * Limitations:
81
            - displays every field on a separate line (to switch between rtl and ltr)
82
         * Pitfalls:
83
           (!) output might be empty
84
    -->
85
    <xsl:template name="m880Select">
86
         <xsl:param name="basetags"/> <!-- e.g.  100,700,110,710 -->
87
        <xsl:param name="codes"/> <!-- e.g. abc  -->
88
        <xsl:param name="class"/> <!-- e.g. results_summary -->
89
        <xsl:param name="label"/> <!-- e.g.  Edition -->
90
        <xsl:param name="bibno"/>
91
        <xsl:param name="index"/> <!-- e.g.  au -->
92
93
        <xsl:for-each select="marc:datafield[@tag=880]">
94
            <xsl:variable name="code6" select="marc:subfield[@code=6]"/>
95
            <xsl:if test="contains(string($basetags), substring($code6,1,3))">
96
                <span>
97
                    <xsl:if test="boolean($class)">
98
                        <xsl:attribute name="class"><xsl:value-of select="$class"/></xsl:attribute>
99
                    </xsl:if>
100
                    <xsl:choose>
101
                        <!-- display right-to-left tags floating right of their left-to-right counterparts -->
102
                        <xsl:when test="substring($code6,10,2) ='/r'">
103
                            <xsl:attribute name="style">display:block; text-align:right; float:right; width:50%; padding-left:20px</xsl:attribute>
104
                            <xsl:attribute name="dir">rtl</xsl:attribute>
105
                        </xsl:when>
106
                        <xsl:otherwise>
107
                            <xsl:attribute name="style">display:block; </xsl:attribute>
108
                        </xsl:otherwise>
109
                    </xsl:choose>
110
                    <xsl:if test="boolean($label)">
111
                        <span class="label">
112
                            <xsl:value-of select="$label"/>
113
                        </span>
114
                    </xsl:if>
115
                    <xsl:variable name="str">
116
                        <xsl:for-each select="marc:subfield">
117
                            <xsl:if test="contains($codes, @code)">
118
                                <xsl:value-of select="text()"/>
119
                                <xsl:text> </xsl:text>
120
                            </xsl:if>
121
                        </xsl:for-each>
122
                    </xsl:variable>
123
                    <xsl:choose>
124
                        <xsl:when test="boolean($bibno)">
125
                            <a>
126
                                <xsl:attribute name="href">/cgi-bin/koha/opac-detail.pl?biblionumber=<xsl:value-of  select="$bibno"/></xsl:attribute>
127
                                <xsl:value-of select="$str"/>
128
                            </a>
129
                        </xsl:when>
130
                       <xsl:when test="boolean($index) and boolean(marc:subfield[@code=9])">
131
                            <a>
132
                                <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=an:<xsl:value-of  select="marc:subfield[@code=9]"/></xsl:attribute>
133
                                  <xsl:value-of select="$str"/>
134
                            </a>
135
                        </xsl:when>
136
                        <xsl:when test="boolean($index)">
137
                            <a>
138
                                <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=<xsl:value-of  select="$index"/>:<xsl:value-of  select="marc:subfield[@code='a']"/></xsl:attribute>
139
                                <xsl:value-of select="$str"/>
140
                            </a>
141
                        </xsl:when>
142
                        <xsl:otherwise>
143
                            <xsl:value-of select="$str"/>
144
                        </xsl:otherwise>
145
                    </xsl:choose>
146
                </span>
147
            </xsl:if>
148
        </xsl:for-each>
149
150
    </xsl:template>
151
152
</xsl:stylesheet>
153
154
<!-- Stylus Studio meta-information - (c)1998-2002 eXcelon Corp.
68
<metaInformation>
155
<metaInformation>
69
<scenarios/><MapperInfo srcSchemaPath="" srcSchemaRoot="" srcSchemaPathIsRelative="yes" srcSchemaInterpretAsXML="no" destSchemaPath="" destSchemaRoot="" destSchemaPathIsRelative="yes" destSchemaInterpretAsXML="no"/>
156
<scenarios/><MapperInfo srcSchemaPath="" srcSchemaRoot="" srcSchemaPathIsRelative="yes" srcSchemaInterpretAsXML="no" destSchemaPath="" destSchemaRoot="" destSchemaPathIsRelative="yes" destSchemaInterpretAsXML="no"/>
70
</metaInformation>
157
</metaInformation>
71
- 

Return to bug 3567