1 <?xml version=
"1.0" encoding=
"UTF-8"?>
2 <!-- $Id: MARC21slim2DC.xsl,v 1.1 2003/01/06 08:20:27 adam Exp $ -->
3 <!DOCTYPE stylesheet [
<!ENTITY nbsp
" " >]
>
4 <xsl:stylesheet version=
"1.0"
5 xmlns:
marc=
"http://www.loc.gov/MARC21/slim"
6 xmlns:
items=
"http://www.koha-community.org/items"
7 xmlns:
xsl=
"http://www.w3.org/1999/XSL/Transform"
8 exclude-result-prefixes=
"marc items">
9 <xsl:import href=
"MARC21slimUtils.xsl"/>
10 <xsl:output method =
"xml" indent=
"yes" omit-xml-declaration =
"yes" />
11 <xsl:template match=
"/">
12 <xsl:apply-templates/>
15 <xsl:template match=
"marc:record">
17 <!-- Option: Display Alternate Graphic Representation (MARC 880) -->
18 <xsl:variable name=
"display880" select=
"boolean(marc:datafield[@tag=880])"/>
20 <xsl:variable name=
"UseControlNumber" select=
"marc:sysprefs/marc:syspref[@name='UseControlNumber']"/>
21 <xsl:variable name=
"DisplayOPACiconsXSLT" select=
"marc:sysprefs/marc:syspref[@name='DisplayOPACiconsXSLT']"/>
22 <xsl:variable name=
"OPACURLOpenInNewWindow" select=
"marc:sysprefs/marc:syspref[@name='OPACURLOpenInNewWindow']"/>
23 <xsl:variable name=
"URLLinkText" select=
"marc:sysprefs/marc:syspref[@name='URLLinkText']"/>
24 <xsl:variable name=
"ShowISBD" select=
"marc:sysprefs/marc:syspref[@name='viewISBD']"/>
26 <xsl:variable name=
"SubjectModifier"><xsl:if test=
"marc:sysprefs/marc:syspref[@name='TraceCompleteSubfields']='1'">,complete-subfield
</xsl:if></xsl:variable>
27 <xsl:variable name=
"UseAuthoritiesForTracings" select=
"marc:sysprefs/marc:syspref[@name='UseAuthoritiesForTracings']"/>
28 <xsl:variable name=
"TraceSubjectSubdivisions" select=
"marc:sysprefs/marc:syspref[@name='TraceSubjectSubdivisions']"/>
29 <xsl:variable name=
"Show856uAsImage" select=
"marc:sysprefs/marc:syspref[@name='OPACDisplay856uAsImage']"/>
30 <xsl:variable name=
"leader" select=
"marc:leader"/>
31 <xsl:variable name=
"leader6" select=
"substring($leader,7,1)"/>
32 <xsl:variable name=
"leader7" select=
"substring($leader,8,1)"/>
33 <xsl:variable name=
"leader19" select=
"substring($leader,20,1)"/>
34 <xsl:variable name=
"controlField008" select=
"marc:controlfield[@tag=008]"/>
35 <xsl:variable name=
"materialTypeCode">
37 <xsl:when test=
"$leader19='a'">ST
</xsl:when>
38 <xsl:when test=
"$leader6='a'">
40 <xsl:when test=
"$leader7='c' or $leader7='d' or $leader7='m'">BK
</xsl:when>
41 <xsl:when test=
"$leader7='i' or $leader7='s'">SE
</xsl:when>
42 <xsl:when test=
"$leader7='a' or $leader7='b'">AR
</xsl:when>
45 <xsl:when test=
"$leader6='t'">BK
</xsl:when>
46 <xsl:when test=
"$leader6='o' or $leader6='p'">MX
</xsl:when>
47 <xsl:when test=
"$leader6='m'">CF
</xsl:when>
48 <xsl:when test=
"$leader6='e' or $leader6='f'">MP
</xsl:when>
49 <xsl:when test=
"$leader6='g' or $leader6='k' or $leader6='r'">VM
</xsl:when>
50 <xsl:when test=
"$leader6='i' or $leader6='j'">MU
</xsl:when>
51 <xsl:when test=
"$leader6='c' or $leader6='d'">PR
</xsl:when>
54 <xsl:variable name=
"materialTypeLabel">
56 <xsl:when test=
"$leader19='a'">Set
</xsl:when>
57 <xsl:when test=
"$leader6='a'">
59 <xsl:when test=
"$leader7='c' or $leader7='d' or $leader7='m'">Book
</xsl:when>
60 <xsl:when test=
"$leader7='i' or $leader7='s'">
62 <xsl:when test=
"substring($controlField008,22,1)!='m'">Continuing Resource
</xsl:when>
63 <xsl:otherwise>Series
</xsl:otherwise>
66 <xsl:when test=
"$leader7='a' or $leader7='b'">Article
</xsl:when>
69 <xsl:when test=
"$leader6='t'">Book
</xsl:when>
70 <xsl:when test=
"$leader6='o'">Kit
</xsl:when>
71 <xsl:when test=
"$leader6='p'">Mixed Materials
</xsl:when>
72 <xsl:when test=
"$leader6='m'">Computer File
</xsl:when>
73 <xsl:when test=
"$leader6='e' or $leader6='f'">Map
</xsl:when>
74 <xsl:when test=
"$leader6='g' or $leader6='k' or $leader6='r'">Visual Material
</xsl:when>
75 <xsl:when test=
"$leader6='j'">Music
</xsl:when>
76 <xsl:when test=
"$leader6='i'">Sound
</xsl:when>
77 <xsl:when test=
"$leader6='c' or $leader6='d'">Score
</xsl:when>
81 <!-- Title Statement -->
82 <!-- Alternate Graphic Representation (MARC 880) -->
83 <xsl:if test=
"$display880">
85 <xsl:call-template name=
"m880Select">
86 <xsl:with-param name=
"basetags">245</xsl:with-param>
87 <xsl:with-param name=
"codes">abhfgknps
</xsl:with-param>
92 <xsl:if test=
"marc:datafield[@tag=245]">
94 <xsl:for-each select=
"marc:datafield[@tag=245]">
95 <xsl:call-template name=
"subfieldSelect">
96 <xsl:with-param name=
"codes">a
</xsl:with-param>
98 <xsl:if test=
"marc:subfield[@code='b']">
99 <xsl:text> </xsl:text>
100 <xsl:call-template name=
"subfieldSelect">
101 <xsl:with-param name=
"codes">b
</xsl:with-param>
104 <xsl:if test=
"marc:subfield[@code='h']">
105 <xsl:text> </xsl:text>
106 <xsl:call-template name=
"subfieldSelect">
107 <xsl:with-param name=
"codes">h
</xsl:with-param>
110 <xsl:text> </xsl:text>
111 <xsl:call-template name=
"subfieldSelect">
112 <xsl:with-param name=
"codes">fgknps
</xsl:with-param>
118 <!-- Author Statement: Alternate Graphic Representation (MARC 880) -->
119 <xsl:if test=
"$display880">
121 <xsl:call-template name=
"m880Select">
122 <xsl:with-param name=
"basetags">100,
110,
111,
700,
710,
711</xsl:with-param>
123 <xsl:with-param name=
"codes">abc
</xsl:with-param>
124 <xsl:with-param name=
"index">au
</xsl:with-param>
125 <!-- do not use label 'by ' here, it would be repeated for every occurence of 100,110,111,700,710,711 -->
131 <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]">
132 <h5 class=
"author">by
133 <xsl:for-each select=
"marc:datafield[@tag=100 or @tag=700]">
136 <xsl:when test=
"marc:subfield[@code=9] and $UseAuthoritiesForTracings='1'">
137 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=an:
<xsl:value-of select=
"marc:subfield[@code=9]"/></xsl:attribute>
140 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=au:
<xsl:value-of select=
"marc:subfield[@code='a']"/></xsl:attribute>
143 <xsl:call-template name=
"nameABCDQ"/></a>
145 <xsl:when test=
"position()=last()"><xsl:text>.
</xsl:text></xsl:when><xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise></xsl:choose>
148 <xsl:for-each select=
"marc:datafield[@tag=110 or @tag=710]">
151 <xsl:when test=
"marc:subfield[@code=9] and $UseAuthoritiesForTracings='1'">
152 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=an:
<xsl:value-of select=
"marc:subfield[@code=9]"/></xsl:attribute>
155 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=au:
<xsl:value-of select=
"marc:subfield[@code='a']"/></xsl:attribute>
158 <xsl:call-template name=
"nameABCDN"/></a>
159 <xsl:choose><xsl:when test=
"position()=last()"><xsl:text> </xsl:text></xsl:when><xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise></xsl:choose>
162 <xsl:for-each select=
"marc:datafield[@tag=111 or @tag=711]">
164 <xsl:when test=
"marc:subfield[@code='n']">
165 <xsl:text> </xsl:text>
166 <xsl:call-template name=
"subfieldSelect">
167 <xsl:with-param name=
"codes">n
</xsl:with-param> </xsl:call-template>
168 <xsl:text> </xsl:text>
173 <xsl:when test=
"marc:subfield[@code=9] and $UseAuthoritiesForTracings='1'">
174 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=an:
<xsl:value-of select=
"marc:subfield[@code=9]"/></xsl:attribute>
177 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=au:
<xsl:value-of select=
"marc:subfield[@code='a']"/></xsl:attribute>
180 <xsl:call-template name=
"nameACDEQ"/></a>
181 <xsl:choose><xsl:when test=
"position()=last()"><xsl:text>.
</xsl:text></xsl:when><xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise></xsl:choose>
188 <xsl:if test=
"$DisplayOPACiconsXSLT!='0'">
189 <xsl:if test=
"$materialTypeCode!=''">
190 <span class=
"results_summary type"><span class=
"label">Type:
</span>
191 <xsl:element name=
"img"><xsl:attribute name=
"src">/opac-tmpl/prog/famfamfam/
<xsl:value-of select=
"$materialTypeCode"/>.png
</xsl:attribute><xsl:attribute name=
"alt">materialTypeLabel
</xsl:attribute><xsl:attribute name=
"class">materialtype
</xsl:attribute></xsl:element>
192 <xsl:value-of select=
"$materialTypeLabel"/>
197 <!--Series: Alternate Graphic Representation (MARC 880) -->
198 <xsl:if test=
"$display880">
199 <xsl:call-template name=
"m880Select">
200 <xsl:with-param name=
"basetags">440,
490</xsl:with-param>
201 <xsl:with-param name=
"codes">av
</xsl:with-param>
202 <xsl:with-param name=
"class">results_summary series
</xsl:with-param>
203 <xsl:with-param name=
"label">Series:
</xsl:with-param>
204 <xsl:with-param name=
"index">se
</xsl:with-param>
209 <xsl:if test=
"marc:datafield[@tag=440 or @tag=490]">
210 <span class=
"results_summary series"><span class=
"label">Series:
</span>
212 <xsl:for-each select=
"marc:datafield[@tag=440]">
213 <a href=
"/cgi-bin/koha/opac-search.pl?q=se:{marc:subfield[@code='a']}">
214 <xsl:call-template name=
"chopPunctuation">
215 <xsl:with-param name=
"chopString">
216 <xsl:call-template name=
"subfieldSelect">
217 <xsl:with-param name=
"codes">av
</xsl:with-param>
222 <xsl:text> </xsl:text><xsl:call-template name=
"part"/>
223 <xsl:choose><xsl:when test=
"position()=last()"><xsl:text>.
</xsl:text></xsl:when><xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise></xsl:choose>
226 <!-- 490 Series not traced, Ind1 = 0 -->
227 <xsl:for-each select=
"marc:datafield[@tag=490][@ind1=0]">
228 <a href=
"/cgi-bin/koha/opac-search.pl?q=se:{marc:subfield[@code='a']}">
229 <xsl:call-template name=
"chopPunctuation">
230 <xsl:with-param name=
"chopString">
231 <xsl:call-template name=
"subfieldSelect">
232 <xsl:with-param name=
"codes">av
</xsl:with-param>
237 <xsl:call-template name=
"part"/>
238 <xsl:choose><xsl:when test=
"position()=last()"><xsl:text>.
</xsl:text></xsl:when><xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise></xsl:choose>
240 <!-- 490 Series traced, Ind1 = 1 -->
241 <xsl:if test=
"marc:datafield[@tag=490][@ind1=1]">
242 <xsl:for-each select=
"marc:datafield[@tag=800 or @tag=810 or @tag=811 or @tag=830]">
244 <xsl:when test=
"marc:subfield[@code='w']">
245 <a href=
"/cgi-bin/koha/opac-search.pl?q=rcn:{marc:subfield[@code='w']}">
246 <xsl:call-template name=
"chopPunctuation">
247 <xsl:with-param name=
"chopString">
248 <xsl:call-template name=
"subfieldSelect">
249 <xsl:with-param name=
"codes">a_t
</xsl:with-param>
256 <a href=
"/cgi-bin/koha/opac-search.pl?q=se:{marc:subfield[@code='a']}">
257 <xsl:call-template name=
"chopPunctuation">
258 <xsl:with-param name=
"chopString">
259 <xsl:call-template name=
"subfieldSelect">
260 <xsl:with-param name=
"codes">a_t
</xsl:with-param>
265 <xsl:call-template name=
"part"/>
268 <xsl:text>:
</xsl:text>
269 <xsl:value-of select=
"marc:subfield[@code='v']" />
270 <xsl:choose><xsl:when test=
"position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise></xsl:choose>
277 <xsl:if test=
"$leader7='s'">
278 <span class=
"results_summary analytics"><span class=
"label">Analytics:
</span>
281 <xsl:when test=
"$UseControlNumber = '1' and marc:controlfield[@tag=001]">
282 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=rcn:
<xsl:value-of select=
"marc:controlfield[@tag=001]"/></xsl:attribute>
285 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=Host-item:
<xsl:value-of select=
"translate(marc:datafield[@tag=245]/marc:subfield[@code='a'], '/', '')"/></xsl:attribute>
288 <xsl:text>Show analytics
</xsl:text>
293 <!-- Volumes of sets and traced series -->
294 <xsl:if test=
"$materialTypeCode='ST' or substring($controlField008,22,1)='m'">
295 <span class=
"results_summary volumes"><span class=
"label">Volumes:
</span>
298 <xsl:when test=
"$UseControlNumber = '1' and marc:controlfield[@tag=001]">
299 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=rcn:
<xsl:value-of select=
"marc:controlfield[@tag=001]"/></xsl:attribute>
302 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=ti,phr:
<xsl:value-of select=
"translate(marc:datafield[@tag=245]/marc:subfield[@code='a'], '/', '')"/></xsl:attribute>
305 <xsl:text>Show volumes
</xsl:text>
311 <xsl:if test=
"$leader19='c'">
312 <span class=
"results_summary set"><span class=
"label">Set:
</span>
313 <xsl:for-each select=
"marc:datafield[@tag=773]">
316 <xsl:when test=
"$UseControlNumber = '1' and marc:subfield[@code='w']">
317 <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>
320 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=ti,phr:
<xsl:value-of select=
"translate(//marc:datafield[@tag=245]/marc:subfield[@code='a'], '.', '')"/></xsl:attribute>
323 <xsl:value-of select=
"translate(//marc:datafield[@tag=245]/marc:subfield[@code='a'], '.', '')" />
326 <xsl:when test=
"position()=last()"></xsl:when>
327 <xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise>
333 <!-- Publisher Statement: Alternate Graphic Representation (MARC 880) -->
334 <xsl:if test=
"$display880">
335 <xsl:call-template name=
"m880Select">
336 <xsl:with-param name=
"basetags">260</xsl:with-param>
337 <xsl:with-param name=
"codes">abcg
</xsl:with-param>
338 <xsl:with-param name=
"class">results_summary publisher
</xsl:with-param>
339 <xsl:with-param name=
"label">Publisher:
</xsl:with-param>
343 <xsl:if test=
"marc:datafield[@tag=260]">
344 <span class=
"results_summary publisher"><span class=
"label">Publisher:
</span>
345 <xsl:for-each select=
"marc:datafield[@tag=260]">
346 <xsl:if test=
"marc:subfield[@code='a']">
347 <xsl:call-template name=
"subfieldSelect">
348 <xsl:with-param name=
"codes">a
</xsl:with-param>
349 </xsl:call-template>
351 <xsl:if test=
"marc:subfield[@code='b']">
352 <a href=
"/cgi-bin/koha/opac-search.pl?q=pb:{marc:subfield[@code='b']}">
353 <xsl:call-template name=
"subfieldSelect">
354 <xsl:with-param name=
"codes">b
</xsl:with-param>
358 <xsl:text> </xsl:text>
359 <xsl:call-template name=
"chopPunctuation">
360 <xsl:with-param name=
"chopString">
361 <xsl:call-template name=
"subfieldSelect">
362 <xsl:with-param name=
"codes">cg
</xsl:with-param>
366 <xsl:choose><xsl:when test=
"position()=last()"><xsl:text>.
</xsl:text></xsl:when><xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise></xsl:choose>
371 <!-- Edition Statement: Alternate Graphic Representation (MARC 880) -->
372 <xsl:if test=
"$display880">
373 <xsl:call-template name=
"m880Select">
374 <xsl:with-param name=
"basetags">250</xsl:with-param>
375 <xsl:with-param name=
"codes">ab
</xsl:with-param>
376 <xsl:with-param name=
"class">results_summary edition
</xsl:with-param>
377 <xsl:with-param name=
"label">Edition:
</xsl:with-param>
381 <xsl:if test=
"marc:datafield[@tag=250]">
382 <span class=
"results_summary edition"><span class=
"label">Edition:
</span>
383 <xsl:for-each select=
"marc:datafield[@tag=250]">
384 <xsl:call-template name=
"chopPunctuation">
385 <xsl:with-param name=
"chopString">
386 <xsl:call-template name=
"subfieldSelect">
387 <xsl:with-param name=
"codes">ab
</xsl:with-param>
391 <xsl:choose><xsl:when test=
"position()=last()"><xsl:text>.
</xsl:text></xsl:when><xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise></xsl:choose>
396 <!-- Description: Alternate Graphic Representation (MARC 880) -->
397 <xsl:if test=
"$display880">
398 <xsl:call-template name=
"m880Select">
399 <xsl:with-param name=
"basetags">300</xsl:with-param>
400 <xsl:with-param name=
"codes">abceg
</xsl:with-param>
401 <xsl:with-param name=
"class">results_summary description
</xsl:with-param>
402 <xsl:with-param name=
"label">Description:
</xsl:with-param>
406 <xsl:if test=
"marc:datafield[@tag=300]">
407 <span class=
"results_summary description"><span class=
"label">Description:
</span>
408 <xsl:for-each select=
"marc:datafield[@tag=300]">
409 <xsl:call-template name=
"chopPunctuation">
410 <xsl:with-param name=
"chopString">
411 <xsl:call-template name=
"subfieldSelect">
412 <xsl:with-param name=
"codes">abceg
</xsl:with-param>
416 <xsl:choose><xsl:when test=
"position()=last()"><xsl:text>.
</xsl:text></xsl:when><xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise></xsl:choose>
421 <xsl:if test=
"marc:datafield[@tag=020]">
422 <span class=
"results_summary isbn"><span class=
"label">ISBN:
</span>
423 <xsl:for-each select=
"marc:datafield[@tag=020]">
424 <xsl:variable name=
"isbn" select=
"marc:subfield[@code='a']"/>
425 <xsl:value-of select=
"marc:subfield[@code='a']"/>
426 <xsl:choose><xsl:when test=
"position()=last()"><xsl:text>.
</xsl:text></xsl:when><xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise></xsl:choose>
431 <xsl:if test=
"marc:datafield[@tag=022]">
432 <span class=
"results_summary issn"><span class=
"label">ISSN:
</span>
433 <xsl:for-each select=
"marc:datafield[@tag=022]">
434 <xsl:value-of select=
"marc:subfield[@code='a']"/>
435 <xsl:choose><xsl:when test=
"position()=last()"><xsl:text>.
</xsl:text></xsl:when><xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise></xsl:choose>
440 <!-- Other Title Statement: Alternate Graphic Representation (MARC 880) -->
441 <xsl:if test=
"$display880">
442 <xsl:call-template name=
"m880Select">
443 <xsl:with-param name=
"basetags">246</xsl:with-param>
444 <xsl:with-param name=
"codes">abhfgnp
</xsl:with-param>
445 <xsl:with-param name=
"class">results_summary other_title
</xsl:with-param>
446 <xsl:with-param name=
"label">Other Title:
</xsl:with-param>
450 <xsl:if test=
"marc:datafield[@tag=246]">
451 <span class=
"results_summary other_title"><span class=
"label">Other Title:
</span>
452 <xsl:for-each select=
"marc:datafield[@tag=246]">
453 <xsl:call-template name=
"chopPunctuation">
454 <xsl:with-param name=
"chopString">
455 <xsl:call-template name=
"subfieldSelect">
456 <xsl:with-param name=
"codes">iabhfgnp
</xsl:with-param>
460 <xsl:choose><xsl:when test=
"position()=last()"><xsl:text>.
</xsl:text></xsl:when><xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise></xsl:choose>
465 <!-- Uniform Title Statement: Alternate Graphic Representation (MARC 880) -->
466 <xsl:if test=
"$display880">
467 <xsl:call-template name=
"m880Select">
468 <xsl:with-param name=
"basetags">130,
240</xsl:with-param>
469 <xsl:with-param name=
"codes">adfklmor
</xsl:with-param>
470 <xsl:with-param name=
"class">results_summary uniform_title
</xsl:with-param>
471 <xsl:with-param name=
"label">Uniform titles:
</xsl:with-param>
475 <xsl:if test=
"marc:datafield[@tag=130]|marc:datafield[@tag=240]|marc:datafield[@tag=730][@ind2!=2]">
476 <span class=
"results_summary uniform_titles"><span class=
"label">Uniform titles:
</span>
477 <xsl:for-each select=
"marc:datafield[@tag=130]|marc:datafield[@tag=240]|marc:datafield[@tag=730][@ind2!=2]">
478 <xsl:variable name=
"str">
479 <xsl:for-each select=
"marc:subfield">
480 <xsl:if test=
"(contains('adfklmor',@code) and (not(../marc:subfield[@code='n' or @code='p']) or (following-sibling::marc:subfield[@code='n' or @code='p'])))">
481 <xsl:value-of select=
"text()"/>
482 <xsl:text> </xsl:text>
486 <xsl:call-template name=
"chopPunctuation">
487 <xsl:with-param name=
"chopString">
488 <xsl:value-of select=
"substring($str,1,string-length($str)-1)"/>
492 <xsl:choose><xsl:when test=
"position()=last()"><xsl:text>.
</xsl:text></xsl:when><xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise></xsl:choose>
497 <xsl:if test=
"marc:datafield[substring(@tag, 1, 1) = '6']">
498 <span class=
"results_summary subjects"><span class=
"label">Subject(s):
</span>
499 <xsl:for-each select=
"marc:datafield[substring(@tag, 1, 1) = '6']">
502 <xsl:when test=
"marc:subfield[@code=9] and $UseAuthoritiesForTracings='1'">
503 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=an:
<xsl:value-of select=
"marc:subfield[@code=9]"/></xsl:attribute>
505 <xsl:when test=
"$TraceSubjectSubdivisions='1'">
506 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=
<xsl:call-template name=
"subfieldSelect">
507 <xsl:with-param name=
"codes">abcdfgklmnopqrstvxyz
</xsl:with-param>
508 <xsl:with-param name=
"delimeter"> and
</xsl:with-param>
509 <xsl:with-param name=
"prefix">(su
<xsl:value-of select=
"$SubjectModifier"/>:{
</xsl:with-param>
510 <xsl:with-param name=
"suffix">})
</xsl:with-param>
515 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=su
<xsl:value-of select=
"$SubjectModifier"/>:{
<xsl:value-of select=
"marc:subfield[@code='a']"/>}
</xsl:attribute>
518 <xsl:call-template name=
"chopPunctuation">
519 <xsl:with-param name=
"chopString">
520 <xsl:call-template name=
"subfieldSelect">
521 <xsl:with-param name=
"codes">abcdfgklmnopqrstvxyz
</xsl:with-param>
522 <xsl:with-param name=
"subdivCodes">vxyz
</xsl:with-param>
523 <xsl:with-param name=
"subdivDelimiter">--
</xsl:with-param>
529 <xsl:when test=
"position()=last()"></xsl:when>
530 <xsl:otherwise> |
</xsl:otherwise>
537 <!-- Image processing code added here, takes precedence over text links including y3z text -->
538 <xsl:if test=
"marc:datafield[@tag=856]">
539 <span class=
"results_summary online_resources"><span class=
"label">Online Resources:
</span>
540 <xsl:for-each select=
"marc:datafield[@tag=856]">
541 <xsl:variable name=
"SubqText"><xsl:value-of select=
"marc:subfield[@code='q']"/></xsl:variable>
542 <a><xsl:attribute name=
"href"><xsl:value-of select=
"marc:subfield[@code='u']"/></xsl:attribute>
543 <xsl:if test=
"$OPACURLOpenInNewWindow='1'">
544 <xsl:attribute name=
"target">_blank
</xsl:attribute>
547 <xsl:when test=
"($Show856uAsImage='Details' or $Show856uAsImage='Both') and (substring($SubqText,1,6)='image/' or $SubqText='img' or $SubqText='bmp' or $SubqText='cod' or $SubqText='gif' or $SubqText='ief' or $SubqText='jpe' or $SubqText='jpeg' or $SubqText='jpg' or $SubqText='jfif' or $SubqText='png' or $SubqText='svg' or $SubqText='tif' or $SubqText='tiff' or $SubqText='ras' or $SubqText='cmx' or $SubqText='ico' or $SubqText='pnm' or $SubqText='pbm' or $SubqText='pgm' or $SubqText='ppm' or $SubqText='rgb' or $SubqText='xbm' or $SubqText='xpm' or $SubqText='xwd')">
548 <xsl:element name=
"img"><xsl:attribute name=
"src"><xsl:value-of select=
"marc:subfield[@code='u']"/></xsl:attribute><xsl:attribute name=
"alt"><xsl:value-of select=
"marc:subfield[@code='y']"/></xsl:attribute><xsl:attribute name=
"height">100</xsl:attribute></xsl:element><xsl:text></xsl:text>
550 <xsl:when test=
"marc:subfield[@code='y' or @code='3' or @code='z']">
551 <xsl:call-template name=
"subfieldSelect">
552 <xsl:with-param name=
"codes">y3z
</xsl:with-param>
555 <xsl:when test=
"$URLLinkText!=''">
556 <xsl:value-of select=
"$URLLinkText"/>
559 <xsl:text>Click here to access online
</xsl:text>
564 <xsl:when test=
"position()=last()"><xsl:text> </xsl:text></xsl:when>
565 <xsl:otherwise> |
</xsl:otherwise>
572 <xsl:if test=
"marc:datafield[@tag=530]">
573 <xsl:for-each select=
"marc:datafield[@tag=530]">
574 <span class=
"results_summary additionalforms">
575 <xsl:call-template name=
"subfieldSelect">
576 <xsl:with-param name=
"codes">abcd
</xsl:with-param>
578 <xsl:for-each select=
"marc:subfield[@code='u']">
579 <a><xsl:attribute name=
"href"><xsl:value-of select=
"text()"/></xsl:attribute>
580 <xsl:if test=
"$OPACURLOpenInNewWindow='1'">
581 <xsl:attribute name=
"target">_blank
</xsl:attribute>
583 <xsl:value-of select=
"text()"/>
591 <xsl:if test=
"marc:datafield[@tag=505]">
592 <xsl:for-each select=
"marc:datafield[@tag=505]">
593 <span class=
"results_summary contents">
595 <xsl:when test=
"@ind1=1">
596 <span class=
"label">Incomplete contents:
</span>
598 <xsl:when test=
"@ind1=1">
599 <span class=
"label">Partial contents:
</span>
602 <span class=
"label">Contents:
</span>
606 <xsl:when test=
"@ind2=0">
607 <xsl:call-template name=
"subfieldSelect">
608 <xsl:with-param name=
"codes">tru
</xsl:with-param>
612 <xsl:call-template name=
"subfieldSelect">
613 <xsl:with-param name=
"codes">au
</xsl:with-param>
622 <xsl:if test=
"marc:datafield[@tag=583]">
623 <xsl:for-each select=
"marc:datafield[@tag=583]">
624 <xsl:if test=
"@ind1=1 or @ind1=' '">
625 <span class=
"results_summary actionnote">
627 <xsl:when test=
"marc:subfield[@code='z']">
628 <xsl:value-of select=
"marc:subfield[@code='z']"/>
631 <xsl:call-template name=
"subfieldSelect">
632 <xsl:with-param name=
"codes">abcdefgijklnou
</xsl:with-param>
642 <xsl:if test=
"marc:datafield[@tag=586]">
643 <xsl:for-each select=
"marc:datafield[@tag=586]">
644 <span class=
"results_summary awardsnote">
645 <xsl:if test=
"@ind1=' '">
646 <span class=
"label">Awards:
</span>
648 <xsl:value-of select=
"marc:subfield[@code='a']"/>
654 <xsl:if test=
"marc:datafield[@tag=773]">
655 <xsl:for-each select=
"marc:datafield[@tag=773]">
656 <xsl:if test=
"@ind1=0">
657 <span class=
"results_summary in"><span class=
"label">
659 <xsl:when test=
"@ind2=' '">
662 <xsl:when test=
"@ind2=8">
663 <xsl:if test=
"marc:subfield[@code='i']">
664 <xsl:value-of select=
"marc:subfield[@code='i']"/>
669 <xsl:variable name=
"f773">
670 <xsl:call-template name=
"chopPunctuation"><xsl:with-param name=
"chopString"><xsl:call-template name=
"subfieldSelect">
671 <xsl:with-param name=
"codes">a_t
</xsl:with-param>
672 </xsl:call-template></xsl:with-param></xsl:call-template>
675 <xsl:when test=
"$UseControlNumber = '1' and marc:subfield[@code='w']">
676 <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>
677 <xsl:value-of select=
"translate($f773, '()', '')"/>
679 <xsl:if test=
"marc:subfield[@code='g']"><xsl:text> </xsl:text><xsl:value-of select=
"marc:subfield[@code='g']"/></xsl:if>
681 <xsl:when test=
"marc:subfield[@code='0']">
682 <a><xsl:attribute name=
"href">/cgi-bin/koha/opac-detail.pl?biblionumber=
<xsl:value-of select=
"marc:subfield[@code='0']"/></xsl:attribute>
683 <xsl:value-of select=
"$f773"/>
687 <a><xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=ti,phr:
<xsl:value-of select=
"translate($f773, '()', '')"/></xsl:attribute>
688 <xsl:value-of select=
"$f773"/>
690 <xsl:if test=
"marc:subfield[@code='g']"><xsl:text> </xsl:text><xsl:value-of select=
"marc:subfield[@code='g']"/></xsl:if>
695 <xsl:if test=
"marc:subfield[@code='n']">
696 <span class=
"results_summary"><xsl:value-of select=
"marc:subfield[@code='n']"/></span>
703 <xsl:for-each select=
"marc:datafield[@tag=520]">
704 <span class=
"results_summary summary"><span class=
"label">
706 <xsl:when test=
"@ind1=0"><xsl:text>Subject:
</xsl:text></xsl:when>
707 <xsl:when test=
"@ind1=1"><xsl:text>Review:
</xsl:text></xsl:when>
708 <xsl:when test=
"@ind1=2"><xsl:text>Scope and content:
</xsl:text></xsl:when>
709 <xsl:when test=
"@ind1=3"><xsl:text>Abstract:
</xsl:text></xsl:when>
710 <xsl:when test=
"@ind1=4"><xsl:text>Content advice:
</xsl:text></xsl:when>
711 <xsl:otherwise><xsl:text>Summary:
</xsl:text></xsl:otherwise>
714 <xsl:call-template name=
"subfieldSelect">
715 <xsl:with-param name=
"codes">abcu
</xsl:with-param>
720 <!-- 866 holdings public note -->
721 <xsl:if test=
"marc:datafield[@tag=866]">
722 <span class=
"results_summary holdings_note"><span class=
"label">Holdings Note:
</span>
723 <xsl:for-each select=
"marc:datafield[@tag=866]">
724 <xsl:value-of select=
"marc:subfield[@code='z']"/>
725 <xsl:choose><xsl:when test=
"position()=last()"><xsl:text>.
</xsl:text></xsl:when><xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise></xsl:choose>
730 <!-- 775 Other Edition -->
731 <xsl:if test=
"marc:datafield[@tag=775]">
732 <span class=
"results_summary other_editions"><span class=
"label">Other Editions:
</span>
733 <xsl:for-each select=
"marc:datafield[@tag=775]">
734 <xsl:if test=
"marc:subfield[@code='i']">
735 <xsl:call-template name=
"subfieldSelect">
736 <xsl:with-param name=
"codes">i
</xsl:with-param>
738 <xsl:text>:
</xsl:text>
742 <xsl:when test=
"$UseControlNumber = '1' and marc:subfield[@code='w']">
743 <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>
746 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=ti,phr:
<xsl:value-of select=
"translate(marc:subfield[@code='t'], '.', '')"/></xsl:attribute>
749 <xsl:call-template name=
"subfieldSelect">
750 <xsl:with-param name=
"codes">t
</xsl:with-param>
754 <xsl:when test=
"position()=last()"></xsl:when>
755 <xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise>
762 <xsl:if test=
"marc:datafield[@tag=780]">
763 <xsl:for-each select=
"marc:datafield[@tag=780]">
764 <xsl:if test=
"@ind1=0">
765 <span class=
"results_summary preceeding_entry">
767 <xsl:when test=
"@ind2=0">
768 <span class=
"label">Continues:
</span>
770 <xsl:when test=
"@ind2=1">
771 <span class=
"label">Continues in part:
</span>
773 <xsl:when test=
"@ind2=2">
774 <span class=
"label">Supersedes:
</span>
776 <xsl:when test=
"@ind2=3">
777 <span class=
"label">Supersedes in part:
</span>
779 <xsl:when test=
"@ind2=4">
780 <span class=
"label">Formed by the union: ... and: ...
</span>
782 <xsl:when test=
"@ind2=5">
783 <span class=
"label">Absorbed:
</span>
785 <xsl:when test=
"@ind2=6">
786 <span class=
"label">Absorbed in part:
</span>
788 <xsl:when test=
"@ind2=7">
789 <span class=
"label">Separated from:
</span>
792 <xsl:variable name=
"f780">
793 <xsl:call-template name=
"subfieldSelect">
794 <xsl:with-param name=
"codes">a_t
</xsl:with-param>
798 <xsl:when test=
"$UseControlNumber = '1' and marc:subfield[@code='w']">
799 <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>
800 <xsl:value-of select=
"translate($f780, '()', '')"/>
804 <a><xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=
<xsl:value-of select=
"translate($f780, '()', '')"/></xsl:attribute>
805 <xsl:value-of select=
"translate($f780, '()', '')"/>
811 <xsl:if test=
"marc:subfield[@code='n']">
812 <span class=
"results_summary"><xsl:value-of select=
"marc:subfield[@code='n']"/></span>
820 <xsl:if test=
"marc:datafield[@tag=785]">
821 <xsl:for-each select=
"marc:datafield[@tag=785]">
822 <xsl:if test=
"@ind1=0">
823 <span class=
"results_summary succeeding_entry">
825 <xsl:when test=
"@ind2=0">
826 <span class=
"label">Continued by:
</span>
828 <xsl:when test=
"@ind2=1">
829 <span class=
"label">Continued in part by:
</span>
831 <xsl:when test=
"@ind2=2">
832 <span class=
"label">Superseded by:
</span>
834 <xsl:when test=
"@ind2=3">
835 <span class=
"label">Superseded in part by:
</span>
837 <xsl:when test=
"@ind2=4">
838 <span class=
"label">Absorbed by:
</span>
840 <xsl:when test=
"@ind2=5">
841 <span class=
"label">Absorbed in part by:
</span>
843 <xsl:when test=
"@ind2=6">
844 <span class=
"label">Split into .. and ...:
</span>
846 <xsl:when test=
"@ind2=7">
847 <span class=
"label">Merged with ... to form ...
</span>
849 <xsl:when test=
"@ind2=8">
850 <span class=
"label">Changed back to:
</span>
854 <xsl:variable name=
"f785">
855 <xsl:call-template name=
"subfieldSelect">
856 <xsl:with-param name=
"codes">a_t
</xsl:with-param>
861 <xsl:when test=
"$UseControlNumber = '1' and marc:subfield[@code='w']">
862 <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>
863 <xsl:value-of select=
"translate($f785, '()', '')"/>
867 <a><xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=
<xsl:value-of select=
"translate($f785, '()', '')"/></xsl:attribute>
868 <xsl:value-of select=
"translate($f785, '()', '')"/>
875 <xsl:if test=
"marc:subfield[@code='n']">
876 <span class=
"results_summary"><xsl:value-of select=
"marc:subfield[@code='n']"/></span>
885 <xsl:template name=
"nameABCDQ">
886 <xsl:call-template name=
"chopPunctuation">
887 <xsl:with-param name=
"chopString">
888 <xsl:call-template name=
"subfieldSelect">
889 <xsl:with-param name=
"codes">aq
</xsl:with-param>
892 <xsl:with-param name=
"punctuation">
893 <xsl:text>:,;/
</xsl:text>
896 <xsl:call-template name=
"termsOfAddress"/>
899 <xsl:template name=
"nameABCDN">
900 <xsl:for-each select=
"marc:subfield[@code='a']">
901 <xsl:call-template name=
"chopPunctuation">
902 <xsl:with-param name=
"chopString" select=
"."/>
905 <xsl:for-each select=
"marc:subfield[@code='b']">
906 <xsl:value-of select=
"."/>
908 <xsl:if test=
"marc:subfield[@code='c'] or marc:subfield[@code='d'] or marc:subfield[@code='n']">
909 <xsl:call-template name=
"subfieldSelect">
910 <xsl:with-param name=
"codes">cdn
</xsl:with-param>
915 <xsl:template name=
"nameACDEQ">
916 <xsl:call-template name=
"subfieldSelect">
917 <xsl:with-param name=
"codes">acdeq
</xsl:with-param>
920 <xsl:template name=
"termsOfAddress">
921 <xsl:if test=
"marc:subfield[@code='b' or @code='c']">
922 <xsl:call-template name=
"chopPunctuation">
923 <xsl:with-param name=
"chopString">
924 <xsl:call-template name=
"subfieldSelect">
925 <xsl:with-param name=
"codes">bc
</xsl:with-param>
932 <xsl:template name=
"part">
933 <xsl:variable name=
"partNumber">
934 <xsl:call-template name=
"specialSubfieldSelect">
935 <xsl:with-param name=
"axis">n
</xsl:with-param>
936 <xsl:with-param name=
"anyCodes">n
</xsl:with-param>
937 <xsl:with-param name=
"afterCodes">fghkdlmor
</xsl:with-param>
940 <xsl:variable name=
"partName">
941 <xsl:call-template name=
"specialSubfieldSelect">
942 <xsl:with-param name=
"axis">p
</xsl:with-param>
943 <xsl:with-param name=
"anyCodes">p
</xsl:with-param>
944 <xsl:with-param name=
"afterCodes">fghkdlmor
</xsl:with-param>
947 <xsl:if test=
"string-length(normalize-space($partNumber))">
948 <xsl:call-template name=
"chopPunctuation">
949 <xsl:with-param name=
"chopString" select=
"$partNumber"/>
952 <xsl:if test=
"string-length(normalize-space($partName))">
953 <xsl:call-template name=
"chopPunctuation">
954 <xsl:with-param name=
"chopString" select=
"$partName"/>
959 <xsl:template name=
"specialSubfieldSelect">
960 <xsl:param name=
"anyCodes"/>
961 <xsl:param name=
"axis"/>
962 <xsl:param name=
"beforeCodes"/>
963 <xsl:param name=
"afterCodes"/>
964 <xsl:variable name=
"str">
965 <xsl:for-each select=
"marc:subfield">
966 <xsl:if test=
"contains($anyCodes, @code) or (contains($beforeCodes,@code) and following-sibling::marc:subfield[@code=$axis]) or (contains($afterCodes,@code) and preceding-sibling::marc:subfield[@code=$axis])">
967 <xsl:value-of select=
"text()"/>
968 <xsl:text> </xsl:text>
972 <xsl:value-of select=
"substring($str,1,string-length($str)-1)"/>