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/>
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="controlField008" select="marc:controlfield[@tag=008]"/>
21 <xsl:variable name="typeOf008">
23 <xsl:when test="$leader6='a'">
25 <xsl:when test="$leader7='a' or $leader7='c' or $leader7='d' or $leader7='m'">BK</xsl:when>
26 <xsl:when test="$leader7='b' or $leader7='i' or $leader7='s'">SE</xsl:when>
29 <xsl:when test="$leader6='t'">BK</xsl:when>
30 <xsl:when test="$leader6='p'">MM</xsl:when>
31 <xsl:when test="$leader6='m'">CF</xsl:when>
32 <xsl:when test="$leader6='e' or $leader6='f'">MP</xsl:when>
33 <xsl:when test="$leader6='g' or $leader6='k' or $leader6='o' or $leader6='r'">VM</xsl:when>
34 <xsl:when test="$leader6='c' or $leader6='d' or $leader6='i' or $leader6='j'">MU</xsl:when>
37 <xsl:variable name="materialTypeLabel">
39 <xsl:when test="$leader6='a'">
41 <xsl:when test="$leader7='a' or $leader7='c' or $leader7='d' or $leader7='m'">Book</xsl:when>
42 <xsl:when test="$leader7='b' or $leader7='i' or $leader7='s'">Serial</xsl:when>
45 <xsl:when test="$leader6='t'">Book</xsl:when>
46 <xsl:when test="$leader6='p'">Mixed Materials</xsl:when>
47 <xsl:when test="$leader6='m'">Computer File</xsl:when>
48 <xsl:when test="$leader6='e' or $leader6='f'">Map</xsl:when>
49 <xsl:when test="$leader6='g' or $leader6='k' or $leader6='o' or $leader6='r'">Visual Material</xsl:when>
50 <xsl:when test="$leader6='c' or $leader6='d' or $leader6='i' or $leader6='j'">Music</xsl:when>
53 <xsl:variable name="genre">
54 <xsl:if test="$typeOf008='SE'">
55 <xsl:variable name="controlField008-21" select="substring($controlField008,22,1)"></xsl:variable>
57 <xsl:when test="$controlField008-21='d'">
58 <span class="label">; Genre: </span>database;
60 <xsl:when test="$controlField008-21='l'">
61 <span class="label">; Genre: </span>loose-leaf;
63 <xsl:when test="$controlField008-21='m'">
64 <span class="label">; Genre: </span>series;
66 <xsl:when test="$controlField008-21='n'">
67 <span class="label">; Genre: </span>newspaper;
69 <xsl:when test="$controlField008-21='p'">
70 <span class="label">; Genre: </span>periodical;
72 <xsl:when test="$controlField008-21='w'">
73 <span class="label">; Genre: </span>web site;
77 <xsl:if test="$typeOf008='BK' or $typeOf008='SE'">
78 <xsl:variable name="controlField008-24" select="substring($controlField008,25,4)"></xsl:variable>
80 <xsl:when test="contains($controlField008-24,'a')">
81 <span class="label">; Genre: </span>abstract or summary;
83 <xsl:when test="contains($controlField008-24,'b')">
84 <span class="label">; Genre: </span>bibliography;
86 <xsl:when test="contains($controlField008-24,'c')">
87 <span class="label">; Genre: </span>catalog;
89 <xsl:when test="contains($controlField008-24,'d')">
90 <span class="label">; Genre: </span>dictionary;
92 <xsl:when test="contains($controlField008-24,'e')">
93 <span class="label">; Genre: </span>encyclopedia;
95 <xsl:when test="contains($controlField008-24,'f')">
96 <span class="label">; Genre: </span>handbook;
98 <xsl:when test="contains($controlField008-24,'g')">
99 <span class="label">; Genre: </span>legal article;
101 <xsl:when test="contains($controlField008-24,'i')">
102 <span class="label">; Genre: </span>index;
104 <xsl:when test="contains($controlField008-24,'k')">
105 <span class="label">; Genre: </span>discography;
107 <xsl:when test="contains($controlField008-24,'l')">
108 <span class="label">; Genre: </span>legislation;
110 <xsl:when test="contains($controlField008-24,'m')">
111 <span class="label">; Genre: </span>theses;
113 <xsl:when test="contains($controlField008-24,'n')">
114 <span class="label">; Genre: </span>survey of literature;
116 <xsl:when test="contains($controlField008-24,'o')">
117 <span class="label">; Genre: </span>review;
119 <xsl:when test="contains($controlField008-24,'p')">
120 <span class="label">; Genre: </span>programmed text;
122 <xsl:when test="contains($controlField008-24,'q')">
123 <span class="label">; Genre: </span>filmography;
125 <xsl:when test="contains($controlField008-24,'r')">
126 <span class="label">; Genre: </span>directory;
128 <xsl:when test="contains($controlField008-24,'s')">
129 <span class="label">; Genre: </span>statistics;
131 <xsl:when test="contains($controlField008-24,'t')">
132 <span class="label">; Genre: </span>technical report;
134 <xsl:when test="contains($controlField008-24,'v')">
135 <span class="label">; Genre: </span>legal case and case notes;
137 <xsl:when test="contains($controlField008-24,'w')">
138 <span class="label">; Genre: </span>law report or digest;
140 <xsl:when test="contains($controlField008-24,'z')">
141 <span class="label">; Genre: </span>treaty;
144 <xsl:variable name="controlField008-29" select="substring($controlField008,30,1)"></xsl:variable>
146 <xsl:when test="$controlField008-29='1'">
147 <span class="label">; Genre: </span>conference publication;
151 <xsl:if test="$typeOf008='CF'">
152 <xsl:variable name="controlField008-26" select="substring($controlField008,27,1)"></xsl:variable>
154 <xsl:when test="$controlField008-26='a'">
155 <span class="label">; Genre: </span>numeric data;
157 <xsl:when test="$controlField008-26='e'">
158 <span class="label">; Genre: </span>database;
160 <xsl:when test="$controlField008-26='f'">
161 <span class="label">; Genre: </span>font;
163 <xsl:when test="$controlField008-26='g'">
164 <span class="label">; Genre: </span>game;
168 <xsl:if test="$typeOf008='BK'">
169 <xsl:if test="substring($controlField008,25,1)='j'">
170 <span class="label">; Genre: </span>patent;
172 <xsl:if test="substring($controlField008,31,1)='1'">
173 <span class="label">; Genre: </span>festschrift;
175 <xsl:variable name="controlField008-34" select="substring($controlField008,35,1)"></xsl:variable>
176 <xsl:if test="$controlField008-34='a' or $controlField008-34='b' or $controlField008-34='c' or $controlField008-34='d'">
177 <span class="label">; Genre: </span>biography;
179 <xsl:variable name="controlField008-33" select="substring($controlField008,34,1)"></xsl:variable>
181 <xsl:when test="$controlField008-33='e'">
182 <span class="label">; Genre: </span>essay;
184 <xsl:when test="$controlField008-33='d'">
185 <span class="label">; Genre: </span>drama;
187 <xsl:when test="$controlField008-33='c'">
188 <span class="label">; Genre: </span>comic strip;
190 <xsl:when test="$controlField008-33='l'">
191 <span class="label">; Genre: </span>fiction;
193 <xsl:when test="$controlField008-33='h'">
194 <span class="label">; Genre: </span>humor, satire;
196 <xsl:when test="$controlField008-33='i'">
197 <span class="label">; Genre: </span>letter;
199 <xsl:when test="$controlField008-33='f'">
200 <span class="label">; Genre: </span>novel;
202 <xsl:when test="$controlField008-33='j'">
203 <span class="label">; Genre: </span>short story;
205 <xsl:when test="$controlField008-33='s'">
206 <span class="label">; Genre: </span>speech;
210 <xsl:if test="$typeOf008='MU'">
211 <xsl:variable name="controlField008-30-31" select="substring($controlField008,31,2)"></xsl:variable>
212 <xsl:if test="contains($controlField008-30-31,'b')">
213 <span class="label">; Genre: </span>biography;
215 <xsl:if test="contains($controlField008-30-31,'c')">
216 <span class="label">; Genre: </span>conference publication;
218 <xsl:if test="contains($controlField008-30-31,'d')">
219 <span class="label">; Genre: </span>drama;
221 <xsl:if test="contains($controlField008-30-31,'e')">
222 <span class="label">; Genre: </span>essay;
224 <xsl:if test="contains($controlField008-30-31,'f')">
225 <span class="label">; Genre: </span>fiction;
227 <xsl:if test="contains($controlField008-30-31,'o')">
228 <span class="label">; Genre: </span>folktale;
230 <xsl:if test="contains($controlField008-30-31,'h')">
231 <span class="label">; Genre: </span>history;
233 <xsl:if test="contains($controlField008-30-31,'k')">
234 <span class="label">; Genre: </span>humor, satire;
236 <xsl:if test="contains($controlField008-30-31,'m')">
237 <span class="label">; Genre: </span>memoir;
239 <xsl:if test="contains($controlField008-30-31,'p')">
240 <span class="label">; Genre: </span>poetry;
242 <xsl:if test="contains($controlField008-30-31,'r')">
243 <span class="label">; Genre: </span>rehearsal;
245 <xsl:if test="contains($controlField008-30-31,'g')">
246 <span class="label">; Genre: </span>reporting;
248 <xsl:if test="contains($controlField008-30-31,'s')">
249 <span class="label">; Genre: </span>sound;
251 <xsl:if test="contains($controlField008-30-31,'l')">
252 <span class="label">; Genre: </span>speech;
255 <xsl:if test="$typeOf008='VM'">
256 <xsl:variable name="controlField008-33" select="substring($controlField008,34,1)"></xsl:variable>
258 <xsl:when test="$controlField008-33='a'">
259 <span class="label">; Genre: </span>art original;
261 <xsl:when test="$controlField008-33='b'">
262 <span class="label">; Genre: </span>kit;
264 <xsl:when test="$controlField008-33='c'">
265 <span class="label">; Genre: </span>art reproduction;
267 <xsl:when test="$controlField008-33='d'">
268 <span class="label">; Genre: </span>diorama;
270 <xsl:when test="$controlField008-33='f'">
271 <span class="label">; Genre: </span>filmstrip;
273 <xsl:when test="$controlField008-33='g'">
274 <span class="label">; Genre: </span>legal article;
276 <xsl:when test="$controlField008-33='i'">
277 <span class="label">; Genre: </span>picture;
279 <xsl:when test="$controlField008-33='k'">
280 <span class="label">; Genre: </span>graphic;
282 <xsl:when test="$controlField008-33='l'">
283 <span class="label">; Genre: </span>technical drawing;
285 <xsl:when test="$controlField008-33='m'">
286 <span class="label">; Genre: </span>motion picture;
288 <xsl:when test="$controlField008-33='n'">
289 <span class="label">; Genre: </span>chart;
291 <xsl:when test="$controlField008-33='o'">
292 <span class="label">; Genre: </span>flash card;
294 <xsl:when test="$controlField008-33='p'">
295 <span class="label">; Genre: </span>microscope slide;
297 <xsl:when test="$controlField008-33='q' or marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='q']">
298 <span class="label">; Genre: </span>model;
300 <xsl:when test="$controlField008-33='r'">
301 <span class="label">; Genre: </span>realia;
303 <xsl:when test="$controlField008-33='s'">
304 <span class="label">; Genre: </span>slide;
306 <xsl:when test="$controlField008-33='t'">
307 <span class="label">; Genre: </span>transparency;
309 <xsl:when test="$controlField008-33='v'">
310 <span class="label">; Genre: </span>videorecording;
312 <xsl:when test="$controlField008-33='w'">
313 <span class="label">; Genre: </span>toy;
318 <xsl:variable name="physicalDescription">
319 <!--3.2 change tmee 007/11 -->
320 <xsl:if test="$typeOf008='CF' and marc:controlfield[@tag=007][substring(.,12,1)='a']">
321 <digitalOrigin>reformatted digital</digitalOrigin>
323 <xsl:if test="$typeOf008='CF' and marc:controlfield[@tag=007][substring(.,12,1)='b']">
324 <digitalOrigin>digitized microfilm</digitalOrigin>
326 <xsl:if test="$typeOf008='CF' and marc:controlfield[@tag=007][substring(.,12,1)='d']">
327 <digitalOrigin>digitized other analog</digitalOrigin>
329 <xsl:variable name="controlField008-23" select="substring($controlField008,24,1)"></xsl:variable>
330 <xsl:variable name="controlField008-29" select="substring($controlField008,30,1)"></xsl:variable>
331 <xsl:variable name="check008-23">
332 <xsl:if test="$typeOf008='BK' or $typeOf008='MU' or $typeOf008='SE' or $typeOf008='MM'">
333 <xsl:value-of select="true()"></xsl:value-of>
336 <xsl:variable name="check008-29">
337 <xsl:if test="$typeOf008='MP' or $typeOf008='VM'">
338 <xsl:value-of select="true()"></xsl:value-of>
342 <xsl:when test="($check008-23 and $controlField008-23='f') or ($check008-29 and $controlField008-29='f')">
343 <form authority="marcform">braille</form>
345 <xsl:when test="($controlField008-23=' ' and ($leader6='c' or $leader6='d')) or (($typeOf008='BK' or $typeOf008='SE') and ($controlField008-23=' ' or $controlField008='r'))">
346 <form authority="marcform">print</form>
348 <xsl:when test="$leader6 = 'm' or ($check008-23 and $controlField008-23='s') or ($check008-29 and $controlField008-29='s')">
349 <form authority="marcform">electronic</form>
351 <xsl:when test="($check008-23 and $controlField008-23='b') or ($check008-29 and $controlField008-29='b')">
352 <form authority="marcform">microfiche</form>
354 <xsl:when test="($check008-23 and $controlField008-23='a') or ($check008-29 and $controlField008-29='a')">
355 <form authority="marcform">microfilm</form>
359 <xsl:if test="marc:datafield[@tag=130]/marc:subfield[@code='h']">
360 <form authority="gmd">
361 <xsl:call-template name="chopBrackets">
362 <xsl:with-param name="chopString">
363 <xsl:value-of select="marc:datafield[@tag=130]/marc:subfield[@code='h']"></xsl:value-of>
368 <xsl:if test="marc:datafield[@tag=240]/marc:subfield[@code='h']">
369 <form authority="gmd">
370 <xsl:call-template name="chopBrackets">
371 <xsl:with-param name="chopString">
372 <xsl:value-of select="marc:datafield[@tag=240]/marc:subfield[@code='h']"></xsl:value-of>
377 <xsl:if test="marc:datafield[@tag=242]/marc:subfield[@code='h']">
378 <form authority="gmd">
379 <xsl:call-template name="chopBrackets">
380 <xsl:with-param name="chopString">
381 <xsl:value-of select="marc:datafield[@tag=242]/marc:subfield[@code='h']"></xsl:value-of>
386 <xsl:if test="marc:datafield[@tag=245]/marc:subfield[@code='h']">
387 <form authority="gmd">
388 <xsl:call-template name="chopBrackets">
389 <xsl:with-param name="chopString">
390 <xsl:value-of select="marc:datafield[@tag=245]/marc:subfield[@code='h']"></xsl:value-of>
395 <xsl:if test="marc:datafield[@tag=246]/marc:subfield[@code='h']">
396 <form authority="gmd">
397 <xsl:call-template name="chopBrackets">
398 <xsl:with-param name="chopString">
399 <xsl:value-of select="marc:datafield[@tag=246]/marc:subfield[@code='h']"></xsl:value-of>
404 <xsl:if test="marc:datafield[@tag=730]/marc:subfield[@code='h']">
405 <form authority="gmd">
406 <xsl:call-template name="chopBrackets">
407 <xsl:with-param name="chopString">
408 <xsl:value-of select="marc:datafield[@tag=730]/marc:subfield[@code='h']"></xsl:value-of>
413 <xsl:for-each select="marc:datafield[@tag=256]/marc:subfield[@code='a']">
415 <xsl:value-of select="."></xsl:value-of>
418 <xsl:for-each select="marc:controlfield[@tag=007][substring(text(),1,1)='c']">
420 <xsl:when test="substring(text(),14,1)='a'">
421 <reformattingQuality>access</reformattingQuality>
423 <xsl:when test="substring(text(),14,1)='p'">
424 <reformattingQuality>preservation</reformattingQuality>
426 <xsl:when test="substring(text(),14,1)='r'">
427 <reformattingQuality>replacement</reformattingQuality>
431 <!--3.2 change tmee 007/01 -->
432 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='b']">
433 <form authority="smd">chip cartridge</form>
435 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='c']">
436 <form authority="smd">computer optical disc cartridge</form>
438 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='j']">
439 <form authority="smd">magnetic disc</form>
441 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='m']">
442 <form authority="smd">magneto-optical disc</form>
444 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='o']">
445 <form authority="smd">optical disc</form>
447 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='r']">
448 <form authority="smd">remote</form>
450 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='a']">
451 <form authority="smd">tape cartridge</form>
453 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='f']">
454 <form authority="smd">tape cassette</form>
456 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='h']">
457 <form authority="smd">tape reel</form>
460 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='d'][substring(text(),2,1)='a']">
461 <form authority="smd">celestial globe</form>
463 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='d'][substring(text(),2,1)='e']">
464 <form authority="smd">earth moon globe</form>
466 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='d'][substring(text(),2,1)='b']">
467 <form authority="smd">planetary or lunar globe</form>
469 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='d'][substring(text(),2,1)='c']">
470 <form authority="smd">terrestrial globe</form>
473 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='o'][substring(text(),2,1)='o']">
474 <form authority="smd">kit</form>
477 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='d']">
478 <form authority="smd">atlas</form>
480 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='g']">
481 <form authority="smd">diagram</form>
483 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='j']">
484 <form authority="smd">map</form>
486 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='q']">
487 <form authority="smd">model</form>
489 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='k']">
490 <form authority="smd">profile</form>
492 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='r']">
493 <form authority="smd">remote-sensing image</form>
495 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='s']">
496 <form authority="smd">section</form>
498 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='y']">
499 <form authority="smd">view</form>
502 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='a']">
503 <form authority="smd">aperture card</form>
505 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='e']">
506 <form authority="smd">microfiche</form>
508 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='f']">
509 <form authority="smd">microfiche cassette</form>
511 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='b']">
512 <form authority="smd">microfilm cartridge</form>
514 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='c']">
515 <form authority="smd">microfilm cassette</form>
517 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='d']">
518 <form authority="smd">microfilm reel</form>
520 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='g']">
521 <form authority="smd">microopaque</form>
524 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='m'][substring(text(),2,1)='c']">
525 <form authority="smd">film cartridge</form>
527 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='m'][substring(text(),2,1)='f']">
528 <form authority="smd">film cassette</form>
530 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='m'][substring(text(),2,1)='r']">
531 <form authority="smd">film reel</form>
533 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='n']">
534 <form authority="smd">chart</form>
536 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='c']">
537 <form authority="smd">collage</form>
539 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='d']">
540 <form authority="smd">drawing</form>
542 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='o']">
543 <form authority="smd">flash card</form>
545 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='e']">
546 <form authority="smd">painting</form>
548 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='f']">
549 <form authority="smd">photomechanical print</form>
551 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='g']">
552 <form authority="smd">photonegative</form>
554 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='h']">
555 <form authority="smd">photoprint</form>
557 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='i']">
558 <form authority="smd">picture</form>
560 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='j']">
561 <form authority="smd">print</form>
563 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='l']">
564 <form authority="smd">technical drawing</form>
567 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='q'][substring(text(),2,1)='q']">
568 <form authority="smd">notated music</form>
571 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='d']">
572 <form authority="smd">filmslip</form>
574 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='c']">
575 <form authority="smd">filmstrip cartridge</form>
577 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='o']">
578 <form authority="smd">filmstrip roll</form>
580 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='f']">
581 <form authority="smd">other filmstrip type</form>
583 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='s']">
584 <form authority="smd">slide</form>
586 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='t']">
587 <form authority="smd">transparency</form>
589 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='r'][substring(text(),2,1)='r']">
590 <form authority="smd">remote-sensing image</form>
592 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='e']">
593 <form authority="smd">cylinder</form>
595 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='q']">
596 <form authority="smd">roll</form>
598 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='g']">
599 <form authority="smd">sound cartridge</form>
601 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='s']">
602 <form authority="smd">sound cassette</form>
604 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='d']">
605 <form authority="smd">sound disc</form>
607 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='t']">
608 <form authority="smd">sound-tape reel</form>
610 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='i']">
611 <form authority="smd">sound-track film</form>
613 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='w']">
614 <form authority="smd">wire recording</form>
617 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='f'][substring(text(),2,1)='c']">
618 <form authority="smd">braille</form>
620 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='f'][substring(text(),2,1)='b']">
621 <form authority="smd">combination</form>
623 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='f'][substring(text(),2,1)='a']">
624 <form authority="smd">moon</form>
626 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='f'][substring(text(),2,1)='d']">
627 <form authority="smd">tactile, with no writing system</form>
630 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='t'][substring(text(),2,1)='c']">
631 <form authority="smd">braille</form>
633 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='t'][substring(text(),2,1)='b']">
634 <form authority="smd">large print</form>
636 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='t'][substring(text(),2,1)='a']">
637 <form authority="smd">regular print</form>
639 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='t'][substring(text(),2,1)='d']">
640 <form authority="smd">text in looseleaf binder</form>
643 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='v'][substring(text(),2,1)='c']">
644 <form authority="smd">videocartridge</form>
646 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='v'][substring(text(),2,1)='f']">
647 <form authority="smd">videocassette</form>
649 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='v'][substring(text(),2,1)='d']">
650 <form authority="smd">videodisc</form>
652 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='v'][substring(text(),2,1)='r']">
653 <form authority="smd">videoreel</form>
656 <xsl:for-each select="marc:datafield[@tag=856]/marc:subfield[@code='q'][string-length(.)>1]">
658 <xsl:value-of select="."></xsl:value-of>
661 <xsl:for-each select="marc:datafield[@tag=300]">
663 <xsl:call-template name="subfieldSelect">
664 <xsl:with-param name="codes">abce</xsl:with-param>
669 <xsl:variable name="biblionumber" select="marc:datafield[@tag=999]/marc:subfield[@code='c']"/>
670 <xsl:variable name="isbn" select="marc:datafield[@tag=020]/marc:subfield[@code='a']"/>
671 <td style="vertical-align:top;">
672 <a><xsl:attribute name="href">/cgi-bin/koha/opac-detail.pl?biblionumber=<xsl:value-of select="$biblionumber"/></xsl:attribute>
674 <xsl:if test="marc:datafield[@tag=245]">
675 <xsl:for-each select="marc:datafield[@tag=245]">
676 <xsl:variable name="title">
678 <xsl:when test="marc:subfield[@code='b']">
679 <xsl:call-template name="specialSubfieldSelect">
680 <xsl:with-param name="axis">b</xsl:with-param>
681 <xsl:with-param name="beforeCodes">afghk</xsl:with-param>
685 <xsl:call-template name="subfieldSelect">
686 <xsl:with-param name="codes">abfgk</xsl:with-param>
691 <xsl:variable name="titleChop">
692 <xsl:call-template name="chopPunctuation">
693 <xsl:with-param name="chopString">
694 <xsl:value-of select="$title"/>
698 <xsl:value-of select="$titleChop"/>
699 <xsl:if test="marc:subfield[@code='b']">
700 <xsl:text> : </xsl:text>
701 <xsl:call-template name="chopPunctuation">
702 <xsl:with-param name="chopString">
703 <xsl:call-template name="specialSubfieldSelect">
704 <xsl:with-param name="axis">b</xsl:with-param>
705 <xsl:with-param name="anyCodes">b</xsl:with-param>
706 <xsl:with-param name="afterCodes">afghk</xsl:with-param>
710 </xsl:if><xsl:text> </xsl:text>
711 <xsl:call-template name="part"/>
712 <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
719 <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]">
722 <xsl:for-each select="marc:datafield[@tag=100 or @tag=700]">
724 <xsl:when test="position()=last()">
725 <xsl:call-template name="nameABCDQ"/>.
728 <xsl:call-template name="nameABCDQ"/>;
733 <xsl:for-each select="marc:datafield[@tag=110 or @tag=710]">
735 <xsl:when test="position()=last()">
736 <xsl:call-template name="nameABCDN"/>.
739 <xsl:call-template name="nameABCDN"/>;
744 <xsl:for-each select="marc:datafield[@tag=111 or @tag=711]">
746 <xsl:when test="position()=last()">
747 <xsl:call-template name="nameACDEQ"/>.
750 <xsl:call-template name="nameACDEQ"/>;
757 <span class="results_summary">
758 <xsl:if test="$typeOf008">
759 <span class="label">Type: </span>
760 <img src="/opac-tmpl/prog/famfamfam/{$typeOf008}.png"/><xsl:value-of select="$materialTypeLabel"/>
761 <xsl:if test="$genre"><xsl:value-of select="$genre"/></xsl:if>
762 <xsl:if test="string-length(normalize-space($physicalDescription))">
763 <span class="label">; Format: </span><xsl:copy-of select="$physicalDescription"></xsl:copy-of>
768 <xsl:if test="$typeOf008='BK' or $typeOf008='CF' or $typeOf008='MU' or $typeOf008='VM'">
769 <xsl:variable name="controlField008-22" select="substring($controlField008,23,1)"></xsl:variable>
771 <xsl:when test="$controlField008-22='a'">
772 <span class="label">; Audience: </span> Preschool;
774 <xsl:when test="$controlField008-22='b'">
775 <span class="label">; Audience: </span> Primary;
777 <xsl:when test="$controlField008-22='c'">
778 <span class="label">; Audience: </span> Pre-adolescent;
780 <xsl:when test="$controlField008-22='d'">
781 <span class="label">; Audience: </span> Adolescent;
783 <xsl:when test="$controlField008-22='e'">
784 <span class="label">; Audience: </span> Adult;
786 <xsl:when test="$controlField008-22='g'">
787 <span class="label">; Audience: </span> General;
789 <xsl:when test="$controlField008-22='j'">
790 <span class="label">; Audience: </span> Juvenile;
792 <xsl:when test="$controlField008-22='f'">
793 <span class="label">; Audience: </span> Specialized;
798 <xsl:if test="marc:datafield[@tag=260]">
799 <span class="label">Publisher: </span>
800 <xsl:for-each select="marc:datafield[@tag=260]">
801 <xsl:call-template name="subfieldSelect">
802 <xsl:with-param name="codes">bcg</xsl:with-param>
808 <div class="holdings_summary">
809 <xsl:if test="count(key('item-by-status', 'available'))>0">
810 <span class="available">
811 <xsl:text>Copies available at: </xsl:text>
812 <xsl:variable name="available_items"
813 select="key('item-by-status', 'available')"/>
814 <xsl:for-each select="$available_items[generate-id() = generate-id(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch))[1])]">
815 <xsl:value-of select="items:homebranch"/>
816 <xsl:text> (</xsl:text>
817 <xsl:value-of select="count(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch)))"/>
818 <xsl:text>) </xsl:text>
822 <xsl:if test="count(key('item-by-status', 'On loan'))>0">
823 <span class="unavailable">
824 <xsl:text>On loan (</xsl:text>
825 <xsl:value-of select="count(key('item-by-status', 'On loan'))"/>
826 <xsl:text>)</xsl:text>
833 <xsl:template name="nameABCDQ">
834 <xsl:call-template name="chopPunctuation">
835 <xsl:with-param name="chopString">
836 <xsl:call-template name="subfieldSelect">
837 <xsl:with-param name="codes">aq</xsl:with-param>
840 <xsl:with-param name="punctuation">
841 <xsl:text>:,;/ </xsl:text>
844 <xsl:call-template name="termsOfAddress"/>
847 <xsl:template name="nameABCDN">
848 <xsl:for-each select="marc:subfield[@code='a']">
849 <xsl:call-template name="chopPunctuation">
850 <xsl:with-param name="chopString" select="."/>
853 <xsl:for-each select="marc:subfield[@code='b']">
854 <xsl:value-of select="."/>
856 <xsl:if test="marc:subfield[@code='c'] or marc:subfield[@code='d'] or marc:subfield[@code='n']">
857 <xsl:call-template name="subfieldSelect">
858 <xsl:with-param name="codes">cdn</xsl:with-param>
863 <xsl:template name="nameACDEQ">
864 <xsl:call-template name="subfieldSelect">
865 <xsl:with-param name="codes">acdeq</xsl:with-param>
869 <xsl:template name="termsOfAddress">
870 <xsl:if test="marc:subfield[@code='b' or @code='c']">
871 <xsl:call-template name="chopPunctuation">
872 <xsl:with-param name="chopString">
873 <xsl:call-template name="subfieldSelect">
874 <xsl:with-param name="codes">bc</xsl:with-param>
881 <xsl:template name="nameDate">
882 <xsl:for-each select="marc:subfield[@code='d']">
883 <xsl:call-template name="chopPunctuation">
884 <xsl:with-param name="chopString" select="."/>
889 <xsl:template name="role">
890 <xsl:for-each select="marc:subfield[@code='e']">
891 <xsl:value-of select="."/>
893 <xsl:for-each select="marc:subfield[@code='4']">
894 <xsl:value-of select="."/>
898 <xsl:template name="specialSubfieldSelect">
899 <xsl:param name="anyCodes"/>
900 <xsl:param name="axis"/>
901 <xsl:param name="beforeCodes"/>
902 <xsl:param name="afterCodes"/>
903 <xsl:variable name="str">
904 <xsl:for-each select="marc:subfield">
905 <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])">
906 <xsl:value-of select="text()"/>
907 <xsl:text> </xsl:text>
911 <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
914 <xsl:template name="subtitle">
915 <xsl:if test="marc:subfield[@code='b']">
916 <xsl:call-template name="chopPunctuation">
917 <xsl:with-param name="chopString">
918 <xsl:value-of select="marc:subfield[@code='b']"/>
920 <!--<xsl:call-template name="subfieldSelect">
921 <xsl:with-param name="codes">b</xsl:with-param>
922 </xsl:call-template>-->
928 <xsl:template name="part">
929 <xsl:variable name="partNumber">
930 <xsl:call-template name="specialSubfieldSelect">
931 <xsl:with-param name="axis">n</xsl:with-param>
932 <xsl:with-param name="anyCodes">n</xsl:with-param>
933 <xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
936 <xsl:variable name="partName">
937 <xsl:call-template name="specialSubfieldSelect">
938 <xsl:with-param name="axis">p</xsl:with-param>
939 <xsl:with-param name="anyCodes">p</xsl:with-param>
940 <xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
943 <xsl:if test="string-length(normalize-space($partNumber))">
944 <xsl:call-template name="chopPunctuation">
945 <xsl:with-param name="chopString" select="$partNumber"/>
948 <xsl:if test="string-length(normalize-space($partName))">
949 <xsl:call-template name="chopPunctuation">
950 <xsl:with-param name="chopString" select="$partName"/>
954 <xsl:template name="chopBrackets">
955 <xsl:param name="chopString"></xsl:param>
956 <xsl:variable name="string">
957 <xsl:call-template name="chopPunctuation">
958 <xsl:with-param name="chopString" select="$chopString"></xsl:with-param>
961 <xsl:if test="substring($string, 1,1)='['">
962 <xsl:value-of select="substring($string,2, string-length($string)-2)"></xsl:value-of>
964 <xsl:if test="substring($string, 1,1)!='['">
965 <xsl:value-of select="$string"></xsl:value-of>