adding famfamfam iconset, improving isbn for amazon content, etc.
[koha.git] / koha-tmpl / opac-tmpl / prog / en / xslt / MARC21slim2OPACResults.xsl
blob00336610e76751c159a5e1bb9406a413e317af46
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- $Id: MARC21slim2DC.xsl,v 1.1 2003/01/06 08:20:27 adam Exp $ -->
3 <xsl:stylesheet version="1.0"
4 xmlns:marc="http://www.loc.gov/MARC21/slim"
5 xmlns:items="http://www.koha.org/items"
6 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
7 exclude-result-prefixes="marc items">
8 <xsl:import href="MARC21slimUtils.xsl"/>
9 <xsl:output method="html" indent="yes"/>
10 <xsl:key name="item-by-status" match="items:item" use="items:status"/>
11 <xsl:key name="item-by-status-and-branch" match="items:item" use="concat(items:status, ' ', items:homebranch)"/>
13 <xsl:template match="/">
14 <xsl:apply-templates/>
15 </xsl:template>
16 <xsl:template match="marc:record">
17 <xsl:variable name="leader" select="marc:leader"/>
18 <xsl:variable name="leader6" select="substring($leader,7,1)"/>
19 <xsl:variable name="leader7" select="substring($leader,8,1)"/>
20 <xsl:variable name="biblionumber" select="marc:datafield[@tag=999]/marc:subfield[@code='c']"/>
21 <xsl:variable name="isbn" select="marc:datafield[@tag=020]/marc:subfield[@code='a']"/>
22 <xsl:variable name="controlField008" select="marc:controlfield[@tag=008]"/>
23 <xsl:variable name="typeOf008">
24 <xsl:choose>
25 <xsl:when test="$leader6='a'">
26 <xsl:choose>
27 <xsl:when test="$leader7='a' or $leader7='c' or $leader7='d' or $leader7='m'">BK</xsl:when>
28 <xsl:when test="$leader7='b' or $leader7='i' or $leader7='s'">SE</xsl:when>
29 </xsl:choose>
30 </xsl:when>
31 <xsl:when test="$leader6='t'">BK</xsl:when>
32 <xsl:when test="$leader6='p'">MM</xsl:when>
33 <xsl:when test="$leader6='m'">CF</xsl:when>
34 <xsl:when test="$leader6='e' or $leader6='f'">MP</xsl:when>
35 <xsl:when test="$leader6='g' or $leader6='k' or $leader6='o' or $leader6='r'">VM</xsl:when>
36 <xsl:when test="$leader6='c' or $leader6='d' or $leader6='i' or $leader6='j'">MU</xsl:when>
37 </xsl:choose>
38 </xsl:variable>
39 <xsl:variable name="controlField008-23" select="substring($controlField008,24,1)"/>
40 <xsl:variable name="controlField008-21" select="substring($controlField008,22,1)"/>
41 <xsl:variable name="controlField008-22" select="substring($controlField008,23,1)"/>
42 <xsl:variable name="controlField008-24" select="substring($controlField008,25,4)"/>
43 <xsl:variable name="controlField008-26" select="substring($controlField008,27,1)"/>
44 <xsl:variable name="controlField008-29" select="substring($controlField008,30,1)"/>
45 <xsl:variable name="controlField008-34" select="substring($controlField008,35,1)"/>
46 <xsl:variable name="controlField008-33" select="substring($controlField008,34,1)"/>
47 <xsl:variable name="controlField008-30-31" select="substring($controlField008,31,2)"/>
49 <xsl:variable name="physicalDescription">
50 <!--3.2 change tmee 007/11 -->
51 <xsl:if test="$typeOf008='CF' and marc:controlfield[@tag=007][substring(.,12,1)='a']">
52 reformatted digital
53 </xsl:if>
54 <xsl:if test="$typeOf008='CF' and marc:controlfield[@tag=007][substring(.,12,1)='b']">
55 digitized microfilm
56 </xsl:if>
57 <xsl:if test="$typeOf008='CF' and marc:controlfield[@tag=007][substring(.,12,1)='d']">
58 digitized other analog
59 </xsl:if>
61 <xsl:variable name="check008-23">
62 <xsl:if test="$typeOf008='BK' or $typeOf008='MU' or $typeOf008='SE' or $typeOf008='MM'">
63 <xsl:value-of select="true()"></xsl:value-of>
64 </xsl:if>
65 </xsl:variable>
66 <xsl:variable name="check008-29">
67 <xsl:if test="$typeOf008='MP' or $typeOf008='VM'">
68 <xsl:value-of select="true()"></xsl:value-of>
69 </xsl:if>
70 </xsl:variable>
71 <xsl:choose>
72 <xsl:when test="($check008-23 and $controlField008-23='f') or ($check008-29 and $controlField008-29='f')">
73 braille
74 </xsl:when>
75 <xsl:when test="($controlField008-23=' ' and ($leader6='c' or $leader6='d')) or (($typeOf008='BK' or $typeOf008='SE') and ($controlField008-23=' ' or $controlField008='r'))">
76 print
77 </xsl:when>
78 <xsl:when test="$leader6 = 'm' or ($check008-23 and $controlField008-23='s') or ($check008-29 and $controlField008-29='s')">
79 <img src="/opac-tmpl/prog/famfamfam/silk/computer.png"/> electronic
80 </xsl:when>
81 <xsl:when test="($check008-23 and $controlField008-23='b') or ($check008-29 and $controlField008-29='b')">
82 microfiche
83 </xsl:when>
84 <xsl:when test="($check008-23 and $controlField008-23='a') or ($check008-29 and $controlField008-29='a')">
85 microfilm
86 </xsl:when>
87 </xsl:choose>
88 <!-- 1/04 fix -->
89 <xsl:if test="marc:datafield[@tag=130]/marc:subfield[@code='h']">
90 <xsl:call-template name="chopBrackets">
91 <xsl:with-param name="chopString">
92 <xsl:value-of select="marc:datafield[@tag=130]/marc:subfield[@code='h']"></xsl:value-of>
93 </xsl:with-param>
94 </xsl:call-template>
95 </xsl:if>
96 <xsl:if test="marc:datafield[@tag=240]/marc:subfield[@code='h']">
97 <xsl:call-template name="chopBrackets">
98 <xsl:with-param name="chopString">
99 <xsl:value-of select="marc:datafield[@tag=240]/marc:subfield[@code='h']"></xsl:value-of>
100 </xsl:with-param>
101 </xsl:call-template>
102 </xsl:if>
103 <xsl:if test="marc:datafield[@tag=242]/marc:subfield[@code='h']">
104 <xsl:call-template name="chopBrackets">
105 <xsl:with-param name="chopString">
106 <xsl:value-of select="marc:datafield[@tag=242]/marc:subfield[@code='h']"></xsl:value-of>
107 </xsl:with-param>
108 </xsl:call-template>
109 </xsl:if>
110 <xsl:if test="marc:datafield[@tag=245]/marc:subfield[@code='h']">
111 <xsl:call-template name="chopBrackets">
112 <xsl:with-param name="chopString">
113 <xsl:value-of select="marc:datafield[@tag=245]/marc:subfield[@code='h']"></xsl:value-of>
114 </xsl:with-param>
115 </xsl:call-template>
116 </xsl:if>
117 <xsl:if test="marc:datafield[@tag=246]/marc:subfield[@code='h']">
118 <xsl:call-template name="chopBrackets">
119 <xsl:with-param name="chopString">
120 <xsl:value-of select="marc:datafield[@tag=246]/marc:subfield[@code='h']"></xsl:value-of>
121 </xsl:with-param>
122 </xsl:call-template>
123 </xsl:if>
124 <xsl:if test="marc:datafield[@tag=730]/marc:subfield[@code='h']">
125 <xsl:call-template name="chopBrackets">
126 <xsl:with-param name="chopString">
127 <xsl:value-of select="marc:datafield[@tag=730]/marc:subfield[@code='h']"></xsl:value-of>
128 </xsl:with-param>
129 </xsl:call-template>
130 </xsl:if>
131 <xsl:for-each select="marc:datafield[@tag=256]/marc:subfield[@code='a']">
132 <xsl:value-of select="."></xsl:value-of>
133 </xsl:for-each>
134 <xsl:for-each select="marc:controlfield[@tag=007][substring(text(),1,1)='c']">
135 <xsl:choose>
136 <xsl:when test="substring(text(),14,1)='a'">
137 access
138 </xsl:when>
139 <xsl:when test="substring(text(),14,1)='p'">
140 preservation
141 </xsl:when>
142 <xsl:when test="substring(text(),14,1)='r'">
143 replacement
144 </xsl:when>
145 </xsl:choose>
146 </xsl:for-each>
148 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='b']">
149 chip cartridge
150 </xsl:if>
151 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='c']">
152 <img src="/opac-tmpl/prog/famfamfam/silk/cd.png"/> computer optical disc cartridge
153 </xsl:if>
154 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='j']">
155 magnetic disc
156 </xsl:if>
157 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='m']">
158 magneto-optical disc
159 </xsl:if>
160 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='o']">
161 <img src="/opac-tmpl/prog/famfamfam/silk/cd.png"/> optical disc
162 </xsl:if>
163 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='r']">
164 <img src="/opac-tmpl/prog/famfamfam/silk/drive_remote.png"/> remote
165 </xsl:if>
166 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='a']">
167 tape cartridge
168 </xsl:if>
169 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='f']">
170 tape cassette
171 </xsl:if>
172 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='h']">
173 tape reel
174 </xsl:if>
176 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='d'][substring(text(),2,1)='a']">
177 <img src="/opac-tmpl/prog/famfamfam/silk/globe.png"/> celestial globe
178 </xsl:if>
179 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='d'][substring(text(),2,1)='e']">
180 <img src="/opac-tmpl/prog/famfamfam/silk/globe.png"/> earth moon globe
181 </xsl:if>
182 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='d'][substring(text(),2,1)='b']">
183 <img src="/opac-tmpl/prog/famfamfam/silk/globe.png"/> planetary or lunar globe
184 </xsl:if>
185 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='d'][substring(text(),2,1)='c']">
186 <img src="/opac-tmpl/prog/famfamfam/silk/globe.png"/> terrestrial globe
187 </xsl:if>
189 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='o'][substring(text(),2,1)='o']">
191 </xsl:if>
193 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='d']">
194 atlas
195 </xsl:if>
196 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='g']">
197 diagram
198 </xsl:if>
199 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='j']">
201 </xsl:if>
202 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='q']">
203 model
204 </xsl:if>
205 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='k']">
206 profile
207 </xsl:if>
208 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='r']">
209 remote-sensing image
210 </xsl:if>
211 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='s']">
212 section
213 </xsl:if>
214 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='y']">
215 view
216 </xsl:if>
218 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='a']">
219 aperture card
220 </xsl:if>
221 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='e']">
222 microfiche
223 </xsl:if>
224 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='f']">
225 microfiche cassette
226 </xsl:if>
227 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='b']">
228 microfilm cartridge
229 </xsl:if>
230 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='c']">
231 microfilm cassette
232 </xsl:if>
233 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='d']">
234 microfilm reel
235 </xsl:if>
236 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='g']">
237 microopaque
238 </xsl:if>
240 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='m'][substring(text(),2,1)='c']">
241 film cartridge
242 </xsl:if>
243 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='m'][substring(text(),2,1)='f']">
244 film cassette
245 </xsl:if>
246 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='m'][substring(text(),2,1)='r']">
247 film reel
248 </xsl:if>
249 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='n']">
250 <img src="/opac-tmpl/prog/famfamfam/silk/chart_curve.png"/> chart
251 </xsl:if>
252 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='c']">
253 collage
254 </xsl:if>
255 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='d']">
256 <img src="/opac-tmpl/prog/famfamfam/silk/pencile.png"/> drawing
257 </xsl:if>
258 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='o']">
259 <img src="/opac-tmpl/prog/famfamfam/silk/note.png"/> flash card
260 </xsl:if>
261 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='e']">
262 <img src="/opac-tmpl/prog/famfamfam/silk/paintbrush.png"/> painting
263 </xsl:if>
264 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='f']">
265 photomechanical print
266 </xsl:if>
267 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='g']">
268 photonegative
269 </xsl:if>
270 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='h']">
271 photoprint
272 </xsl:if>
273 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='i']">
274 <img src="/opac-tmpl/prog/famfamfam/silk/picture.png"/> picture
275 </xsl:if>
276 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='j']">
277 print
278 </xsl:if>
279 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='l']">
280 technical drawing
281 </xsl:if>
282 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='q'][substring(text(),2,1)='q']">
283 <img src="/opac-tmpl/prog/famfamfam/silk/script.png"/> notated music
284 </xsl:if>
285 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='d']">
286 filmslip
287 </xsl:if>
288 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='c']">
289 filmstrip cartridge
290 </xsl:if>
291 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='o']">
292 filmstrip roll
293 </xsl:if>
294 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='f']">
295 other filmstrip type
296 </xsl:if>
297 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='s']">
298 <img src="/opac-tmpl/prog/famfamfam/silk/pictures.png"/> slide
299 </xsl:if>
300 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='t']">
301 transparency
302 </xsl:if>
303 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='r'][substring(text(),2,1)='r']">
304 remote-sensing image
305 </xsl:if>
306 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='e']">
307 cylinder
308 </xsl:if>
309 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='q']">
310 roll
311 </xsl:if>
312 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='g']">
313 sound cartridge
314 </xsl:if>
315 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='s']">
316 sound cassette
317 </xsl:if>
318 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='d']">
319 <img src="/opac-tmpl/prog/famfamfam/silk/cd.png"/> sound disc
320 </xsl:if>
321 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='t']">
322 sound-tape reel
323 </xsl:if>
324 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='i']">
325 sound-track film
326 </xsl:if>
327 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='w']">
328 wire recording
329 </xsl:if>
331 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='f'][substring(text(),2,1)='c']">
332 braille
333 </xsl:if>
334 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='f'][substring(text(),2,1)='b']">
335 combination
336 </xsl:if>
337 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='f'][substring(text(),2,1)='a']">
338 moon
339 </xsl:if>
340 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='f'][substring(text(),2,1)='d']">
341 tactile, with no writing system
342 </xsl:if>
344 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='t'][substring(text(),2,1)='c']">
345 braille
346 </xsl:if>
347 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='t'][substring(text(),2,1)='b']">
348 <img src="/opac-tmpl/prog/famfamfam/silk/magnifier.png"/> large print
349 </xsl:if>
350 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='t'][substring(text(),2,1)='a']">
351 regular print
352 </xsl:if>
353 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='t'][substring(text(),2,1)='d']">
354 text in looseleaf binder
355 </xsl:if>
357 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='v'][substring(text(),2,1)='c']">
358 videocartridge
359 </xsl:if>
360 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='v'][substring(text(),2,1)='f']">
361 videocassette
362 </xsl:if>
363 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='v'][substring(text(),2,1)='d']">
364 <img src="/opac-tmpl/prog/famfamfam/silk/dvd.png"/> videodisc
365 </xsl:if>
366 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='v'][substring(text(),2,1)='r']">
367 videoreel
368 </xsl:if>
370 <xsl:for-each select="marc:datafield[@tag=856]/marc:subfield[@code='q'][string-length(.)>1]">
371 <xsl:value-of select="."></xsl:value-of>
372 </xsl:for-each>
373 <xsl:for-each select="marc:datafield[@tag=300]">
374 <xsl:call-template name="subfieldSelect">
375 <xsl:with-param name="codes">abce</xsl:with-param>
376 </xsl:call-template>
377 </xsl:for-each>
378 </xsl:variable>
380 <td style="vertical-align:top;">
381 <a><xsl:attribute name="href">/cgi-bin/koha/opac-detail.pl?biblionumber=<xsl:value-of select="$biblionumber"/></xsl:attribute>
383 <xsl:if test="marc:datafield[@tag=245]">
384 <xsl:for-each select="marc:datafield[@tag=245]">
385 <xsl:variable name="title">
386 <xsl:choose>
387 <xsl:when test="marc:subfield[@code='b']">
388 <xsl:call-template name="specialSubfieldSelect">
389 <xsl:with-param name="axis">b</xsl:with-param>
390 <xsl:with-param name="beforeCodes">afghk</xsl:with-param>
391 </xsl:call-template>
392 </xsl:when>
393 <xsl:otherwise>
394 <xsl:call-template name="subfieldSelect">
395 <xsl:with-param name="codes">abfgk</xsl:with-param>
396 </xsl:call-template>
397 </xsl:otherwise>
398 </xsl:choose>
399 </xsl:variable>
400 <xsl:variable name="titleChop">
401 <xsl:call-template name="chopPunctuation">
402 <xsl:with-param name="chopString">
403 <xsl:value-of select="$title"/>
404 </xsl:with-param>
405 </xsl:call-template>
406 </xsl:variable>
407 <xsl:value-of select="$titleChop"/>
408 <xsl:if test="marc:subfield[@code='b']">
409 <xsl:text> : </xsl:text>
410 <xsl:call-template name="chopPunctuation">
411 <xsl:with-param name="chopString">
412 <xsl:call-template name="specialSubfieldSelect">
413 <xsl:with-param name="axis">b</xsl:with-param>
414 <xsl:with-param name="anyCodes">b</xsl:with-param>
415 <xsl:with-param name="afterCodes">afghk</xsl:with-param>
416 </xsl:call-template>
417 </xsl:with-param>
418 </xsl:call-template>
419 </xsl:if><xsl:text> </xsl:text>
420 <xsl:call-template name="part"/>
421 <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
422 </xsl:for-each>
423 </xsl:if>
424 </a>
427 <xsl:choose>
428 <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]">
431 <xsl:for-each select="marc:datafield[@tag=100 or @tag=700]">
432 <xsl:choose>
433 <xsl:when test="position()=last()">
434 <xsl:call-template name="nameABCDQ"/>.
435 </xsl:when>
436 <xsl:otherwise>
437 <xsl:call-template name="nameABCDQ"/>;
438 </xsl:otherwise>
439 </xsl:choose>
440 </xsl:for-each>
442 <xsl:for-each select="marc:datafield[@tag=110 or @tag=710]">
443 <xsl:choose>
444 <xsl:when test="position()=last()">
445 <xsl:call-template name="nameABCDN"/>.
446 </xsl:when>
447 <xsl:otherwise>
448 <xsl:call-template name="nameABCDN"/>;
449 </xsl:otherwise>
450 </xsl:choose>
451 </xsl:for-each>
453 <xsl:for-each select="marc:datafield[@tag=111 or @tag=711]">
454 <xsl:choose>
455 <xsl:when test="position()=last()">
456 <xsl:call-template name="nameACDEQ"/>.
457 </xsl:when>
458 <xsl:otherwise>
459 <xsl:call-template name="nameACDEQ"/>;
460 </xsl:otherwise>
461 </xsl:choose>
462 </xsl:for-each>
463 </xsl:when>
464 </xsl:choose>
465 </p>
466 <span class="results_summary">
467 <xsl:if test="$typeOf008">
468 <span class="label">Type: </span>
469 <xsl:choose>
470 <xsl:when test="$leader6='a'">
471 <xsl:choose>
472 <xsl:when test="$leader7='a' or $leader7='c' or $leader7='d' or $leader7='m'"><img src="/opac-tmpl/prog/famfamfam/silk/book.png"/> Book</xsl:when>
473 <xsl:when test="$leader7='b' or $leader7='i' or $leader7='s'"><img src="/opac-tmpl/prog/famfamfam/silk/newspaper.png"/> Serial</xsl:when>
474 </xsl:choose>
475 </xsl:when>
476 <xsl:when test="$leader6='t'"><img src="/opac-tmpl/prog/famfamfam/silk/book.png"/> Book</xsl:when>
477 <xsl:when test="$leader6='p'"><img src="/opac-tmpl/prog/famfamfam/silk/report_disk.png"/>Mixed Materials</xsl:when>
478 <xsl:when test="$leader6='m'"><img src="/opac-tmpl/prog/famfamfam/silk/disk.png"/> Computer File</xsl:when>
479 <xsl:when test="$leader6='e' or $leader6='f'"><img src="/opac-tmpl/prog/famfamfam/silk/map.png"/> Map</xsl:when>
480 <xsl:when test="$leader6='g' or $leader6='k' or $leader6='o' or $leader6='r'"><img src="/opac-tmpl/prog/famfamfam/silk/film.png"/> Visual Material</xsl:when>
481 <xsl:when test="$leader6='c' or $leader6='d' or $leader6='i' or $leader6='j'"><img src="/opac-tmpl/prog/famfamfam/silk/sound.png"/> Sound</xsl:when>
482 </xsl:choose>
484 <xsl:if test="string-length(normalize-space($physicalDescription))">
485 <span class="label">; Format: </span><xsl:copy-of select="$physicalDescription"></xsl:copy-of>
486 </xsl:if>
488 </xsl:if>
490 <xsl:if test="$controlField008-21 or $controlField008-22 or $controlField008-24 or $controlField008-26 or $controlField008-29 or $controlField008-34 or $controlField008-33 or $controlField008-30-31 or $controlField008-33">
492 <span class="label"> Genre: </span>
493 <xsl:if test="$typeOf008='SE'">
494 <xsl:choose>
495 <xsl:when test="$controlField008-21='d'">
496 <img src="/opac-tmpl/prog/famfamfam/silk/database.png"/> database;
497 </xsl:when>
498 <xsl:when test="$controlField008-21='l'">
499 loose-leaf;
500 </xsl:when>
501 <xsl:when test="$controlField008-21='m'">
502 series;
503 </xsl:when>
504 <xsl:when test="$controlField008-21='n'">
505 newspaper;
506 </xsl:when>
507 <xsl:when test="$controlField008-21='p'">
508 periodical;
509 </xsl:when>
510 <xsl:when test="$controlField008-21='w'">
511 <img src="/opac-tmpl/prog/famfamfam/silk/world_link.png"/> web site;
512 </xsl:when>
513 </xsl:choose>
514 </xsl:if>
515 <xsl:if test="$typeOf008='BK' or $typeOf008='SE'">
516 <xsl:choose>
517 <xsl:when test="contains($controlField008-24,'a')">
518 abstract or summary;
519 </xsl:when>
520 <xsl:when test="contains($controlField008-24,'b')">
521 <img src="/opac-tmpl/prog/famfamfam/silk/text_list_bullets.png"/> bibliography;
522 </xsl:when>
523 <xsl:when test="contains($controlField008-24,'c')">
524 catalog;
525 </xsl:when>
526 <xsl:when test="contains($controlField008-24,'d')">
527 dictionary;
528 </xsl:when>
529 <xsl:when test="contains($controlField008-24,'e')">
530 encyclopedia;
531 </xsl:when>
532 <xsl:when test="contains($controlField008-24,'f')">
533 handbook;
534 </xsl:when>
535 <xsl:when test="contains($controlField008-24,'g')">
536 legal article;
537 </xsl:when>
538 <xsl:when test="contains($controlField008-24,'i')">
539 index;
540 </xsl:when>
541 <xsl:when test="contains($controlField008-24,'k')">
542 discography;
543 </xsl:when>
544 <xsl:when test="contains($controlField008-24,'l')">
545 legislation;
546 </xsl:when>
547 <xsl:when test="contains($controlField008-24,'m')">
548 theses;
549 </xsl:when>
550 <xsl:when test="contains($controlField008-24,'n')">
551 survey of literature;
552 </xsl:when>
553 <xsl:when test="contains($controlField008-24,'o')">
554 review;
555 </xsl:when>
556 <xsl:when test="contains($controlField008-24,'p')">
557 programmed text;
558 </xsl:when>
559 <xsl:when test="contains($controlField008-24,'q')">
560 filmography;
561 </xsl:when>
562 <xsl:when test="contains($controlField008-24,'r')">
563 directory;
564 </xsl:when>
565 <xsl:when test="contains($controlField008-24,'s')">
566 statistics;
567 </xsl:when>
568 <xsl:when test="contains($controlField008-24,'t')">
569 <img src="/opac-tmpl/prog/famfamfam/silk/report.png"/> technical report;
570 </xsl:when>
571 <xsl:when test="contains($controlField008-24,'v')">
572 legal case and case notes;
573 </xsl:when>
574 <xsl:when test="contains($controlField008-24,'w')">
575 law report or digest;
576 </xsl:when>
577 <xsl:when test="contains($controlField008-24,'z')">
578 treaty;
579 </xsl:when>
580 </xsl:choose>
581 <xsl:choose>
582 <xsl:when test="$controlField008-29='1'">
583 conference publication;
584 </xsl:when>
585 </xsl:choose>
586 </xsl:if>
587 <xsl:if test="$typeOf008='CF'">
588 <xsl:choose>
589 <xsl:when test="$controlField008-26='a'">
590 numeric data;
591 </xsl:when>
592 <xsl:when test="$controlField008-26='e'">
593 <img src="/opac-tmpl/prog/famfamfam/silk/database.png"/> database;
594 </xsl:when>
595 <xsl:when test="$controlField008-26='f'">
596 <img src="/opac-tmpl/prog/famfamfam/silk/font.png"/> font;
597 </xsl:when>
598 <xsl:when test="$controlField008-26='g'">
599 <img src="/opac-tmpl/prog/famfamfam/silk/controller.png"/> game;
600 </xsl:when>
601 </xsl:choose>
602 </xsl:if>
603 <xsl:if test="$typeOf008='BK'">
604 <xsl:if test="substring($controlField008,25,1)='j'">
605 patent;
606 </xsl:if>
607 <xsl:if test="substring($controlField008,31,1)='1'">
608 festschrift;
609 </xsl:if>
610 <xsl:if test="$controlField008-34='a' or $controlField008-34='b' or $controlField008-34='c' or $controlField008-34='d'">
611 <img src="/opac-tmpl/prog/famfamfam/silk/user.png"/> biography;
612 </xsl:if>
613 <xsl:choose>
614 <xsl:when test="$controlField008-33='e'">
615 essay;
616 </xsl:when>
617 <xsl:when test="$controlField008-33='d'">
618 drama;
619 </xsl:when>
620 <xsl:when test="$controlField008-33='c'">
621 comic strip;
622 </xsl:when>
623 <xsl:when test="$controlField008-33='l'">
624 fiction;
625 </xsl:when>
626 <xsl:when test="$controlField008-33='h'">
627 humor, satire;
628 </xsl:when>
629 <xsl:when test="$controlField008-33='i'">
630 letter;
631 </xsl:when>
632 <xsl:when test="$controlField008-33='f'">
633 novel;
634 </xsl:when>
635 <xsl:when test="$controlField008-33='j'">
636 short story;
637 </xsl:when>
638 <xsl:when test="$controlField008-33='s'">
639 speech;
640 </xsl:when>
641 </xsl:choose>
642 </xsl:if>
643 <xsl:if test="$typeOf008='MU'">
644 <xsl:if test="contains($controlField008-30-31,'b')">
645 biography;
646 </xsl:if>
647 <xsl:if test="contains($controlField008-30-31,'c')">
648 conference publication;
649 </xsl:if>
650 <xsl:if test="contains($controlField008-30-31,'d')">
651 drama;
652 </xsl:if>
653 <xsl:if test="contains($controlField008-30-31,'e')">
654 essay;
655 </xsl:if>
656 <xsl:if test="contains($controlField008-30-31,'f')">
657 fiction;
658 </xsl:if>
659 <xsl:if test="contains($controlField008-30-31,'o')">
660 folktale;
661 </xsl:if>
662 <xsl:if test="contains($controlField008-30-31,'h')">
663 history;
664 </xsl:if>
665 <xsl:if test="contains($controlField008-30-31,'k')">
666 humor, satire;
667 </xsl:if>
668 <xsl:if test="contains($controlField008-30-31,'m')">
669 memoir;
670 </xsl:if>
671 <xsl:if test="contains($controlField008-30-31,'p')">
672 poetry;
673 </xsl:if>
674 <xsl:if test="contains($controlField008-30-31,'r')">
675 rehearsal;
676 </xsl:if>
677 <xsl:if test="contains($controlField008-30-31,'g')">
678 reporting;
679 </xsl:if>
680 <xsl:if test="contains($controlField008-30-31,'s')">
681 sound;
682 </xsl:if>
683 <xsl:if test="contains($controlField008-30-31,'l')">
684 speech;
685 </xsl:if>
686 </xsl:if>
687 <xsl:if test="$typeOf008='VM'">
688 <xsl:choose>
689 <xsl:when test="$controlField008-33='a'">
690 art original;
691 </xsl:when>
692 <xsl:when test="$controlField008-33='b'">
693 kit;
694 </xsl:when>
695 <xsl:when test="$controlField008-33='c'">
696 art reproduction;
697 </xsl:when>
698 <xsl:when test="$controlField008-33='d'">
699 diorama;
700 </xsl:when>
701 <xsl:when test="$controlField008-33='f'">
702 filmstrip;
703 </xsl:when>
704 <xsl:when test="$controlField008-33='g'">
705 legal article;
706 </xsl:when>
707 <xsl:when test="$controlField008-33='i'">
708 picture;
709 </xsl:when>
710 <xsl:when test="$controlField008-33='k'">
711 graphic;
712 </xsl:when>
713 <xsl:when test="$controlField008-33='l'">
714 technical drawing;
715 </xsl:when>
716 <xsl:when test="$controlField008-33='m'">
717 motion picture;
718 </xsl:when>
719 <xsl:when test="$controlField008-33='n'">
720 chart;
721 </xsl:when>
722 <xsl:when test="$controlField008-33='o'">
723 flash card;
724 </xsl:when>
725 <xsl:when test="$controlField008-33='p'">
726 microscope slide;
727 </xsl:when>
728 <xsl:when test="$controlField008-33='q' or marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2
729 ,1)='q']">
730 model;
731 </xsl:when>
732 <xsl:when test="$controlField008-33='r'">
733 realia;
734 </xsl:when>
735 <xsl:when test="$controlField008-33='s'">
736 slide;
737 </xsl:when>
738 <xsl:when test="$controlField008-33='t'">
739 transparency;
740 </xsl:when>
741 <xsl:when test="$controlField008-33='v'">
742 videorecording;
743 </xsl:when>
744 <xsl:when test="$controlField008-33='w'">
745 toy;
746 </xsl:when>
747 </xsl:choose>
748 </xsl:if>
749 </xsl:if>
751 <xsl:if test="$typeOf008='BK' or $typeOf008='CF' or $typeOf008='MU' or $typeOf008='VM'">
752 <xsl:choose>
753 <xsl:when test="$controlField008-22='a'">
754 <span class="label">; Audience: </span> Preschool;
755 </xsl:when>
756 <xsl:when test="$controlField008-22='b'">
757 <span class="label">; Audience: </span> Primary;
758 </xsl:when>
759 <xsl:when test="$controlField008-22='c'">
760 <span class="label">; Audience: </span> Pre-adolescent;
761 </xsl:when>
762 <xsl:when test="$controlField008-22='d'">
763 <span class="label">; Audience: </span> Adolescent;
764 </xsl:when>
765 <xsl:when test="$controlField008-22='e'">
766 <span class="label">; Audience: </span> Adult;
767 </xsl:when>
768 <xsl:when test="$controlField008-22='g'">
769 <span class="label">; Audience: </span> General;
770 </xsl:when>
771 <xsl:when test="$controlField008-22='j'">
772 <span class="label">; Audience: </span> Juvenile;
773 </xsl:when>
774 <xsl:when test="$controlField008-22='f'">
775 <span class="label">; Audience: </span> Specialized;
776 </xsl:when>
777 </xsl:choose>
778 </xsl:if>
779 <br/>
780 <xsl:if test="marc:datafield[@tag=260]">
781 <span class="label">Publisher: </span>
782 <xsl:for-each select="marc:datafield[@tag=260]">
783 <xsl:call-template name="subfieldSelect">
784 <xsl:with-param name="codes">bcg</xsl:with-param>
785 </xsl:call-template>
786 </xsl:for-each>
788 </xsl:if>
789 </span>
790 <div class="holdings_summary">
791 <xsl:if test="count(key('item-by-status', 'available'))>0">
792 <span class="available">
793 <xsl:text>Copies available at: </xsl:text>
794 <xsl:variable name="available_items"
795 select="key('item-by-status', 'available')"/>
796 <xsl:for-each select="$available_items[generate-id() = generate-id(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch))[1])]">
797 <xsl:value-of select="items:homebranch"/>
798 <xsl:text> (</xsl:text>
799 <xsl:value-of select="count(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch)))"/>
800 <xsl:text>) </xsl:text>
801 </xsl:for-each>
802 </span>
803 </xsl:if>
804 <xsl:if test="count(key('item-by-status', 'On loan'))>0">
805 <span class="unavailable">
806 <xsl:text>On loan (</xsl:text>
807 <xsl:value-of select="count(key('item-by-status', 'On loan'))"/>
808 <xsl:text>)</xsl:text>
809 </span>
810 </xsl:if>
811 </div>
812 </td>
813 </xsl:template>
815 <xsl:template name="nameABCDQ">
816 <xsl:call-template name="chopPunctuation">
817 <xsl:with-param name="chopString">
818 <xsl:call-template name="subfieldSelect">
819 <xsl:with-param name="codes">aq</xsl:with-param>
820 </xsl:call-template>
821 </xsl:with-param>
822 <xsl:with-param name="punctuation">
823 <xsl:text>:,;/ </xsl:text>
824 </xsl:with-param>
825 </xsl:call-template>
826 <xsl:call-template name="termsOfAddress"/>
827 </xsl:template>
829 <xsl:template name="nameABCDN">
830 <xsl:for-each select="marc:subfield[@code='a']">
831 <xsl:call-template name="chopPunctuation">
832 <xsl:with-param name="chopString" select="."/>
833 </xsl:call-template>
834 </xsl:for-each>
835 <xsl:for-each select="marc:subfield[@code='b']">
836 <xsl:value-of select="."/>
837 </xsl:for-each>
838 <xsl:if test="marc:subfield[@code='c'] or marc:subfield[@code='d'] or marc:subfield[@code='n']">
839 <xsl:call-template name="subfieldSelect">
840 <xsl:with-param name="codes">cdn</xsl:with-param>
841 </xsl:call-template>
842 </xsl:if>
843 </xsl:template>
845 <xsl:template name="nameACDEQ">
846 <xsl:call-template name="subfieldSelect">
847 <xsl:with-param name="codes">acdeq</xsl:with-param>
848 </xsl:call-template>
849 </xsl:template>
851 <xsl:template name="termsOfAddress">
852 <xsl:if test="marc:subfield[@code='b' or @code='c']">
853 <xsl:call-template name="chopPunctuation">
854 <xsl:with-param name="chopString">
855 <xsl:call-template name="subfieldSelect">
856 <xsl:with-param name="codes">bc</xsl:with-param>
857 </xsl:call-template>
858 </xsl:with-param>
859 </xsl:call-template>
860 </xsl:if>
861 </xsl:template>
863 <xsl:template name="nameDate">
864 <xsl:for-each select="marc:subfield[@code='d']">
865 <xsl:call-template name="chopPunctuation">
866 <xsl:with-param name="chopString" select="."/>
867 </xsl:call-template>
868 </xsl:for-each>
869 </xsl:template>
871 <xsl:template name="role">
872 <xsl:for-each select="marc:subfield[@code='e']">
873 <xsl:value-of select="."/>
874 </xsl:for-each>
875 <xsl:for-each select="marc:subfield[@code='4']">
876 <xsl:value-of select="."/>
877 </xsl:for-each>
878 </xsl:template>
880 <xsl:template name="specialSubfieldSelect">
881 <xsl:param name="anyCodes"/>
882 <xsl:param name="axis"/>
883 <xsl:param name="beforeCodes"/>
884 <xsl:param name="afterCodes"/>
885 <xsl:variable name="str">
886 <xsl:for-each select="marc:subfield">
887 <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])">
888 <xsl:value-of select="text()"/>
889 <xsl:text> </xsl:text>
890 </xsl:if>
891 </xsl:for-each>
892 </xsl:variable>
893 <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
894 </xsl:template>
896 <xsl:template name="subtitle">
897 <xsl:if test="marc:subfield[@code='b']">
898 <xsl:call-template name="chopPunctuation">
899 <xsl:with-param name="chopString">
900 <xsl:value-of select="marc:subfield[@code='b']"/>
902 <!--<xsl:call-template name="subfieldSelect">
903 <xsl:with-param name="codes">b</xsl:with-param>
904 </xsl:call-template>-->
905 </xsl:with-param>
906 </xsl:call-template>
907 </xsl:if>
908 </xsl:template>
910 <xsl:template name="part">
911 <xsl:variable name="partNumber">
912 <xsl:call-template name="specialSubfieldSelect">
913 <xsl:with-param name="axis">n</xsl:with-param>
914 <xsl:with-param name="anyCodes">n</xsl:with-param>
915 <xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
916 </xsl:call-template>
917 </xsl:variable>
918 <xsl:variable name="partName">
919 <xsl:call-template name="specialSubfieldSelect">
920 <xsl:with-param name="axis">p</xsl:with-param>
921 <xsl:with-param name="anyCodes">p</xsl:with-param>
922 <xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
923 </xsl:call-template>
924 </xsl:variable>
925 <xsl:if test="string-length(normalize-space($partNumber))">
926 <xsl:call-template name="chopPunctuation">
927 <xsl:with-param name="chopString" select="$partNumber"/>
928 </xsl:call-template>
929 </xsl:if>
930 <xsl:if test="string-length(normalize-space($partName))">
931 <xsl:call-template name="chopPunctuation">
932 <xsl:with-param name="chopString" select="$partName"/>
933 </xsl:call-template>
934 </xsl:if>
935 </xsl:template>
936 <xsl:template name="chopBrackets">
937 <xsl:param name="chopString"></xsl:param>
938 <xsl:variable name="string">
939 <xsl:call-template name="chopPunctuation">
940 <xsl:with-param name="chopString" select="$chopString"></xsl:with-param>
941 </xsl:call-template>
942 </xsl:variable>
943 <xsl:if test="substring($string, 1,1)='['">
944 <xsl:value-of select="substring($string,2, string-length($string)-2)"></xsl:value-of>
945 </xsl:if>
946 <xsl:if test="substring($string, 1,1)!='['">
947 <xsl:value-of select="$string"></xsl:value-of>
948 </xsl:if>
949 </xsl:template>
951 </xsl:stylesheet>