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=
"1"/>
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=
"leader" select=
"marc:leader"/>
30 <xsl:variable name=
"leader6" select=
"substring($leader,7,1)"/>
31 <xsl:variable name=
"leader7" select=
"substring($leader,8,1)"/>
32 <xsl:variable name=
"leader19" select=
"substring($leader,20,1)"/>
33 <xsl:variable name=
"controlField008" select=
"marc:controlfield[@tag=008]"/>
34 <xsl:variable name=
"materialTypeCode">
36 <xsl:when test=
"$leader19='a'">ST
</xsl:when>
37 <xsl:when test=
"$leader6='a'">
39 <xsl:when test=
"$leader7='c' or $leader7='d' or $leader7='m'">BK
</xsl:when>
40 <xsl:when test=
"$leader7='i' or $leader7='s'">SE
</xsl:when>
41 <xsl:when test=
"$leader7='a' or $leader7='b'">AR
</xsl:when>
44 <xsl:when test=
"$leader6='t'">BK
</xsl:when>
45 <xsl:when test=
"$leader6='o' or $leader6='p'">MX
</xsl:when>
46 <xsl:when test=
"$leader6='m'">CF
</xsl:when>
47 <xsl:when test=
"$leader6='e' or $leader6='f'">MP
</xsl:when>
48 <xsl:when test=
"$leader6='g' or $leader6='k' or $leader6='r'">VM
</xsl:when>
49 <xsl:when test=
"$leader6='i' or $leader6='j'">MU
</xsl:when>
50 <xsl:when test=
"$leader6='c' or $leader6='d'">PR
</xsl:when>
53 <xsl:variable name=
"materialTypeLabel">
55 <xsl:when test=
"$leader19='a'">Set
</xsl:when>
56 <xsl:when test=
"$leader6='a'">
58 <xsl:when test=
"$leader7='c' or $leader7='d' or $leader7='m'">Book
</xsl:when>
59 <xsl:when test=
"$leader7='i' or $leader7='s'">
61 <xsl:when test=
"substring($controlField008,22,1)!='m'">Continuing Resource
</xsl:when>
62 <xsl:otherwise>Series
</xsl:otherwise>
65 <xsl:when test=
"$leader7='a' or $leader7='b'">Article
</xsl:when>
68 <xsl:when test=
"$leader6='t'">Book
</xsl:when>
69 <xsl:when test=
"$leader6='o'">Kit
</xsl:when>
70 <xsl:when test=
"$leader6='p'">Mixed Materials
</xsl:when>
71 <xsl:when test=
"$leader6='m'">Computer File
</xsl:when>
72 <xsl:when test=
"$leader6='e' or $leader6='f'">Map
</xsl:when>
73 <xsl:when test=
"$leader6='g' or $leader6='k' or $leader6='r'">Visual Material
</xsl:when>
74 <xsl:when test=
"$leader6='j'">Music
</xsl:when>
75 <xsl:when test=
"$leader6='i'">Sound
</xsl:when>
76 <xsl:when test=
"$leader6='c' or $leader6='d'">Score
</xsl:when>
80 <!-- Title Statement -->
81 <!-- Alternate Graphic Representation (MARC 880) -->
82 <xsl:if test=
"$display880">
84 <xsl:call-template name=
"m880Select">
85 <xsl:with-param name=
"basetags">245</xsl:with-param>
86 <xsl:with-param name=
"codes">abhfgknps
</xsl:with-param>
91 <xsl:if test=
"marc:datafield[@tag=245]">
93 <xsl:for-each select=
"marc:datafield[@tag=245]">
94 <xsl:call-template name=
"subfieldSelect">
95 <xsl:with-param name=
"codes">a
</xsl:with-param>
97 <xsl:if test=
"marc:subfield[@code='b']">
98 <xsl:text> </xsl:text>
99 <xsl:call-template name=
"subfieldSelect">
100 <xsl:with-param name=
"codes">b
</xsl:with-param>
103 <xsl:if test=
"marc:subfield[@code='h']">
104 <xsl:text> </xsl:text>
105 <xsl:call-template name=
"subfieldSelect">
106 <xsl:with-param name=
"codes">h
</xsl:with-param>
109 <xsl:text> </xsl:text>
110 <xsl:call-template name=
"subfieldSelect">
111 <xsl:with-param name=
"codes">fgknps
</xsl:with-param>
117 <!-- Author Statement: Alternate Graphic Representation (MARC 880) -->
118 <xsl:if test=
"$display880">
120 <xsl:call-template name=
"m880Select">
121 <xsl:with-param name=
"basetags">100,
110,
111,
700,
710,
711</xsl:with-param>
122 <xsl:with-param name=
"codes">abc
</xsl:with-param>
123 <xsl:with-param name=
"index">au
</xsl:with-param>
124 <!-- do not use label 'by ' here, it would be repeated for every occurence of 100,110,111,700,710,711 -->
130 <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]">
131 <h5 class=
"author">by
132 <xsl:for-each select=
"marc:datafield[@tag=100 or @tag=700]">
135 <xsl:when test=
"marc:subfield[@code=9] and $UseAuthoritiesForTracings='1'">
136 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=an:
<xsl:value-of select=
"marc:subfield[@code=9]"/></xsl:attribute>
139 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=au:
<xsl:value-of select=
"marc:subfield[@code='a']"/></xsl:attribute>
142 <xsl:call-template name=
"nameABCDQ"/></a>
144 <xsl:when test=
"position()=last()"><xsl:text>.
</xsl:text></xsl:when><xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise></xsl:choose>
147 <xsl:for-each select=
"marc:datafield[@tag=110 or @tag=710]">
150 <xsl:when test=
"marc:subfield[@code=9] and $UseAuthoritiesForTracings='1'">
151 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=an:
<xsl:value-of select=
"marc:subfield[@code=9]"/></xsl:attribute>
154 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=au:
<xsl:value-of select=
"marc:subfield[@code='a']"/></xsl:attribute>
157 <xsl:call-template name=
"nameABCDN"/></a>
158 <xsl:choose><xsl:when test=
"position()=last()"><xsl:text> </xsl:text></xsl:when><xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise></xsl:choose>
161 <xsl:for-each select=
"marc:datafield[@tag=111 or @tag=711]">
163 <xsl:when test=
"marc:subfield[@code='n']">
164 <xsl:text> </xsl:text>
165 <xsl:call-template name=
"subfieldSelect">
166 <xsl:with-param name=
"codes">n
</xsl:with-param> </xsl:call-template>
167 <xsl:text> </xsl:text>
172 <xsl:when test=
"marc:subfield[@code=9] and $UseAuthoritiesForTracings='1'">
173 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=an:
<xsl:value-of select=
"marc:subfield[@code=9]"/></xsl:attribute>
176 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=au:
<xsl:value-of select=
"marc:subfield[@code='a']"/></xsl:attribute>
179 <xsl:call-template name=
"nameACDEQ"/></a>
180 <xsl:choose><xsl:when test=
"position()=last()"><xsl:text>.
</xsl:text></xsl:when><xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise></xsl:choose>
187 <xsl:if test=
"$DisplayOPACiconsXSLT!='0'">
188 <xsl:if test=
"$materialTypeCode!=''">
189 <span class=
"results_summary"><span class=
"label">Type:
</span>
190 <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>
191 <xsl:value-of select=
"$materialTypeLabel"/>
196 <!--Series: Alternate Graphic Representation (MARC 880) -->
197 <xsl:if test=
"$display880">
198 <xsl:call-template name=
"m880Select">
199 <xsl:with-param name=
"basetags">440,
490</xsl:with-param>
200 <xsl:with-param name=
"codes">av
</xsl:with-param>
201 <xsl:with-param name=
"class">results_summary
</xsl:with-param>
202 <xsl:with-param name=
"label">Series:
</xsl:with-param>
203 <xsl:with-param name=
"index">se
</xsl:with-param>
208 <xsl:if test=
"marc:datafield[@tag=440 or @tag=490]">
209 <span class=
"results_summary"><span class=
"label">Series:
</span>
211 <xsl:for-each select=
"marc:datafield[@tag=440]">
212 <a href=
"/cgi-bin/koha/opac-search.pl?q=se:{marc:subfield[@code='a']}">
213 <xsl:call-template name=
"chopPunctuation">
214 <xsl:with-param name=
"chopString">
215 <xsl:call-template name=
"subfieldSelect">
216 <xsl:with-param name=
"codes">av
</xsl:with-param>
221 <xsl:text> </xsl:text><xsl:call-template name=
"part"/>
222 <xsl:choose><xsl:when test=
"position()=last()"><xsl:text>.
</xsl:text></xsl:when><xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise></xsl:choose>
225 <!-- 490 Series not traced, Ind1 = 0 -->
226 <xsl:for-each select=
"marc:datafield[@tag=490][@ind1=0]">
227 <a href=
"/cgi-bin/koha/opac-search.pl?q=se:{marc:subfield[@code='a']}">
228 <xsl:call-template name=
"chopPunctuation">
229 <xsl:with-param name=
"chopString">
230 <xsl:call-template name=
"subfieldSelect">
231 <xsl:with-param name=
"codes">av
</xsl:with-param>
236 <xsl:call-template name=
"part"/>
237 <xsl:choose><xsl:when test=
"position()=last()"><xsl:text>.
</xsl:text></xsl:when><xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise></xsl:choose>
239 <!-- 490 Series traced, Ind1 = 1 -->
240 <xsl:if test=
"marc:datafield[@tag=490][@ind1=1]">
241 <xsl:for-each select=
"marc:datafield[@tag=800 or @tag=810 or @tag=811 or @tag=830]">
243 <xsl:when test=
"marc:subfield[@code='w']">
244 <a href=
"/cgi-bin/koha/opac-search.pl?q=rcn:{marc:subfield[@code='w']}">
245 <xsl:call-template name=
"chopPunctuation">
246 <xsl:with-param name=
"chopString">
247 <xsl:call-template name=
"subfieldSelect">
248 <xsl:with-param name=
"codes">at
</xsl:with-param>
255 <a href=
"/cgi-bin/koha/opac-search.pl?q=se:{marc:subfield[@code='a']}">
256 <xsl:call-template name=
"chopPunctuation">
257 <xsl:with-param name=
"chopString">
258 <xsl:call-template name=
"subfieldSelect">
259 <xsl:with-param name=
"codes">at
</xsl:with-param>
264 <xsl:call-template name=
"part"/>
267 <xsl:text>:
</xsl:text>
268 <xsl:value-of select=
"marc:subfield[@code='v']" />
269 <xsl:choose><xsl:when test=
"position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise></xsl:choose>
275 <!-- Volumes of sets and traced series -->
276 <xsl:if test=
"$materialTypeCode='ST' or substring($controlField008,22,1)='m'">
277 <span class=
"results_summary"><span class=
"label">Volumes:
</span>
280 <xsl:when test=
"$UseControlNumber = '1' and marc:controlfield[@tag=001]">
281 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=rcn:
<xsl:value-of select=
"marc:controlfield[@tag=001]"/></xsl:attribute>
284 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=Title:
<xsl:value-of select=
"translate(marc:datafield[@tag=245]/marc:subfield[@code='a'], '/', '')"/></xsl:attribute>
287 <xsl:text>Show volumes
</xsl:text>
293 <xsl:if test=
"$leader19='c'">
294 <span class=
"results_summary"><span class=
"label">Set:
</span>
295 <xsl:for-each select=
"marc:datafield[@tag=773]">
298 <xsl:when test=
"$UseControlNumber = '1' and marc:subfield[@code='w']">
299 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=Control-number:
<xsl:value-of select=
"marc:subfield[@code='w']"/></xsl:attribute>
302 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=Title:
<xsl:value-of select=
"translate(//marc:datafield[@tag=245]/marc:subfield[@code='a'], '.', '')"/></xsl:attribute>
305 <xsl:value-of select=
"translate(//marc:datafield[@tag=245]/marc:subfield[@code='a'], '.', '')" />
308 <xsl:when test=
"position()=last()"></xsl:when>
309 <xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise>
315 <!-- Publisher Statement: Alternate Graphic Representation (MARC 880) -->
316 <xsl:if test=
"$display880">
317 <xsl:call-template name=
"m880Select">
318 <xsl:with-param name=
"basetags">260</xsl:with-param>
319 <xsl:with-param name=
"codes">abcg
</xsl:with-param>
320 <xsl:with-param name=
"class">results_summary
</xsl:with-param>
321 <xsl:with-param name=
"label">Publisher:
</xsl:with-param>
325 <xsl:if test=
"marc:datafield[@tag=260]">
326 <span class=
"results_summary"><span class=
"label">Publisher:
</span>
327 <xsl:for-each select=
"marc:datafield[@tag=260]">
328 <xsl:if test=
"marc:subfield[@code='b']">
329 <a href=
"/cgi-bin/koha/opac-search.pl?q=pb:{marc:subfield[@code='b']}">
330 <xsl:call-template name=
"subfieldSelect">
331 <xsl:with-param name=
"codes">b
</xsl:with-param>
335 <xsl:text> </xsl:text>
336 <xsl:call-template name=
"chopPunctuation">
337 <xsl:with-param name=
"chopString">
338 <xsl:call-template name=
"subfieldSelect">
339 <xsl:with-param name=
"codes">acg
</xsl:with-param>
343 <xsl:choose><xsl:when test=
"position()=last()"><xsl:text>.
</xsl:text></xsl:when><xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise></xsl:choose>
348 <!-- Edition Statement: Alternate Graphic Representation (MARC 880) -->
349 <xsl:if test=
"$display880">
350 <xsl:call-template name=
"m880Select">
351 <xsl:with-param name=
"basetags">250</xsl:with-param>
352 <xsl:with-param name=
"codes">ab
</xsl:with-param>
353 <xsl:with-param name=
"class">results_summary
</xsl:with-param>
354 <xsl:with-param name=
"label">Edition:
</xsl:with-param>
358 <xsl:if test=
"marc:datafield[@tag=250]">
359 <span class=
"results_summary"><span class=
"label">Edition:
</span>
360 <xsl:for-each select=
"marc:datafield[@tag=250]">
361 <xsl:call-template name=
"chopPunctuation">
362 <xsl:with-param name=
"chopString">
363 <xsl:call-template name=
"subfieldSelect">
364 <xsl:with-param name=
"codes">ab
</xsl:with-param>
368 <xsl:choose><xsl:when test=
"position()=last()"><xsl:text>.
</xsl:text></xsl:when><xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise></xsl:choose>
373 <!-- Description: Alternate Graphic Representation (MARC 880) -->
374 <xsl:if test=
"$display880">
375 <xsl:call-template name=
"m880Select">
376 <xsl:with-param name=
"basetags">300</xsl:with-param>
377 <xsl:with-param name=
"codes">abceg
</xsl:with-param>
378 <xsl:with-param name=
"class">results_summary
</xsl:with-param>
379 <xsl:with-param name=
"label">Description:
</xsl:with-param>
383 <xsl:if test=
"marc:datafield[@tag=300]">
384 <span class=
"results_summary"><span class=
"label">Description:
</span>
385 <xsl:for-each select=
"marc:datafield[@tag=300]">
386 <xsl:call-template name=
"chopPunctuation">
387 <xsl:with-param name=
"chopString">
388 <xsl:call-template name=
"subfieldSelect">
389 <xsl:with-param name=
"codes">abceg
</xsl:with-param>
393 <xsl:choose><xsl:when test=
"position()=last()"><xsl:text>.
</xsl:text></xsl:when><xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise></xsl:choose>
398 <xsl:if test=
"marc:datafield[@tag=020]">
399 <span class=
"results_summary"><span class=
"label">ISBN:
</span>
400 <xsl:for-each select=
"marc:datafield[@tag=020]">
401 <xsl:variable name=
"isbn" select=
"marc:subfield[@code='a']"/>
402 <xsl:value-of select=
"marc:subfield[@code='a']"/>
403 <xsl:choose><xsl:when test=
"position()=last()"><xsl:text>.
</xsl:text></xsl:when><xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise></xsl:choose>
408 <xsl:if test=
"marc:datafield[@tag=022]">
409 <span class=
"results_summary"><span class=
"label">ISSN:
</span>
410 <xsl:for-each select=
"marc:datafield[@tag=022]">
411 <xsl:value-of select=
"marc:subfield[@code='a']"/>
412 <xsl:choose><xsl:when test=
"position()=last()"><xsl:text>.
</xsl:text></xsl:when><xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise></xsl:choose>
417 <!-- Other Title Statement: Alternate Graphic Representation (MARC 880) -->
418 <xsl:if test=
"$display880">
419 <xsl:call-template name=
"m880Select">
420 <xsl:with-param name=
"basetags">246</xsl:with-param>
421 <xsl:with-param name=
"codes">abhfgnp
</xsl:with-param>
422 <xsl:with-param name=
"class">results_summary
</xsl:with-param>
423 <xsl:with-param name=
"label">Other Title:
</xsl:with-param>
427 <xsl:if test=
"marc:datafield[@tag=246]">
428 <span class=
"results_summary"><span class=
"label">Other Title:
</span>
429 <xsl:for-each select=
"marc:datafield[@tag=246]">
430 <xsl:call-template name=
"chopPunctuation">
431 <xsl:with-param name=
"chopString">
432 <xsl:call-template name=
"subfieldSelect">
433 <xsl:with-param name=
"codes">iabhfgnp
</xsl:with-param>
437 <xsl:choose><xsl:when test=
"position()=last()"><xsl:text>.
</xsl:text></xsl:when><xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise></xsl:choose>
442 <!-- Uniform Title Statement: Alternate Graphic Representation (MARC 880) -->
443 <xsl:if test=
"$display880">
444 <xsl:call-template name=
"m880Select">
445 <xsl:with-param name=
"basetags">130,
240</xsl:with-param>
446 <xsl:with-param name=
"codes">adfklmor
</xsl:with-param>
447 <xsl:with-param name=
"class">results_summary
</xsl:with-param>
448 <xsl:with-param name=
"label">Uniform Title:
</xsl:with-param>
452 <xsl:if test=
"marc:datafield[@tag=130]|marc:datafield[@tag=240]|marc:datafield[@tag=730][@ind2!=2]">
453 <span class=
"results_summary"><span class=
"label">Uniform titles:
</span>
454 <xsl:for-each select=
"marc:datafield[@tag=130]|marc:datafield[@tag=240]|marc:datafield[@tag=730][@ind2!=2]">
455 <xsl:variable name=
"str">
456 <xsl:for-each select=
"marc:subfield">
457 <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'])))">
458 <xsl:value-of select=
"text()"/>
459 <xsl:text> </xsl:text>
463 <xsl:call-template name=
"chopPunctuation">
464 <xsl:with-param name=
"chopString">
465 <xsl:value-of select=
"substring($str,1,string-length($str)-1)"/>
469 <xsl:choose><xsl:when test=
"position()=last()"><xsl:text>.
</xsl:text></xsl:when><xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise></xsl:choose>
474 <xsl:if test=
"marc:datafield[substring(@tag, 1, 1) = '6']">
475 <span class=
"results_summary"><span class=
"label">Subject(s):
</span>
476 <xsl:for-each select=
"marc:datafield[substring(@tag, 1, 1) = '6']">
479 <xsl:when test=
"marc:subfield[@code=9] and $UseAuthoritiesForTracings='1'">
480 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=an:
<xsl:value-of select=
"marc:subfield[@code=9]"/></xsl:attribute>
482 <xsl:when test=
"$TraceSubjectSubdivisions='1'">
483 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=
<xsl:call-template name=
"subfieldSelect">
484 <xsl:with-param name=
"codes">abcdfgklmnopqrstvxyz
</xsl:with-param>
485 <xsl:with-param name=
"delimeter"> and
</xsl:with-param>
486 <xsl:with-param name=
"prefix">(su
<xsl:value-of select=
"$SubjectModifier"/>:{
</xsl:with-param>
487 <xsl:with-param name=
"suffix">})
</xsl:with-param>
492 <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>
495 <xsl:call-template name=
"chopPunctuation">
496 <xsl:with-param name=
"chopString">
497 <xsl:call-template name=
"subfieldSelect">
498 <xsl:with-param name=
"codes">abcdfgklmnopqrstvxyz
</xsl:with-param>
499 <xsl:with-param name=
"subdivCodes">vxyz
</xsl:with-param>
500 <xsl:with-param name=
"subdivDelimiter">--
</xsl:with-param>
506 <xsl:when test=
"position()=last()"></xsl:when>
507 <xsl:otherwise> |
</xsl:otherwise>
514 <xsl:if test=
"marc:datafield[@tag=856]">
515 <span class=
"results_summary"><span class=
"label">Online Resources:
</span>
516 <xsl:for-each select=
"marc:datafield[@tag=856]">
517 <a><xsl:attribute name=
"href"><xsl:value-of select=
"marc:subfield[@code='u']"/></xsl:attribute>
518 <xsl:if test=
"$OPACURLOpenInNewWindow='1'">
519 <xsl:attribute name=
"target">_blank
</xsl:attribute>
522 <xsl:when test=
"marc:subfield[@code='y' or @code='3' or @code='z']">
523 <xsl:call-template name=
"subfieldSelect">
524 <xsl:with-param name=
"codes">y3z
</xsl:with-param>
527 <xsl:when test=
"not(marc:subfield[@code='y']) and not(marc:subfield[@code='3']) and not(marc:subfield[@code='z'])">
529 <xsl:when test=
"$URLLinkText!=''">
530 <xsl:value-of select=
"$URLLinkText"/>
533 <xsl:text>Click here to access online
</xsl:text>
540 <xsl:when test=
"position()=last()"><xsl:text> </xsl:text></xsl:when>
541 <xsl:otherwise> |
</xsl:otherwise>
548 <xsl:if test=
"marc:datafield[@tag=530]">
549 <xsl:for-each select=
"marc:datafield[@tag=530]">
550 <span class=
"results_summary additionalforms">
551 <xsl:call-template name=
"subfieldSelect">
552 <xsl:with-param name=
"codes">abcd
</xsl:with-param>
554 <xsl:for-each select=
"marc:subfield[@code='u']">
555 <a><xsl:attribute name=
"href"><xsl:value-of select=
"text()"/></xsl:attribute>
556 <xsl:if test=
"$OPACURLOpenInNewWindow='1'">
557 <xsl:attribute name=
"target">_blank
</xsl:attribute>
559 <xsl:value-of select=
"text()"/>
567 <xsl:if test=
"marc:datafield[@tag=505]">
568 <xsl:for-each select=
"marc:datafield[@tag=505]">
569 <span class=
"results_summary contents">
571 <xsl:when test=
"@ind1=1">
572 <span class=
"label">Incomplete contents:
</span>
574 <xsl:when test=
"@ind1=1">
575 <span class=
"label">Partial contents:
</span>
578 <span class=
"label">Contents:
</span>
582 <xsl:when test=
"@ind2=0">
583 <xsl:call-template name=
"subfieldSelect">
584 <xsl:with-param name=
"codes">tru
</xsl:with-param>
588 <xsl:call-template name=
"subfieldSelect">
589 <xsl:with-param name=
"codes">au
</xsl:with-param>
598 <xsl:if test=
"marc:datafield[@tag=583]">
599 <xsl:for-each select=
"marc:datafield[@tag=583]">
600 <xsl:if test=
"@ind1=1 or @ind1=' '">
601 <span class=
"results_summary actionnote">
603 <xsl:when test=
"marc:subfield[@code='z']">
604 <xsl:value-of select=
"marc:subfield[@code='z']"/>
607 <xsl:call-template name=
"subfieldSelect">
608 <xsl:with-param name=
"codes">abcdefgijklnou
</xsl:with-param>
618 <xsl:if test=
"marc:datafield[@tag=586]">
619 <xsl:for-each select=
"marc:datafield[@tag=586]">
620 <span class=
"results_summary awardsnote">
621 <xsl:if test=
"@ind1=' '">
622 <span class=
"label">Awards:
</span>
624 <xsl:value-of select=
"marc:subfield[@code='a']"/>
630 <xsl:if test=
"marc:datafield[@tag=773]">
631 <xsl:for-each select=
"marc:datafield[@tag=773]">
632 <xsl:if test=
"@ind1=0">
633 <span class=
"results_summary"><span class=
"label">
635 <xsl:when test=
"@ind2=' '">
638 <xsl:when test=
"@ind2=8">
639 <xsl:if test=
"marc:subfield[@code='i']">
640 <xsl:value-of select=
"marc:subfield[@code='i']"/>
645 <xsl:variable name=
"f773">
646 <xsl:call-template name=
"chopPunctuation"><xsl:with-param name=
"chopString"><xsl:call-template name=
"subfieldSelect">
647 <xsl:with-param name=
"codes">at
</xsl:with-param>
648 </xsl:call-template></xsl:with-param></xsl:call-template>
651 <xsl:when test=
"$UseControlNumber = '1' and marc:subfield[@code='w']">
652 <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>
653 <xsl:value-of select=
"translate($f773, '()', '')"/><xsl:if test=
"marc:subfield[@code='g']"><xsl:text> </xsl:text><xsl:value-of select=
"marc:subfield[@code='g']"/></xsl:if>
657 <a><xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=Title:
<xsl:value-of select=
"translate($f773, '()', '')"/></xsl:attribute>
658 <xsl:value-of select=
"$f773"/><xsl:if test=
"marc:subfield[@code='g']"><xsl:text> </xsl:text><xsl:value-of select=
"marc:subfield[@code='g']"/></xsl:if>
664 <xsl:if test=
"marc:subfield[@code='n']">
665 <span class=
"results_summary"><xsl:value-of select=
"marc:subfield[@code='n']"/></span>
672 <xsl:for-each select=
"marc:datafield[@tag=520]">
673 <span class=
"results_summary"><span class=
"label">
675 <xsl:when test=
"@ind1=0"><xsl:text>Subject:
</xsl:text></xsl:when>
676 <xsl:when test=
"@ind1=1"><xsl:text>Review:
</xsl:text></xsl:when>
677 <xsl:when test=
"@ind1=2"><xsl:text>Scope and content:
</xsl:text></xsl:when>
678 <xsl:when test=
"@ind1=3"><xsl:text>Abstract:
</xsl:text></xsl:when>
679 <xsl:when test=
"@ind1=4"><xsl:text>Content advice:
</xsl:text></xsl:when>
680 <xsl:otherwise><xsl:text>Summary:
</xsl:text></xsl:otherwise>
683 <xsl:call-template name=
"subfieldSelect">
684 <xsl:with-param name=
"codes">abcu
</xsl:with-param>
689 <!-- 866 holdings public note -->
690 <xsl:if test=
"marc:datafield[@tag=866]">
691 <span class=
"results_summary"><span class=
"label">Holdings Note:
</span>
692 <xsl:for-each select=
"marc:datafield[@tag=866]">
693 <xsl:value-of select=
"marc:subfield[@code='z']"/>
694 <xsl:choose><xsl:when test=
"position()=last()"><xsl:text>.
</xsl:text></xsl:when><xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise></xsl:choose>
699 <!-- 775 Other Edition -->
700 <xsl:if test=
"marc:datafield[@tag=775]">
701 <span class=
"results_summary"><span class=
"label">Other Editions:
</span>
702 <xsl:for-each select=
"marc:datafield[@tag=775]">
703 <xsl:if test=
"marc:subfield[@code='i']">
704 <xsl:call-template name=
"subfieldSelect">
705 <xsl:with-param name=
"codes">i
</xsl:with-param>
707 <xsl:text>:
</xsl:text>
711 <xsl:when test=
"$UseControlNumber = '1' and marc:subfield[@code='w']">
712 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=Control-number:
<xsl:value-of select=
"marc:subfield[@code='w']"/></xsl:attribute>
715 <xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=Title:
<xsl:value-of select=
"translate(marc:subfield[@code='t'], '.', '')"/></xsl:attribute>
718 <xsl:call-template name=
"subfieldSelect">
719 <xsl:with-param name=
"codes">t
</xsl:with-param>
723 <xsl:when test=
"position()=last()"></xsl:when>
724 <xsl:otherwise><xsl:text>;
</xsl:text></xsl:otherwise>
731 <xsl:if test=
"marc:datafield[@tag=780]">
732 <xsl:for-each select=
"marc:datafield[@tag=780]">
733 <xsl:if test=
"@ind1=0">
734 <span class=
"results_summary">
736 <xsl:when test=
"@ind2=0">
737 <span class=
"label">Continues:
</span>
739 <xsl:when test=
"@ind2=1">
740 <span class=
"label">Continues in part:
</span>
742 <xsl:when test=
"@ind2=2">
743 <span class=
"label">Supersedes:
</span>
745 <xsl:when test=
"@ind2=3">
746 <span class=
"label">Supersedes in part:
</span>
748 <xsl:when test=
"@ind2=4">
749 <span class=
"label">Formed by the union: ... and: ...
</span>
751 <xsl:when test=
"@ind2=5">
752 <span class=
"label">Absorbed:
</span>
754 <xsl:when test=
"@ind2=6">
755 <span class=
"label">Absorbed in part:
</span>
757 <xsl:when test=
"@ind2=7">
758 <span class=
"label">Separated from:
</span>
761 <xsl:variable name=
"f780">
762 <xsl:call-template name=
"subfieldSelect">
763 <xsl:with-param name=
"codes">at
</xsl:with-param>
767 <xsl:when test=
"$UseControlNumber = '1' and marc:subfield[@code='w']">
768 <a href=
"/cgi-bin/koha/opac-search.pl?q=Control-number:{marc:subfield[@code='w']}">
769 <xsl:value-of select=
"translate($f780, '()', '')"/>
773 <a><xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=
<xsl:value-of select=
"translate($f780, '()', '')"/></xsl:attribute>
774 <xsl:value-of select=
"translate($f780, '()', '')"/>
780 <xsl:if test=
"marc:subfield[@code='n']">
781 <span class=
"results_summary"><xsl:value-of select=
"marc:subfield[@code='n']"/></span>
789 <xsl:if test=
"marc:datafield[@tag=785]">
790 <xsl:for-each select=
"marc:datafield[@tag=785]">
791 <xsl:if test=
"@ind1=0">
792 <span class=
"results_summary">
794 <xsl:when test=
"@ind2=0">
795 <span class=
"label">Continued by:
</span>
797 <xsl:when test=
"@ind2=1">
798 <span class=
"label">Continued in part by:
</span>
800 <xsl:when test=
"@ind2=2">
801 <span class=
"label">Superseded by:
</span>
803 <xsl:when test=
"@ind2=3">
804 <span class=
"label">Superseded in part by:
</span>
806 <xsl:when test=
"@ind2=4">
807 <span class=
"label">Absorbed by:
</span>
809 <xsl:when test=
"@ind2=5">
810 <span class=
"label">Absorbed in part by:
</span>
812 <xsl:when test=
"@ind2=6">
813 <span class=
"label">Split into .. and ...:
</span>
815 <xsl:when test=
"@ind2=7">
816 <span class=
"label">Merged with ... to form ...
</span>
818 <xsl:when test=
"@ind2=8">
819 <span class=
"label">Changed back to:
</span>
823 <xsl:variable name=
"f785">
824 <xsl:call-template name=
"subfieldSelect">
825 <xsl:with-param name=
"codes">at
</xsl:with-param>
830 <xsl:when test=
"$UseControlNumber = '1' and marc:subfield[@code='w']">
831 <a href=
"/cgi-bin/koha/opac-search.pl?q=Control-number:{marc:subfield[@code='w']}">
832 <xsl:value-of select=
"translate($f785, '()', '')"/>
836 <a><xsl:attribute name=
"href">/cgi-bin/koha/opac-search.pl?q=
<xsl:value-of select=
"translate($f785, '()', '')"/></xsl:attribute>
837 <xsl:value-of select=
"translate($f785, '()', '')"/>
844 <xsl:if test=
"marc:subfield[@code='n']">
845 <span class=
"results_summary"><xsl:value-of select=
"marc:subfield[@code='n']"/></span>
854 <xsl:template name=
"nameABCDQ">
855 <xsl:call-template name=
"chopPunctuation">
856 <xsl:with-param name=
"chopString">
857 <xsl:call-template name=
"subfieldSelect">
858 <xsl:with-param name=
"codes">aq
</xsl:with-param>
861 <xsl:with-param name=
"punctuation">
862 <xsl:text>:,;/
</xsl:text>
865 <xsl:call-template name=
"termsOfAddress"/>
868 <xsl:template name=
"nameABCDN">
869 <xsl:for-each select=
"marc:subfield[@code='a']">
870 <xsl:call-template name=
"chopPunctuation">
871 <xsl:with-param name=
"chopString" select=
"."/>
874 <xsl:for-each select=
"marc:subfield[@code='b']">
875 <xsl:value-of select=
"."/>
877 <xsl:if test=
"marc:subfield[@code='c'] or marc:subfield[@code='d'] or marc:subfield[@code='n']">
878 <xsl:call-template name=
"subfieldSelect">
879 <xsl:with-param name=
"codes">cdn
</xsl:with-param>
884 <xsl:template name=
"nameACDEQ">
885 <xsl:call-template name=
"subfieldSelect">
886 <xsl:with-param name=
"codes">acdeq
</xsl:with-param>
889 <xsl:template name=
"termsOfAddress">
890 <xsl:if test=
"marc:subfield[@code='b' or @code='c']">
891 <xsl:call-template name=
"chopPunctuation">
892 <xsl:with-param name=
"chopString">
893 <xsl:call-template name=
"subfieldSelect">
894 <xsl:with-param name=
"codes">bc
</xsl:with-param>
901 <xsl:template name=
"part">
902 <xsl:variable name=
"partNumber">
903 <xsl:call-template name=
"specialSubfieldSelect">
904 <xsl:with-param name=
"axis">n
</xsl:with-param>
905 <xsl:with-param name=
"anyCodes">n
</xsl:with-param>
906 <xsl:with-param name=
"afterCodes">fghkdlmor
</xsl:with-param>
909 <xsl:variable name=
"partName">
910 <xsl:call-template name=
"specialSubfieldSelect">
911 <xsl:with-param name=
"axis">p
</xsl:with-param>
912 <xsl:with-param name=
"anyCodes">p
</xsl:with-param>
913 <xsl:with-param name=
"afterCodes">fghkdlmor
</xsl:with-param>
916 <xsl:if test=
"string-length(normalize-space($partNumber))">
917 <xsl:call-template name=
"chopPunctuation">
918 <xsl:with-param name=
"chopString" select=
"$partNumber"/>
921 <xsl:if test=
"string-length(normalize-space($partName))">
922 <xsl:call-template name=
"chopPunctuation">
923 <xsl:with-param name=
"chopString" select=
"$partName"/>
928 <xsl:template name=
"specialSubfieldSelect">
929 <xsl:param name=
"anyCodes"/>
930 <xsl:param name=
"axis"/>
931 <xsl:param name=
"beforeCodes"/>
932 <xsl:param name=
"afterCodes"/>
933 <xsl:variable name=
"str">
934 <xsl:for-each select=
"marc:subfield">
935 <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])">
936 <xsl:value-of select=
"text()"/>
937 <xsl:text> </xsl:text>
941 <xsl:value-of select=
"substring($str,1,string-length($str)-1)"/>