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

(-)a/C4/XSLT.pm (-3 / +1 lines)
Lines 158-168 sub get_xsl_filename { Link Here
158
            $theme   = C4::Context->preference("opacthemes");
158
            $theme   = C4::Context->preference("opacthemes");
159
            $xslfile = C4::Context->preference('marcflavour') . "slim2OPACResults.xsl";
159
            $xslfile = C4::Context->preference('marcflavour') . "slim2OPACResults.xsl";
160
        } elsif ( $xslsyspref eq 'XSLTListsDisplay' ) {
160
        } elsif ( $xslsyspref eq 'XSLTListsDisplay' ) {
161
162
            # Lists default to *Results.xslt
163
            $htdocs  = C4::Context->config('intrahtdocs');
161
            $htdocs  = C4::Context->config('intrahtdocs');
164
            $theme   = C4::Context->preference("template");
162
            $theme   = C4::Context->preference("template");
165
            $xslfile = C4::Context->preference('marcflavour') . "slim2intranetResults.xsl";
163
            $xslfile = C4::Context->preference('marcflavour') . "slim2intranetLists.xsl";
166
        } elsif ( $xslsyspref eq 'OPACXSLTListsDisplay' ) {
164
        } elsif ( $xslsyspref eq 'OPACXSLTListsDisplay' ) {
167
165
168
            # Lists default to *Results.xslt
166
            # Lists default to *Results.xslt
(-)a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetLists.xsl (+1263 lines)
Line 0 Link Here
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>
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
  xmlns:exsl="http://exslt.org/common"
9
  xmlns:str="http://exslt.org/strings"
10
  exclude-result-prefixes="marc items str" extension-element-prefixes="exsl">
11
    <xsl:import href="MARC21slimUtils.xsl"/>
12
    <xsl:output method = "html" indent="yes" omit-xml-declaration = "yes" encoding="UTF-8"/>
13
14
    <xsl:key name="item-by-status" match="items:item" use="items:status"/>
15
16
    <xsl:template match="/">
17
            <xsl:apply-templates/>
18
    </xsl:template>
19
    <xsl:template match="marc:record">
20
21
        <xsl:variable name="itemcount" select="count(items:items/items:item)"/>
22
23
        <!-- Option: Display Alternate Graphic Representation (MARC 880)  -->
24
        <xsl:variable name="display880" select="boolean(marc:datafield[@tag=880])"/>
25
        <xsl:variable name="UseControlNumber" select="marc:sysprefs/marc:syspref[@name='UseControlNumber']"/>
26
27
        <xsl:variable name="ResultsMaxItems" select="number(marc:sysprefs/marc:syspref[@name='maxItemsInSearchResults']+0)"/>
28
        <xsl:variable name="ResultsLibrary" select="marc:sysprefs/marc:syspref[@name='StaffSearchResultsDisplayBranch']"/>
29
        <xsl:variable name="URLLinkText" select="marc:sysprefs/marc:syspref[@name='URLLinkText']"/>
30
        <xsl:variable name="Show856uAsImage" select="marc:sysprefs/marc:syspref[@name='Display856uAsImage']"/>
31
        <xsl:variable name="AlternateHoldingsField" select="substring(marc:sysprefs/marc:syspref[@name='AlternateHoldingsField'], 1, 3)"/>
32
        <xsl:variable name="AlternateHoldingsSubfields" select="substring(marc:sysprefs/marc:syspref[@name='AlternateHoldingsField'], 4)"/>
33
        <xsl:variable name="AlternateHoldingsSeparator" select="marc:sysprefs/marc:syspref[@name='AlternateHoldingsSeparator']"/>
34
        <xsl:variable name="UseAuthoritiesForTracings" select="marc:sysprefs/marc:syspref[@name='UseAuthoritiesForTracings']"/>
35
        <xsl:variable name="AuthorLinkSortBy" select="marc:sysprefs/marc:syspref[@name='AuthorLinkSortBy']"/>
36
        <xsl:variable name="AuthorLinkSortOrder" select="marc:sysprefs/marc:syspref[@name='AuthorLinkSortOrder']"/>
37
        <xsl:variable name="DisplayIconsXSLT" select="marc:sysprefs/marc:syspref[@name='DisplayIconsXSLT']"/>
38
        <xsl:variable name="IntranetBiblioDefaultView" select="marc:sysprefs/marc:syspref[@name='IntranetBiblioDefaultView']"/>
39
        <xsl:variable name="OpacSuppression" select="marc:sysprefs/marc:syspref[@name='OpacSuppression']"/>
40
        <xsl:variable name="leader" select="marc:leader"/>
41
        <xsl:variable name="leader6" select="substring($leader,7,1)"/>
42
        <xsl:variable name="leader7" select="substring($leader,8,1)"/>
43
        <xsl:variable name="leader19" select="substring($leader,20,1)"/>
44
        <xsl:variable name="biblionumber" select="marc:datafield[@tag=999]/marc:subfield[@code='c']"/>
45
        <xsl:variable name="controlField008" select="marc:controlfield[@tag=008]"/>
46
        <xsl:variable name="typeOf008">
47
            <xsl:choose>
48
                <xsl:when test="$leader19='a'">ST</xsl:when>
49
                <xsl:when test="$leader6='a'">
50
                    <xsl:choose>
51
                        <xsl:when test="$leader7='a' or $leader7='c' or $leader7='d' or $leader7='m'">BK</xsl:when>
52
                        <xsl:when test="$leader7='b' or $leader7='i' or $leader7='s'">CR</xsl:when>
53
                    </xsl:choose>
54
                </xsl:when>
55
                <xsl:when test="$leader6='t'">BK</xsl:when>
56
                <xsl:when test="$leader6='o' or $leader6='p'">MX</xsl:when>
57
                <xsl:when test="$leader6='m'">CF</xsl:when>
58
                <xsl:when test="$leader6='e' or $leader6='f'">MP</xsl:when>
59
                <xsl:when test="$leader6='g' or $leader6='k' or $leader6='r'">VM</xsl:when>
60
                <xsl:when test="$leader6='i' or $leader6='j'">MU</xsl:when>
61
                <xsl:when test="$leader6='c' or $leader6='d'">PR</xsl:when>
62
            </xsl:choose>
63
        </xsl:variable>
64
        <xsl:variable name="controlField008-23" select="substring($controlField008,24,1)"/>
65
        <xsl:variable name="controlField008-21" select="substring($controlField008,22,1)"/>
66
        <xsl:variable name="controlField008-22" select="substring($controlField008,23,1)"/>
67
        <xsl:variable name="controlField008-24" select="substring($controlField008,25,4)"/>
68
        <xsl:variable name="controlField008-26" select="substring($controlField008,27,1)"/>
69
        <xsl:variable name="controlField008-29" select="substring($controlField008,30,1)"/>
70
        <xsl:variable name="controlField008-34" select="substring($controlField008,35,1)"/>
71
        <xsl:variable name="controlField008-33" select="substring($controlField008,34,1)"/>
72
        <xsl:variable name="controlField008-30-31" select="substring($controlField008,31,2)"/>
73
74
        <xsl:variable name="physicalDescription">
75
            <xsl:if test="$typeOf008='CF' and marc:controlfield[@tag=007][substring(.,12,1)='a']">
76
                reformatted digital
77
            </xsl:if>
78
            <xsl:if test="$typeOf008='CF' and marc:controlfield[@tag=007][substring(.,12,1)='b']">
79
                digitized microfilm
80
            </xsl:if>
81
            <xsl:if test="$typeOf008='CF' and marc:controlfield[@tag=007][substring(.,12,1)='d']">
82
                digitized other analog
83
            </xsl:if>
84
85
            <xsl:variable name="check008-23">
86
                <xsl:if test="$typeOf008='BK' or $typeOf008='MU' or $typeOf008='CR' or $typeOf008='MX'">
87
                    <xsl:value-of select="true()"></xsl:value-of>
88
                </xsl:if>
89
            </xsl:variable>
90
            <xsl:variable name="check008-29">
91
                <xsl:if test="$typeOf008='MP' or $typeOf008='VM'">
92
                    <xsl:value-of select="true()"></xsl:value-of>
93
                </xsl:if>
94
            </xsl:variable>
95
            <xsl:choose>
96
                <xsl:when test="($check008-23 and $controlField008-23='f') or ($check008-29 and $controlField008-29='f')">
97
                    braille
98
                </xsl:when>
99
                <xsl:when test="($controlField008-23=' ' and ($leader6='c' or $leader6='d')) or (($typeOf008='BK' or $typeOf008='CR') and ($controlField008-23=' ' or $controlField008='r'))">
100
                    print
101
                </xsl:when>
102
                <xsl:when test="$leader6 = 'm' or ($check008-23 and $controlField008-23='s') or ($check008-29 and $controlField008-29='s')">
103
                    electronic
104
                </xsl:when>
105
                <xsl:when test="($check008-23 and $controlField008-23='b') or ($check008-29 and $controlField008-29='b')">
106
                    microfiche
107
                </xsl:when>
108
                <xsl:when test="($check008-23 and $controlField008-23='a') or ($check008-29 and $controlField008-29='a')">
109
                    microfilm
110
                </xsl:when>
111
                <xsl:when test="($controlField008-23='d' and ($typeOf008='BK' or $typeOf008='CR'))">
112
                    large print
113
                </xsl:when>
114
            </xsl:choose>
115
116
            <xsl:variable name="controlField007" select="marc:controlfield[@tag=007]"/>
117
            <xsl:variable name="cf007ss11" select="substring($controlField007,1,1)"/>
118
            <xsl:variable name="cf007ss21" select="substring($controlField007,2,1)"/>
119
            <xsl:if test="$cf007ss11 = 'c' and $cf007ss21 = 'b'">
120
                chip cartridge
121
            </xsl:if>
122
            <xsl:if test="$cf007ss11 = 'c' and $cf007ss21 = 'j'">
123
                magnetic disc
124
            </xsl:if>
125
            <xsl:if test="$cf007ss11 = 'c' and $cf007ss21 = 'm'">
126
                magneto-optical disc
127
            </xsl:if>
128
            <xsl:if test="$cf007ss11 = 'c' and $cf007ss21 = 'r'">
129
                available online
130
            </xsl:if>
131
            <xsl:if test="$cf007ss11 = 'c' and $cf007ss21 = 'a'">
132
                tape cartridge
133
            </xsl:if>
134
            <xsl:if test="$cf007ss11 = 'c' and $cf007ss21 = 'f'">
135
                tape cassette
136
            </xsl:if>
137
            <xsl:if test="$cf007ss11 = 'c' and $cf007ss21 = 'f'">
138
                tape reel
139
            </xsl:if>
140
141
            <xsl:if test="$cf007ss11 = 'o' and $cf007ss21 = 'o'">
142
                kit
143
            </xsl:if>
144
145
            <xsl:if test="$cf007ss11 = 'a' and $cf007ss21 = 'd'">
146
                atlas
147
            </xsl:if>
148
            <xsl:if test="$cf007ss11 = 'a' and $cf007ss21 = 'g'">
149
                diagram
150
            </xsl:if>
151
            <xsl:if test="$cf007ss11 = 'a' and $cf007ss21 = 'j'">
152
                map
153
            </xsl:if>
154
            <xsl:if test="$cf007ss11 = 'a' and $cf007ss21 = 'q'">
155
                model
156
            </xsl:if>
157
            <xsl:if test="$cf007ss11 = 'a' and $cf007ss21 = 'k'">
158
                profile
159
            </xsl:if>
160
            <xsl:if test="$cf007ss11 = 'a' and $cf007ss21 = 'r'">
161
                remote-sensing image
162
            </xsl:if>
163
            <xsl:if test="$cf007ss11 = 'a' and $cf007ss21 = 's'">
164
                section
165
            </xsl:if>
166
            <xsl:if test="$cf007ss11 = 'a' and $cf007ss21 = 'y'">
167
                view
168
            </xsl:if>
169
170
            <xsl:if test="$cf007ss11 = 'h' and $cf007ss21 = 'a'">
171
                aperture card
172
            </xsl:if>
173
            <xsl:if test="$cf007ss11 = 'h' and $cf007ss21 = 'e'">
174
                microfiche
175
            </xsl:if>
176
            <xsl:if test="$cf007ss11 = 'h' and $cf007ss21 = 'f'">
177
                microfiche cassette
178
            </xsl:if>
179
            <xsl:if test="$cf007ss11 = 'h' and $cf007ss21 = 'b'">
180
                microfilm cartridge
181
            </xsl:if>
182
            <xsl:if test="$cf007ss11 = 'h' and $cf007ss21 = 'c'">
183
                microfilm cassette
184
            </xsl:if>
185
            <xsl:if test="$cf007ss11 = 'h' and $cf007ss21 = 'd'">
186
                microfilm reel
187
            </xsl:if>
188
            <xsl:if test="$cf007ss11 = 'h' and $cf007ss21 = 'g'">
189
                microopaque
190
            </xsl:if>
191
            <xsl:if test="$cf007ss11 = 'm' and $cf007ss21 = 'c'">
192
                film cartridge
193
            </xsl:if>
194
            <xsl:if test="$cf007ss11 = 'm' and $cf007ss21 = 'f'">
195
                film cassette
196
            </xsl:if>
197
            <xsl:if test="$cf007ss11 = 'm' and $cf007ss21 = 'r'">
198
                film reel
199
            </xsl:if>
200
            <xsl:if test="$cf007ss11 = 'k' and $cf007ss21 = 'c'">
201
                collage
202
            </xsl:if>
203
            <xsl:if test="$cf007ss11 = 'k' and $cf007ss21 = 'f'">
204
                photomechanical print
205
            </xsl:if>
206
            <xsl:if test="$cf007ss11 = 'k' and $cf007ss21 = 'g'">
207
                photonegative
208
            </xsl:if>
209
            <xsl:if test="$cf007ss11 = 'k' and $cf007ss21 = 'h'">
210
                photoprint
211
            </xsl:if>
212
            <xsl:if test="$cf007ss11 = 'k' and $cf007ss21 = 'j'">
213
                print
214
            </xsl:if>
215
            <xsl:if test="$cf007ss11 = 'k' and $cf007ss21 = 'l'">
216
                technical drawing
217
            </xsl:if>
218
            <xsl:if test="$cf007ss11 = 'g' and $cf007ss21 = 'd'">
219
                filmslip
220
            </xsl:if>
221
            <xsl:if test="$cf007ss11 = 'g' and $cf007ss21 = 'c'">
222
                filmstrip cartridge
223
            </xsl:if>
224
            <xsl:if test="$cf007ss11 = 'g' and $cf007ss21 = 'o'">
225
                filmstrip roll
226
            </xsl:if>
227
            <xsl:if test="$cf007ss11 = 'g' and $cf007ss21 = 'f'">
228
                other filmstrip type
229
            </xsl:if>
230
            <xsl:if test="$cf007ss11 = 'g' and $cf007ss21 = 't'">
231
                transparency
232
            </xsl:if>
233
            <xsl:if test="$cf007ss11 = 'r' and $cf007ss21 = 'r'">
234
                remote-sensing image
235
            </xsl:if>
236
            <xsl:if test="$cf007ss11 = 's' and $cf007ss21 = 'e'">
237
                cylinder
238
            </xsl:if>
239
            <xsl:if test="$cf007ss11 = 's' and $cf007ss21 = 'q'">
240
                roll
241
            </xsl:if>
242
            <xsl:if test="$cf007ss11 = 's' and $cf007ss21 = 'g'">
243
                sound cartridge
244
            </xsl:if>
245
            <xsl:if test="$cf007ss11 = 's' and $cf007ss21 = 's'">
246
                sound cassette
247
            </xsl:if>
248
            <xsl:if test="$cf007ss11 = 's' and $cf007ss21 = 't'">
249
                sound-tape reel
250
            </xsl:if>
251
            <xsl:if test="$cf007ss11 = 's' and $cf007ss21 = 'i'">
252
                sound-track film
253
            </xsl:if>
254
            <xsl:if test="$cf007ss11 = 's' and $cf007ss21 = 'w'">
255
                wire recording
256
            </xsl:if>
257
            <xsl:if test="$cf007ss11 = 'f' and $cf007ss21 = 'c'">
258
                combination
259
            </xsl:if>
260
            <xsl:if test="$cf007ss11 = 'f' and $cf007ss21 = 'b'">
261
                braille
262
            </xsl:if>
263
            <xsl:if test="$cf007ss11 = 'f' and $cf007ss21 = 'a'">
264
                moon
265
            </xsl:if>
266
            <xsl:if test="$cf007ss11 = 'f' and $cf007ss21 = 'd'">
267
                tactile, with no writing system
268
            </xsl:if>
269
            <xsl:if test="$cf007ss11 = 't' and $cf007ss21 = 'c'">
270
                braille
271
            </xsl:if>
272
            <xsl:if test="$cf007ss11 = 't' and $cf007ss21 = 'a'">
273
                regular print
274
            </xsl:if>
275
            <xsl:if test="$cf007ss11 = 't' and $cf007ss21 = 'd'">
276
                text in looseleaf binder
277
            </xsl:if>
278
            <xsl:if test="$cf007ss11 = 'v' and $cf007ss21 = 'c'">
279
                videocartridge
280
            </xsl:if>
281
            <xsl:if test="$cf007ss11 = 'v' and $cf007ss21 = 'f'">
282
                videocassette
283
            </xsl:if>
284
            <xsl:if test="$cf007ss11 = 'v' and $cf007ss21 = 'r'">
285
                videoreel
286
            </xsl:if>
287
<!--
288
            <xsl:for-each select="marc:datafield[@tag=856]/marc:subfield[@code='q'][string-length(.)>1]">
289
                    <xsl:value-of select="."></xsl:value-of>
290
            </xsl:for-each>
291
            <xsl:for-each select="marc:datafield[@tag=300]">
292
                    <xsl:call-template name="subfieldSelect">
293
                        <xsl:with-param name="codes">abce</xsl:with-param>
294
                    </xsl:call-template>
295
            </xsl:for-each>
296
-->
297
        </xsl:variable>
298
299
        <!-- Title Statement: Alternate Graphic Representation (MARC 880) -->
300
        <xsl:if test="$display880">
301
           <xsl:call-template name="m880Select">
302
              <xsl:with-param name="basetags">245</xsl:with-param>
303
              <xsl:with-param name="codes">abhfgknps</xsl:with-param>
304
              <xsl:with-param name="bibno"><xsl:value-of  select="$biblionumber"/></xsl:with-param>
305
           </xsl:call-template>
306
        </xsl:if>
307
308
    <a>
309
        <xsl:attribute name="href">
310
            <xsl:call-template name="buildBiblioDefaultViewURL">
311
                <xsl:with-param name="IntranetBiblioDefaultView">
312
                    <xsl:value-of select="$IntranetBiblioDefaultView"/>
313
                </xsl:with-param>
314
            </xsl:call-template>
315
            <xsl:value-of select="str:encode-uri($biblionumber, true())"/>
316
        </xsl:attribute>
317
        <xsl:attribute name="class">title</xsl:attribute>
318
319
        <xsl:if test="marc:datafield[@tag=245]">
320
            <xsl:for-each select="marc:datafield[@tag=245]">
321
                <xsl:call-template name="subfieldSelect">
322
                    <xsl:with-param name="codes">a</xsl:with-param>
323
                </xsl:call-template>
324
                <xsl:text> </xsl:text>
325
                <!-- 13381 add additional subfields-->
326
                <!-- bz 17625 adding subfields f and g -->
327
                <xsl:for-each select="marc:subfield[contains('bcfghknps', @code)]">
328
                    <xsl:choose>
329
                        <xsl:when test="@code='h'">
330
                            <!--  13381 Span class around subfield h so it can be suppressed via css -->
331
                            <span class="title_medium"><xsl:apply-templates/> <xsl:text> </xsl:text> </span>
332
                        </xsl:when>
333
                        <xsl:when test="@code='c'">
334
                            <!--  13381 Span class around subfield c so it can be suppressed via css -->
335
                            <span class="title_resp_stmt"><xsl:apply-templates/> <xsl:text> </xsl:text> </span>
336
                        </xsl:when>
337
                        <xsl:otherwise>
338
                            <xsl:apply-templates/>
339
                            <xsl:text> </xsl:text>
340
                        </xsl:otherwise>
341
                    </xsl:choose>
342
                </xsl:for-each>
343
            </xsl:for-each>
344
        </xsl:if>
345
    </a>
346
347
    <!-- Author Statement: Alternate Graphic Representation (MARC 880) -->
348
    <xsl:if test="$display880">
349
      <xsl:call-template name="m880Select">
350
      <xsl:with-param name="basetags">100,110,111,700,710,711</xsl:with-param>
351
      <xsl:with-param name="codes">abc</xsl:with-param>
352
      </xsl:call-template>
353
    </xsl:if>
354
355
    <xsl:choose>
356
    <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]">
357
    <p class="author"><span class="byAuthor">by </span>
358
359
        <xsl:for-each select="marc:datafield[(@tag=100 or @tag=700 or @tag=110 or @tag=710 or @tag=111 or @tag=711) and @ind1!='z']">
360
            <a>
361
                <xsl:choose>
362
                    <xsl:when test="marc:subfield[@code=9] and $UseAuthoritiesForTracings='1'">
363
                        <xsl:attribute name="href">
364
                            <xsl:text>/cgi-bin/koha/catalogue/search.pl?q=an:</xsl:text>
365
                            <xsl:value-of select="str:encode-uri(marc:subfield[@code=9], true())"/>
366
                            <xsl:if test="$AuthorLinkSortBy!='default'">
367
                                <xsl:text>&amp;sort_by=</xsl:text>
368
                                <xsl:value-of select="$AuthorLinkSortBy"/>
369
                                <xsl:text>_</xsl:text>
370
                                <xsl:value-of select="$AuthorLinkSortOrder" />
371
                            </xsl:if>
372
                        </xsl:attribute>
373
                    </xsl:when>
374
                    <xsl:otherwise>
375
                        <xsl:attribute name="href">
376
                            <xsl:text>/cgi-bin/koha/catalogue/search.pl?q=au:"</xsl:text>
377
                            <xsl:value-of select="str:encode-uri(marc:subfield[@code='a'], true())"/>
378
                            <xsl:text>"</xsl:text>
379
                            <xsl:if test="$AuthorLinkSortBy!='default'">
380
                                <xsl:text>&amp;sort_by=</xsl:text>
381
                                <xsl:value-of select="$AuthorLinkSortBy"/>
382
                                <xsl:text>_</xsl:text>
383
                                <xsl:value-of select="$AuthorLinkSortOrder" />
384
                            </xsl:if>
385
                        </xsl:attribute>
386
                    </xsl:otherwise>
387
                </xsl:choose>
388
                <xsl:call-template name="chopPunctuation">
389
                    <xsl:with-param name="chopString">
390
                        <xsl:call-template name="subfieldSelect">
391
                            <xsl:with-param name="codes">
392
                                <xsl:choose>
393
                                    <!-- #13383 include subfield e for field 111  -->
394
                                    <xsl:when test="@tag=111 or @tag=711">aeq</xsl:when>
395
                                    <xsl:when test="@tag=110 or @tag=710">ab</xsl:when>
396
                                    <xsl:otherwise>abcjq</xsl:otherwise>
397
                                </xsl:choose>
398
                            </xsl:with-param>
399
                        </xsl:call-template>
400
                    </xsl:with-param>
401
                    <xsl:with-param name="punctuation">
402
                        <xsl:text>:,;/ </xsl:text>
403
                    </xsl:with-param>
404
                </xsl:call-template>
405
            <!-- Display title portion for 110 and 710 fields -->
406
            <xsl:if test="(@tag=110 or @tag=710) and boolean(marc:subfield[@code='c' or @code='d' or @code='n' or @code='t'])">
407
                <span class="titleportion">
408
                <xsl:choose>
409
                    <xsl:when test="marc:subfield[@code='c' or @code='d' or @code='n'][not(marc:subfield[@code='t'])]"><xsl:text> </xsl:text></xsl:when>
410
                    <xsl:otherwise><xsl:text>. </xsl:text></xsl:otherwise>
411
                </xsl:choose>
412
                <xsl:call-template name="chopPunctuation">
413
                    <xsl:with-param name="chopString">
414
                    <xsl:call-template name="subfieldSelect">
415
                        <xsl:with-param name="codes">cdnt</xsl:with-param>
416
                    </xsl:call-template>
417
                    </xsl:with-param>
418
                </xsl:call-template>
419
                </span>
420
            </xsl:if>
421
            <!-- Display title portion for 111 and 711 fields -->
422
            <xsl:if test="(@tag=111 or @tag=711) and boolean(marc:subfield[@code='c' or @code='d' or @code='g' or @code='n' or @code='t'])">
423
                    <span class="titleportion">
424
                    <xsl:choose>
425
                        <xsl:when test="marc:subfield[@code='c' or @code='d' or @code='g' or @code='n'][not(marc:subfield[@code='t'])]"><xsl:text> </xsl:text></xsl:when>
426
                        <xsl:otherwise><xsl:text>. </xsl:text></xsl:otherwise>
427
                    </xsl:choose>
428
429
                    <xsl:call-template name="chopPunctuation">
430
                        <xsl:with-param name="chopString">
431
                        <xsl:call-template name="subfieldSelect">
432
                            <xsl:with-param name="codes">cdgnt</xsl:with-param>
433
                        </xsl:call-template>
434
                        </xsl:with-param>
435
                    </xsl:call-template>
436
                    </span>
437
            </xsl:if>
438
            <!-- Display dates for 100 and 700 fields -->
439
            <xsl:if test="(@tag=100 or @tag=700) and marc:subfield[@code='d']">
440
                <span class="authordates">
441
                <xsl:text>, </xsl:text>
442
                <xsl:call-template name="chopPunctuation">
443
                    <xsl:with-param name="chopString">
444
                        <xsl:call-template name="subfieldSelect">
445
                           <xsl:with-param name="codes">d</xsl:with-param>
446
                        </xsl:call-template>
447
                    </xsl:with-param>
448
                </xsl:call-template>
449
                </span>
450
            </xsl:if>
451
            <!-- Display title portion for 100 and 700 fields -->
452
            <xsl:if test="@tag=700 and marc:subfield[@code='t']">
453
                <span class="titleportion">
454
                <xsl:text>. </xsl:text>
455
                <xsl:call-template name="chopPunctuation">
456
                    <xsl:with-param name="chopString">
457
                        <xsl:call-template name="subfieldSelect">
458
                            <xsl:with-param name="codes">t</xsl:with-param>
459
                        </xsl:call-template>
460
                    </xsl:with-param>
461
                </xsl:call-template>
462
                </span>
463
            </xsl:if>
464
            </a>
465
            <!-- Display relators for 1XX and 7XX fields -->
466
            <xsl:if test="marc:subfield[@code='4' or @code='e'][not(parent::*[@tag=111])] or (self::*[@tag=111] and marc:subfield[@code='4' or @code='j'][. != ''])">
467
                <span class="relatorcode">
468
                    <xsl:text> [</xsl:text>
469
                    <xsl:choose>
470
                        <xsl:when test="@tag=111 or @tag=711">
471
                            <xsl:choose>
472
                                <!-- Prefer j over 4 -->
473
                                <xsl:when test="marc:subfield[@code='j']">
474
                                    <xsl:for-each select="marc:subfield[@code='j']">
475
                                        <xsl:value-of select="."/>
476
                                        <xsl:if test="position() != last()">, </xsl:if>
477
                                    </xsl:for-each>
478
                                </xsl:when>
479
                                <xsl:otherwise>
480
                                    <xsl:for-each select="marc:subfield[@code=4]">
481
                                        <xsl:value-of select="."/>
482
                                        <xsl:if test="position() != last()">, </xsl:if>
483
                                    </xsl:for-each>
484
                                </xsl:otherwise>
485
                            </xsl:choose>
486
                        </xsl:when>
487
                        <!-- Prefer e over 4 -->
488
                        <xsl:when test="marc:subfield[@code='e']">
489
                            <xsl:for-each select="marc:subfield[@code='e'][not(@tag=111) or not(@tag=711)]">
490
                                <xsl:value-of select="."/>
491
                                <xsl:if test="position() != last()">, </xsl:if>
492
                            </xsl:for-each>
493
                        </xsl:when>
494
                        <xsl:otherwise>
495
                            <xsl:for-each select="marc:subfield[@code=4]">
496
                                <xsl:value-of select="."/>
497
                                <xsl:if test="position() != last()">, </xsl:if>
498
                            </xsl:for-each>
499
                        </xsl:otherwise>
500
                    </xsl:choose>
501
                    <xsl:text>]</xsl:text>
502
                </span>
503
            </xsl:if>
504
            <xsl:choose>
505
                <xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><span class="separator"><xsl:text> | </xsl:text></span></xsl:otherwise>
506
            </xsl:choose>
507
        </xsl:for-each>
508
    </p>
509
    </xsl:when>
510
    </xsl:choose>
511
512
<xsl:if test="$DisplayIconsXSLT!='0'">
513
    <span class="results_summary">
514
    <xsl:if test="$typeOf008!=''">
515
        <span class="results_material_type">
516
        <span class="label">Material type: </span>
517
            <xsl:choose>
518
                <xsl:when test="$leader19='a'"><img src="/intranet-tmpl/prog/img/famfamfam/silk/book_link.png" alt="book" title="book" class="materialtype"/> Set</xsl:when>
519
                <xsl:when test="$leader6='a'">
520
                    <xsl:choose>
521
                        <xsl:when test="$leader7='c' or $leader7='d' or $leader7='m'"><img src="/intranet-tmpl/prog/img/famfamfam/silk/book.png" alt="book" title="book" class="materialtype mt_icon_BK"/> Text</xsl:when>
522
                        <xsl:when test="$leader7='i' or $leader7='s'"><img src="/intranet-tmpl/prog/img/famfamfam/silk/newspaper.png" alt="serial" title="serial" class="materialtype mt_icon_CR"/> Continuing resource</xsl:when>
523
                        <xsl:when test="$leader7='a' or $leader7='b'"><img src="/intranet-tmpl/prog/img/famfamfam/silk/book_open.png" alt="" class="materialtype mt_icon_AR"/> Article</xsl:when>
524
                    </xsl:choose>
525
                </xsl:when>
526
                <xsl:when test="$leader6='t'"><img src="/intranet-tmpl/prog/img/famfamfam/silk/book.png" alt="" class="materialtype mt_icon_BK"/> Text</xsl:when>
527
                <xsl:when test="$leader6='o'"><img src="/intranet-tmpl/prog/img/famfamfam/silk/report_disk.png" alt="" class="materialtype mt_icon_MX"/> Kit</xsl:when>
528
                <xsl:when test="$leader6='p'"><img src="/intranet-tmpl/prog/img/famfamfam/silk/report_disk.png" alt="" class="materialtype mt_icon_MX"/>Mixed materials</xsl:when>
529
                <xsl:when test="$leader6='m'"><img src="/intranet-tmpl/prog/img/famfamfam/silk/computer_link.png" alt="" class="materialtype mt_icon_CF"/> Computer file</xsl:when>
530
                <xsl:when test="$leader6='e' or $leader6='f'"><img src="/intranet-tmpl/prog/img/famfamfam/silk/map.png" alt="" class="materialtype mt_icon_MP"/> Map</xsl:when>
531
                <xsl:when test="$leader6='g'"><img src="/intranet-tmpl/prog/img/famfamfam/silk/film.png" alt="" class="materialtype mt_icon_VM"/> Film</xsl:when>
532
                <xsl:when test="$leader6='k'"><img src="/intranet-tmpl/prog/img/famfamfam/silk/picture.png" alt="" class="materialtype mt_icon_GR"/> Picture</xsl:when>
533
                <xsl:when test="$leader6='r'"><img src="/intranet-tmpl/prog/img/famfamfam/silk/object.png" alt="" class="materialtype mt_icon_OB"/> Object</xsl:when>
534
                <xsl:when test="$leader6='c' or $leader6='d'"><img src="/intranet-tmpl/prog/img/famfamfam/silk/music.png" alt="" class="materialtype mt_icon_PR"/> Score</xsl:when>
535
                <xsl:when test="$leader6='i'"><img src="/intranet-tmpl/prog/img/famfamfam/silk/sound.png" alt="" class="materialtype mt_icon_MU"/> Sound</xsl:when>
536
                <xsl:when test="$leader6='j'"><img src="/intranet-tmpl/prog/img/famfamfam/silk/sound.png" alt="" class="materialtype mt_icon_MU"/> Music</xsl:when>
537
            </xsl:choose>
538
        </span>
539
    </xsl:if>
540
541
    <xsl:if test="string-length(normalize-space($physicalDescription))">
542
        <span class="results_format">
543
            <span class="label">; Format: </span><xsl:copy-of select="$physicalDescription"></xsl:copy-of>
544
        </span>
545
    </xsl:if>
546
547
    <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">
548
549
        <xsl:if test="$typeOf008='CR'">
550
        <span class="results_typeofcontinueing">
551
        <xsl:if test="$controlField008-21 and $controlField008-21 !='|' and $controlField008-21 !=' '">
552
        <span class="label">; Type of continuing resource: </span>
553
        </xsl:if>
554
            <xsl:choose>
555
                <xsl:when test="$controlField008-21='l'">
556
                    loose-leaf
557
                </xsl:when>
558
                <xsl:when test="$controlField008-21='m'">
559
                    series
560
                </xsl:when>
561
                <xsl:when test="$controlField008-21='n'">
562
                    newspaper
563
                </xsl:when>
564
                <xsl:when test="$controlField008-21='p'">
565
                    periodical
566
                </xsl:when>
567
            </xsl:choose>
568
        </span>
569
        </xsl:if>
570
        <xsl:if test="$typeOf008='BK' or $typeOf008='CR'">
571
        <xsl:if test="contains($controlField008-24,'abcdefghijklmnopqrstvwxyz')">
572
        <span class="results_natureofcontents">
573
        <span class="label">; Nature of contents: </span>
574
            <xsl:choose>
575
                <xsl:when test="contains($controlField008-24,'a')">
576
                    abstract or summary
577
                </xsl:when>
578
                <xsl:when test="contains($controlField008-24,'b')">
579
                    bibliography
580
                </xsl:when>
581
                <xsl:when test="contains($controlField008-24,'c')">
582
                    catalog
583
                </xsl:when>
584
                <xsl:when test="contains($controlField008-24,'d')">
585
                    dictionary
586
                </xsl:when>
587
                <xsl:when test="contains($controlField008-24,'e')">
588
                    encyclopedia
589
                </xsl:when>
590
                <xsl:when test="contains($controlField008-24,'f')">
591
                    handbook
592
                </xsl:when>
593
                <xsl:when test="contains($controlField008-24,'g')">
594
                    legal article
595
                </xsl:when>
596
                <xsl:when test="contains($controlField008-24,'i')">
597
                    index
598
                </xsl:when>
599
                <xsl:when test="contains($controlField008-24,'k')">
600
                    discography
601
                </xsl:when>
602
                <xsl:when test="contains($controlField008-24,'l')">
603
                    legislation
604
                </xsl:when>
605
                <xsl:when test="contains($controlField008-24,'m')">
606
                    theses
607
                </xsl:when>
608
                <xsl:when test="contains($controlField008-24,'n')">
609
                    survey of literature
610
                </xsl:when>
611
                <xsl:when test="contains($controlField008-24,'o')">
612
                    review
613
                </xsl:when>
614
                <xsl:when test="contains($controlField008-24,'p')">
615
                    programmed text
616
                </xsl:when>
617
                <xsl:when test="contains($controlField008-24,'q')">
618
                    filmography
619
                </xsl:when>
620
                <xsl:when test="contains($controlField008-24,'r')">
621
                    directory
622
                </xsl:when>
623
                <xsl:when test="contains($controlField008-24,'s')">
624
                    statistics
625
                </xsl:when>
626
                <xsl:when test="contains($controlField008-24,'v')">
627
                    legal case and case notes
628
                </xsl:when>
629
                <xsl:when test="contains($controlField008-24,'w')">
630
                    law report or digest
631
                </xsl:when>
632
                <xsl:when test="contains($controlField008-24,'z')">
633
                    treaty
634
                </xsl:when>
635
            </xsl:choose>
636
            <xsl:choose>
637
                <xsl:when test="$controlField008-29='1'">
638
                    conference publication
639
                </xsl:when>
640
            </xsl:choose>
641
        </span>
642
        </xsl:if>
643
        </xsl:if>
644
        <xsl:if test="$typeOf008='CF'">
645
        <span class="results_typeofcomp">
646
            <xsl:if test="$controlField008-26='a' or $controlField008-26='e' or $controlField008-26='f' or $controlField008-26='g'">
647
            <span class="label">; Type of computer file: </span>
648
            </xsl:if>
649
            <xsl:choose>
650
                <xsl:when test="$controlField008-26='a'">
651
                    numeric data
652
                </xsl:when>
653
            </xsl:choose>
654
        </span>
655
        </xsl:if>
656
        <xsl:if test="$typeOf008='BK'">
657
        <span class="results_contents_literary">
658
            <xsl:if test="(substring($controlField008,25,1)='j') or (substring($controlField008,25,1)='1') or ($controlField008-34='a' or $controlField008-34='b' or $controlField008-34='c' or $controlField008-34='d')">
659
            <span class="label">; Nature of contents: </span>
660
            </xsl:if>
661
            <xsl:if test="substring($controlField008,25,1)='j'">
662
                patent
663
            </xsl:if>
664
            <xsl:if test="substring($controlField008,31,1)='1'">
665
                festschrift
666
            </xsl:if>
667
668
            <xsl:if test="$controlField008-33 and $controlField008-33!='|' and $controlField008-33!='u' and $controlField008-33!=' '">
669
            <span class="label">; Literary form: </span>
670
            </xsl:if>
671
            <xsl:choose>
672
                <xsl:when test="$controlField008-33='0'">
673
                    Not fiction
674
                </xsl:when>
675
                <xsl:when test="$controlField008-33='1'">
676
                    Fiction
677
                </xsl:when>
678
                <xsl:when test="$controlField008-33='d'">
679
                    Dramas
680
                </xsl:when>
681
                <xsl:when test="$controlField008-33='e'">
682
                    Essays
683
                </xsl:when>
684
                <xsl:when test="$controlField008-33='f'">
685
                    Novels
686
                </xsl:when>
687
                <xsl:when test="$controlField008-33='h'">
688
                    Humor, satires, etc.
689
                </xsl:when>
690
                <xsl:when test="$controlField008-33='i'">
691
                    Letters
692
                </xsl:when>
693
                <xsl:when test="$controlField008-33='j'">
694
                    Short stories
695
                </xsl:when>
696
                <xsl:when test="$controlField008-33='m'">
697
                    Mixed forms
698
                </xsl:when>
699
                <xsl:when test="$controlField008-33='p'">
700
                    Poetry
701
                </xsl:when>
702
                <xsl:when test="$controlField008-33='s'">
703
                    Speeches
704
                </xsl:when>
705
            </xsl:choose>
706
        </span>
707
        </xsl:if>
708
        <xsl:if test="$typeOf008='MU' and $controlField008-30-31 and $controlField008-30-31!='||' and $controlField008-30-31!='  '">
709
        <span class="results_literaryform">
710
            <span class="label">; Literary form: </span> <!-- Literary text for sound recordings -->
711
            <xsl:if test="contains($controlField008-30-31,'b')">
712
                biography
713
            </xsl:if>
714
            <xsl:if test="contains($controlField008-30-31,'c')">
715
                conference publication
716
            </xsl:if>
717
            <xsl:if test="contains($controlField008-30-31,'d')">
718
                drama
719
            </xsl:if>
720
            <xsl:if test="contains($controlField008-30-31,'e')">
721
                essay
722
            </xsl:if>
723
            <xsl:if test="contains($controlField008-30-31,'f')">
724
                fiction
725
            </xsl:if>
726
            <xsl:if test="contains($controlField008-30-31,'o')">
727
                folktale
728
            </xsl:if>
729
            <xsl:if test="contains($controlField008-30-31,'h')">
730
                history
731
            </xsl:if>
732
            <xsl:if test="contains($controlField008-30-31,'k')">
733
                humor, satire
734
            </xsl:if>
735
            <xsl:if test="contains($controlField008-30-31,'m')">
736
                memoir
737
            </xsl:if>
738
            <xsl:if test="contains($controlField008-30-31,'p')">
739
                poetry
740
            </xsl:if>
741
            <xsl:if test="contains($controlField008-30-31,'r')">
742
                rehearsal
743
            </xsl:if>
744
            <xsl:if test="contains($controlField008-30-31,'g')">
745
                reporting
746
            </xsl:if>
747
            <xsl:if test="contains($controlField008-30-31,'s')">
748
                sound
749
            </xsl:if>
750
            <xsl:if test="contains($controlField008-30-31,'l')">
751
                speech
752
            </xsl:if>
753
        </span>
754
        </xsl:if>
755
        <xsl:if test="$typeOf008='VM'">
756
        <span class="results_typeofvisual">
757
            <span class="label">; Type of visual material: </span>
758
            <xsl:choose>
759
                <xsl:when test="$controlField008-33='a'">
760
                    art original
761
                </xsl:when>
762
                <xsl:when test="$controlField008-33='b'">
763
                    kit
764
                </xsl:when>
765
                <xsl:when test="$controlField008-33='c'">
766
                    art reproduction
767
                </xsl:when>
768
                <xsl:when test="$controlField008-33='d'">
769
                    diorama
770
                </xsl:when>
771
                <xsl:when test="$controlField008-33='f'">
772
                    filmstrip
773
                </xsl:when>
774
                <xsl:when test="$controlField008-33='g'">
775
                    game
776
                </xsl:when>
777
                <xsl:when test="$controlField008-33='i'">
778
                    picture
779
                </xsl:when>
780
                <xsl:when test="$controlField008-33='k'">
781
                    graphic
782
                </xsl:when>
783
                <xsl:when test="$controlField008-33='l'">
784
                    technical drawing
785
                </xsl:when>
786
                <xsl:when test="$controlField008-33='m'">
787
                    motion picture
788
                </xsl:when>
789
                <xsl:when test="$controlField008-33='n'">
790
                    chart
791
                </xsl:when>
792
                <xsl:when test="$controlField008-33='o'">
793
                    flash card
794
                </xsl:when>
795
                <xsl:when test="$controlField008-33='p'">
796
                    microscope slide
797
                </xsl:when>
798
                <xsl:when test="$controlField008-33='q' or marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='q']">
799
                    model
800
                </xsl:when>
801
                <xsl:when test="$controlField008-33='r'">
802
                    realia
803
                </xsl:when>
804
                <xsl:when test="$controlField008-33='s'">
805
                    slide
806
                </xsl:when>
807
                <xsl:when test="$controlField008-33='t'">
808
                    transparency
809
                </xsl:when>
810
                <xsl:when test="$controlField008-33='v'">
811
                    videorecording
812
                </xsl:when>
813
                <xsl:when test="$controlField008-33='w'">
814
                    toy
815
                </xsl:when>
816
            </xsl:choose>
817
        </span>
818
        </xsl:if>
819
    </xsl:if>
820
821
    <xsl:if test="($typeOf008='BK' or $typeOf008='CF' or $typeOf008='MU' or $typeOf008='VM') and ($controlField008-22='a' or $controlField008-22='b' or $controlField008-22='c' or $controlField008-22='d' or $controlField008-22='e' or $controlField008-22='g' or $controlField008-22='j' or $controlField008-22='f')">
822
    <span class="results_audience">
823
        <span class="label">; Audience: </span>
824
        <xsl:choose>
825
            <xsl:when test="$controlField008-22='a'">
826
             Preschool;
827
            </xsl:when>
828
            <xsl:when test="$controlField008-22='b'">
829
             Primary;
830
            </xsl:when>
831
            <xsl:when test="$controlField008-22='c'">
832
             Pre-adolescent;
833
            </xsl:when>
834
            <xsl:when test="$controlField008-22='d'">
835
             Adolescent;
836
            </xsl:when>
837
            <xsl:when test="$controlField008-22='e'">
838
             Adult;
839
            </xsl:when>
840
            <xsl:when test="$controlField008-22='g'">
841
             General;
842
            </xsl:when>
843
            <xsl:when test="$controlField008-22='j'">
844
             Juvenile;
845
            </xsl:when>
846
            <xsl:when test="$controlField008-22='f'">
847
             Specialized;
848
            </xsl:when>
849
        </xsl:choose>
850
    </span>
851
    </xsl:if>
852
<xsl:text> </xsl:text> <!-- added blank space to fix font display problem, see Bug 3671 -->
853
</span>
854
</xsl:if> <!-- DisplayIconsXSLT -->
855
856
    <xsl:call-template name="show-lang-041"/>
857
858
    <!-- Publisher Statement: Alternate Graphic Representation (MARC 880) -->
859
    <xsl:if test="$display880">
860
      <xsl:call-template name="m880Select">
861
        <xsl:with-param name="basetags">260</xsl:with-param>
862
        <xsl:with-param name="codes">abcg</xsl:with-param>
863
        <xsl:with-param name="class">results_summary publisher</xsl:with-param>
864
        <xsl:with-param name="label">Publication details: </xsl:with-param>
865
      </xsl:call-template>
866
    </xsl:if>
867
868
    <xsl:call-template name="show-series">
869
        <xsl:with-param name="searchurl">/cgi-bin/koha/catalogue/search.pl</xsl:with-param>
870
        <xsl:with-param name="UseControlNumber" select="$UseControlNumber"/>
871
        <xsl:with-param name="UseAuthoritiesForTracings" select="$UseAuthoritiesForTracings"/>
872
    </xsl:call-template>
873
874
    <!-- Publisher info and RDA related info from tags 260, 264 -->
875
    <xsl:choose>
876
        <xsl:when test="marc:datafield[@tag=264]">
877
            <xsl:call-template name="showRDAtag264"/>
878
        </xsl:when>
879
        <xsl:when test="marc:datafield[@tag=260]">
880
            <span class="results_summary publisher"><span class="label">Publication details: </span>
881
                <xsl:for-each select="marc:datafield[@tag=260]">
882
                    <xsl:if test="marc:subfield[@code='a']">
883
                        <xsl:call-template name="subfieldSelect">
884
                            <xsl:with-param name="codes">a</xsl:with-param>
885
                        </xsl:call-template>
886
                    </xsl:if>
887
                    <xsl:text> </xsl:text>
888
                    <xsl:if test="marc:subfield[@code='b']">
889
                        <xsl:call-template name="subfieldSelect">
890
                            <xsl:with-param name="codes">b</xsl:with-param>
891
                        </xsl:call-template>
892
                    </xsl:if>
893
                    <xsl:text> </xsl:text>
894
                    <xsl:call-template name="chopPunctuation">
895
                      <xsl:with-param name="chopString">
896
                        <xsl:call-template name="subfieldSelect">
897
                            <xsl:with-param name="codes">cg</xsl:with-param>
898
                        </xsl:call-template>
899
                       </xsl:with-param>
900
                    </xsl:call-template>
901
                    <xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
902
                </xsl:for-each>
903
            </span>
904
        </xsl:when>
905
    </xsl:choose>
906
907
    <!-- Publisher or Distributor Number -->
908
    <xsl:if test="marc:datafield[@tag=028]">
909
        <span class="results_summary publisher_number ">
910
            <span class="label">Publisher number: </span>
911
            <xsl:for-each select="marc:datafield[@tag=028]">
912
                <xsl:call-template name="subfieldSelect">
913
                    <xsl:with-param name="codes">abq</xsl:with-param>
914
                    <xsl:with-param name="delimeter"><xsl:text> | </xsl:text></xsl:with-param>
915
                </xsl:call-template>
916
            </xsl:for-each>
917
        </span>
918
    </xsl:if>
919
920
    <!-- Dissertation note -->
921
    <xsl:if test="marc:datafield[@tag=502]">
922
        <span class="results_summary diss_note">
923
            <span class="label">Dissertation note: </span>
924
            <xsl:for-each select="marc:datafield[@tag=502]">
925
                <xsl:call-template name="subfieldSelect">
926
                    <xsl:with-param name="codes">abcdgo</xsl:with-param>
927
                </xsl:call-template>
928
            </xsl:for-each>
929
            <xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text> </xsl:text></xsl:otherwise></xsl:choose>
930
        </span>
931
    </xsl:if>
932
933
    <xsl:if test="marc:datafield[@tag=300]">
934
    <span class="results_summary description"><span class="label">Description: </span>
935
        <xsl:for-each select="marc:datafield[@tag=300]">
936
            <xsl:call-template name="chopPunctuation">
937
              <xsl:with-param name="chopString">
938
                <xsl:call-template name="subfieldSelect">
939
                    <xsl:with-param name="codes">abcefg</xsl:with-param>
940
                </xsl:call-template>
941
               </xsl:with-param>
942
           </xsl:call-template>
943
                <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
944
        </xsl:for-each>
945
    </span>
946
   </xsl:if>
947
948
   <xsl:call-template name="showISBNISSN"/>
949
950
    <xsl:if test="marc:datafield[@tag=250]">
951
    <span class="results_summary edition">
952
    <span class="label">Edition: </span>
953
            <xsl:for-each select="marc:datafield[@tag=250]">
954
                    <xsl:call-template name="subfieldSelect">
955
                        <xsl:with-param name="codes">ab</xsl:with-param>
956
                    </xsl:call-template>
957
            </xsl:for-each>
958
    </span>
959
    </xsl:if>
960
961
    <!-- Other Title  Statement: Alternate Graphic Representation (MARC 880) -->
962
    <xsl:if test="$display880">
963
       <xsl:call-template name="m880Select">
964
         <xsl:with-param name="basetags">246</xsl:with-param>
965
         <xsl:with-param name="codes">ab</xsl:with-param>
966
         <xsl:with-param name="class">results_summary other_title</xsl:with-param>
967
         <xsl:with-param name="label">Other title: </xsl:with-param>
968
       </xsl:call-template>
969
    </xsl:if>
970
971
    <xsl:if test="marc:datafield[@tag=246]">
972
    <span class="results_summary other_title">
973
    <span class="label">Other title: </span>
974
            <xsl:for-each select="marc:datafield[@tag=246]">
975
                    <xsl:call-template name="subfieldSelect">
976
                        <xsl:with-param name="codes">ab</xsl:with-param>
977
                    </xsl:call-template>
978
                <!-- #13386 added separator | -->
979
                <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><span class="separator"><xsl:text> | </xsl:text></span></xsl:otherwise></xsl:choose>
980
            </xsl:for-each>
981
    </span>
982
    </xsl:if>
983
984
    <!-- Availability line -->
985
    <div class="results_summary availability">
986
987
        <xsl:variable name="item_status_list">
988
            <status english="Checked out">Checked out</status>
989
            <status english="Withdrawn">Withdrawn</status>
990
            <status english="Lost">Lost</status>
991
            <status english="Damaged">Damaged</status>
992
            <status english="Pending hold">Pending hold</status>
993
            <status english="In transit">In transit</status>
994
            <status english="Hold waiting">On hold</status>
995
            <status english="Recall waiting">Waiting recall</status>
996
            <status english="Not for loan">Not for loan</status>
997
        </xsl:variable>
998
999
        <span class="label">Availability: </span>
1000
1001
        <xsl:choose>
1002
            <!-- When there are no items, try alternate holdings -->
1003
            <xsl:when test="$itemcount=0">
1004
                <xsl:choose>
1005
                    <xsl:when test="string-length($AlternateHoldingsField)=3 and marc:datafield[@tag=$AlternateHoldingsField]">
1006
                    <xsl:variable name="AlternateHoldingsCount" select="count(marc:datafield[@tag=$AlternateHoldingsField])"/>
1007
                    <xsl:for-each select="marc:datafield[@tag=$AlternateHoldingsField][1]">
1008
                        <xsl:call-template name="subfieldSelect">
1009
                            <xsl:with-param name="codes"><xsl:value-of select="$AlternateHoldingsSubfields"/></xsl:with-param>
1010
                            <xsl:with-param name="delimeter"><xsl:value-of select="$AlternateHoldingsSeparator"/></xsl:with-param>
1011
                        </xsl:call-template>
1012
                    </xsl:for-each>
1013
                    (<xsl:value-of select="$AlternateHoldingsCount"/>)
1014
                    </xsl:when>
1015
                    <xsl:otherwise><span class="noitems">No items available.</span> </xsl:otherwise>
1016
                </xsl:choose>
1017
            </xsl:when>
1018
1019
            <xsl:otherwise>
1020
                <xsl:variable name="sumAv" select="count(key('item-by-status', 'available'))"/>
1021
                <xsl:variable name="sumRef" select="count(key('item-by-status', 'reference'))"/>
1022
1023
                <!-- Availability part 1: ITEMS FOR LOAN -->
1024
                <xsl:if test="$sumAv>0"><span class="available reallyavailable">
1025
                    <span class="AvailabilityLabel"><strong><xsl:text>Items available for loan: </xsl:text></strong></span>
1026
                    <xsl:variable name="available_items" select="key('item-by-status', 'available')"/>
1027
                    <!-- group by branch, see also pref StaffSearchResultsDisplayBranch -->
1028
                    <xsl:for-each select="$available_items[not(items:resultbranch=preceding-sibling::*[items:status='available']/items:resultbranch)]">
1029
                        <xsl:sort select="items:resultbranch"/>
1030
                        <xsl:variable name="currentbranch" select="items:resultbranch"/>
1031
                        <span class="ItemSummary">
1032
                        <xsl:call-template name="listCallNumbers">
1033
                            <xsl:with-param name="items" select="$available_items[items:resultbranch=$currentbranch]"/>
1034
                            <xsl:with-param name="max" select="$ResultsMaxItems"/>
1035
                            <xsl:with-param name="status_text" select="$currentbranch"/>
1036
                            <xsl:with-param name="class_block" select="'available'"/>
1037
                            <xsl:with-param name="class_status" select="'ItemBranch'"/>
1038
                        </xsl:call-template>
1039
                        </span>
1040
                    </xsl:for-each>
1041
                </span></xsl:if>
1042
1043
                <!-- Availability part 2: ITEMS FOR REFERENCE (see also pref Reference_NFL_Statuses) -->
1044
                <xsl:if test="$sumRef>0"><span class="available reference">
1045
                    <span class="AvailabilityLabel"><strong><xsl:text>Items available for reference: </xsl:text></strong></span>
1046
                    <xsl:variable name="reference_items" select="key('item-by-status', 'reference')"/>
1047
                    <!-- group by branch, then by substatus -->
1048
                    <xsl:for-each select="$reference_items[not(items:resultbranch=preceding-sibling::*[items:status='reference']/items:resultbranch)]">
1049
                        <xsl:sort select="items:resultbranch"/>
1050
                        <xsl:variable name="currentbranch" select="items:resultbranch"/>
1051
                        <xsl:for-each select="$reference_items[not(items:substatus=preceding-sibling::*[items:status='reference']/items:substatus)]">
1052
                            <xsl:sort select="items:substatus"/>
1053
                            <xsl:variable name="current_substatus" select="items:substatus"/>
1054
                            <span class="ItemSummary">
1055
                            <xsl:call-template name="listCallNumbers">
1056
                                <xsl:with-param name="items" select="$reference_items[items:resultbranch=$currentbranch and items:substatus=$current_substatus]"/>
1057
                                <xsl:with-param name="max" select="$ResultsMaxItems"/>
1058
                                <xsl:with-param name="status_text">
1059
                                    <xsl:value-of select="concat($currentbranch,': ')"/>
1060
                                    <xsl:value-of select="exsl:node-set($item_status_list)/status[@english=$current_substatus]|$current_substatus"/>
1061
                                    <!-- Note that value-of here picks string value of first node only from the union; keep in mind too that current_substatus may contain an authorised value -->
1062
                                </xsl:with-param>
1063
                                <xsl:with-param name="class_block" select="concat('notforloandesc_',$current_substatus)"/>
1064
                                <xsl:with-param name="class_status" select="'ItemBranch'"/>
1065
                            </xsl:call-template>
1066
                            </span>
1067
                        </xsl:for-each>
1068
                    </xsl:for-each>
1069
                </span></xsl:if>
1070
1071
                <!-- Availability part 3: UNAVAILABLE ITEMS (see also pref Reference_NFL_Statuses); status reallynotforloan or status other -->
1072
                <xsl:if test="number($sumAv+$sumRef) &lt; number($itemcount)"><span class="unavailable-list">
1073
                    <span class="AvailabilityLabel"><strong><xsl:text>Not available: </xsl:text></strong></span>
1074
                    <xsl:variable name="unavailable_items" select="key('item-by-status', 'reallynotforloan')|key('item-by-status', 'other')"/>
1075
                    <!-- First group by branch -->
1076
                    <xsl:for-each select="items:items/items:item[not(items:resultbranch=preceding-sibling::*/items:resultbranch)]">
1077
                        <xsl:sort select="items:resultbranch"/>
1078
                        <xsl:variable name="currentbranch" select="items:resultbranch"/>
1079
                        <span class="ItemSummary unavailable-list">
1080
                        <!-- Within same branch, group by substatus -->
1081
                        <xsl:for-each select="$unavailable_items[not(items:substatus=preceding-sibling::*[items:status='reallynotforloan' or items:status='other']/items:substatus)]">
1082
                            <xsl:sort select="items:substatus"/>
1083
                            <xsl:variable name="current_substatus" select="items:substatus"/>
1084
                                <xsl:call-template name="listCallNumbers">
1085
                                    <xsl:with-param name="items" select="$unavailable_items[items:resultbranch=$currentbranch and items:substatus=$current_substatus]"/>
1086
                                    <xsl:with-param name="status_text">
1087
                                        <xsl:value-of select="$currentbranch"/>
1088
                                        <xsl:text>: </xsl:text>
1089
                                        <xsl:value-of select="exsl:node-set($item_status_list)/status[@english=$current_substatus]|$current_substatus"/><!-- See former comment on value-of and union -->
1090
                                    </xsl:with-param>
1091
                                    <xsl:with-param name="class_block" select="concat('unavailable_',items:substatus)"/>
1092
                                    <xsl:with-param name="class_status" select="'ItemBranch'"/>
1093
                                </xsl:call-template>
1094
                        </xsl:for-each>
1095
                        </span>
1096
                    </xsl:for-each>
1097
                </span></xsl:if>
1098
1099
            </xsl:otherwise>
1100
        </xsl:choose>
1101
    </div>
1102
    <!-- End of Availability line -->
1103
1104
    <xsl:call-template name="host-item-entries">
1105
        <xsl:with-param name="UseControlNumber" select="$UseControlNumber"/>
1106
    </xsl:call-template>
1107
1108
    <xsl:if test="marc:datafield[@tag=856]">
1109
        <xsl:if test="marc:datafield[@tag=856]/marc:subfield[@code='u']">
1110
        <span class="results_summary online_resources">
1111
            <span class="label">Online resources: </span>
1112
            <xsl:for-each select="marc:datafield[@tag=856 and marc:subfield[@code='u']]">
1113
                <xsl:variable name="SubqText"><xsl:value-of select="marc:subfield[@code='q']"/></xsl:variable>
1114
                <a>
1115
                    <xsl:attribute name="href">
1116
                        <xsl:call-template name="AddMissingProtocol">
1117
                            <xsl:with-param name="resourceLocation" select="marc:subfield[@code='u']"/>
1118
                            <xsl:with-param name="indicator1" select="@ind1"/>
1119
                            <xsl:with-param name="accessMethod" select="marc:subfield[@code='2']"/>
1120
                        </xsl:call-template>
1121
                        <xsl:value-of select="marc:subfield[@code='u']"/>
1122
                    </xsl:attribute>
1123
                    <xsl:choose>
1124
                        <xsl:when test="($Show856uAsImage='Results' or $Show856uAsImage='Both') and (substring($SubqText,1,6)='image/' or $SubqText='img' or $SubqText='bmp' or $SubqText='cod' or $SubqText='gif' or $SubqText='ief' or $SubqText='jpe' or $SubqText='jpeg' or $SubqText='jpg' or $SubqText='jfif' or $SubqText='png' or $SubqText='svg' or $SubqText='tif' or $SubqText='tiff' or $SubqText='ras' or $SubqText='cmx' or $SubqText='ico' or $SubqText='pnm' or $SubqText='pbm' or $SubqText='pgm' or $SubqText='ppm' or $SubqText='rgb' or $SubqText='xbm' or $SubqText='xpm' or $SubqText='xwd')">
1125
                            <xsl:element name="img"><xsl:attribute name="src"><xsl:value-of select="marc:subfield[@code='u']"/></xsl:attribute><xsl:attribute name="alt"><xsl:value-of select="marc:subfield[@code='y']"/></xsl:attribute><xsl:attribute name="height">100</xsl:attribute></xsl:element><xsl:text></xsl:text>
1126
                        </xsl:when>
1127
                        <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']">
1128
                            <xsl:call-template name="subfieldSelect">
1129
                                <xsl:with-param name="codes">y3z</xsl:with-param>
1130
                            </xsl:call-template>
1131
                        </xsl:when>
1132
                        <xsl:when test="not(marc:subfield[@code='y']) and not(marc:subfield[@code='3']) and not(marc:subfield[@code='z'])">
1133
                            <xsl:choose>
1134
                                <xsl:when test="$URLLinkText!=''">
1135
                                    <xsl:value-of select="$URLLinkText"/>
1136
                                </xsl:when>
1137
                                <xsl:otherwise>
1138
                                    <xsl:text>Click here to access online</xsl:text>
1139
                                </xsl:otherwise>
1140
                            </xsl:choose>
1141
                        </xsl:when>
1142
                    </xsl:choose>
1143
                </a>
1144
                <xsl:choose>
1145
                    <xsl:when test="position()=last()"><xsl:text> </xsl:text></xsl:when>
1146
                    <xsl:otherwise> | </xsl:otherwise>
1147
                </xsl:choose>
1148
            </xsl:for-each>
1149
        </span>
1150
        </xsl:if>
1151
    </xsl:if>
1152
1153
    <!-- Content Warning -->
1154
    <xsl:variable name="ContentWarningField" select="marc:sysprefs/marc:syspref[@name='ContentWarningField']"/>
1155
    <xsl:call-template name="content-warning">
1156
        <xsl:with-param name="tag" select="$ContentWarningField" />
1157
    </xsl:call-template>
1158
1159
    <!-- Indicate if record is suppressed in OPAC -->
1160
    <xsl:if test="$OpacSuppression = 1">
1161
        <xsl:if test="marc:datafield[@tag=942][marc:subfield[@code='n'] = '1']">
1162
            <span class="results_summary suppressed_opac">Suppressed in OPAC</span>
1163
        </xsl:if>
1164
    </xsl:if>
1165
1166
</xsl:template>
1167
1168
    <xsl:template name="nameABCQ">
1169
            <xsl:call-template name="chopPunctuation">
1170
                <xsl:with-param name="chopString">
1171
                    <xsl:call-template name="subfieldSelect">
1172
                        <xsl:with-param name="codes">abcq</xsl:with-param>
1173
                    </xsl:call-template>
1174
                </xsl:with-param>
1175
                <xsl:with-param name="punctuation">
1176
                    <xsl:text>:,;/ </xsl:text>
1177
                </xsl:with-param>
1178
            </xsl:call-template>
1179
    </xsl:template>
1180
    <xsl:template name="nameABCDN">
1181
            <xsl:call-template name="chopPunctuation">
1182
                <xsl:with-param name="chopString">
1183
                    <xsl:call-template name="subfieldSelect">
1184
                        <xsl:with-param name="codes">abcdn</xsl:with-param>
1185
                    </xsl:call-template>
1186
                </xsl:with-param>
1187
                <xsl:with-param name="punctuation">
1188
                    <xsl:text>:,;/ </xsl:text>
1189
                </xsl:with-param>
1190
            </xsl:call-template>
1191
    </xsl:template>
1192
1193
    <xsl:template name="nameACDEQ">
1194
            <xsl:call-template name="subfieldSelect">
1195
                <xsl:with-param name="codes">acdeq</xsl:with-param>
1196
            </xsl:call-template>
1197
    </xsl:template>
1198
1199
    <xsl:template name="nameDate">
1200
        <xsl:for-each select="marc:subfield[@code='d']">
1201
            <xsl:call-template name="chopPunctuation">
1202
                <xsl:with-param name="chopString" select="."/>
1203
            </xsl:call-template>
1204
        </xsl:for-each>
1205
    </xsl:template>
1206
1207
    <xsl:template name="role">
1208
        <xsl:for-each select="marc:subfield[@code='e']">
1209
                    <xsl:value-of select="."/>
1210
        </xsl:for-each>
1211
        <xsl:for-each select="marc:subfield[@code='4']">
1212
                    <xsl:value-of select="."/>
1213
        </xsl:for-each>
1214
    </xsl:template>
1215
1216
    <xsl:template name="specialSubfieldSelect">
1217
        <xsl:param name="anyCodes"/>
1218
        <xsl:param name="axis"/>
1219
        <xsl:param name="beforeCodes"/>
1220
        <xsl:param name="afterCodes"/>
1221
        <xsl:variable name="str">
1222
            <xsl:for-each select="marc:subfield">
1223
                <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])">
1224
                    <xsl:value-of select="text()"/>
1225
                    <xsl:text> </xsl:text>
1226
                </xsl:if>
1227
            </xsl:for-each>
1228
        </xsl:variable>
1229
        <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
1230
    </xsl:template>
1231
1232
    <xsl:template name="subtitle">
1233
        <xsl:if test="marc:subfield[@code='b']">
1234
                <xsl:call-template name="chopPunctuation">
1235
                    <xsl:with-param name="chopString">
1236
                        <xsl:value-of select="marc:subfield[@code='b']"/>
1237
1238
                        <!--<xsl:call-template name="subfieldSelect">
1239
                            <xsl:with-param name="codes">b</xsl:with-param>
1240
                        </xsl:call-template>-->
1241
                    </xsl:with-param>
1242
                </xsl:call-template>
1243
        </xsl:if>
1244
    </xsl:template>
1245
1246
1247
1248
    <xsl:template name="chopBrackets">
1249
        <xsl:param name="chopString"></xsl:param>
1250
        <xsl:variable name="string">
1251
            <xsl:call-template name="chopPunctuation">
1252
                <xsl:with-param name="chopString" select="$chopString"></xsl:with-param>
1253
            </xsl:call-template>
1254
        </xsl:variable>
1255
        <xsl:if test="substring($string, 1,1)='['">
1256
            <xsl:value-of select="substring($string,2, string-length($string)-2)"></xsl:value-of>
1257
        </xsl:if>
1258
        <xsl:if test="substring($string, 1,1)!='['">
1259
            <xsl:value-of select="$string"></xsl:value-of>
1260
        </xsl:if>
1261
    </xsl:template>
1262
1263
</xsl:stylesheet>
(-)a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slimUtils.xsl (+38 lines)
Lines 815-820 Link Here
815
        </xsl:choose>
815
        </xsl:choose>
816
    </xsl:template>
816
    </xsl:template>
817
817
818
    <xsl:template name="listCallNumbers">
819
        <xsl:param name="items"/>
820
        <xsl:param name="max"/>
821
        <xsl:param name="status_text"/>
822
        <xsl:param name="class_block"/>
823
        <xsl:param name="class_status"/>
824
        <xsl:if test="count($items)>0">
825
            <span><xsl:attribute name="class"><xsl:value-of select="$class_block"/></xsl:attribute>
826
                <span>
827
                    <xsl:attribute name="class"><xsl:value-of select="$class_status"/></xsl:attribute>
828
                    <xsl:value-of select="$status_text"/>
829
                </span>
830
                <xsl:text> (</xsl:text>
831
                <xsl:value-of select="count($items)"/>
832
                <xsl:text>)</xsl:text>
833
                <xsl:if test="$max>0 and count($items[items:itemcallnumber!=''])>0">
834
                    <span class="CallNumberAndLabel">
835
                    <span class="LabelCallNumber">Collection, location, call number:</span>
836
                    <span class="CallNumber">
837
                    <xsl:for-each select="$items[items:itemcallnumber!=''][position() &lt;= $max]">
838
                        <strong><xsl:value-of select="concat(items:location,' ')"/></strong>
839
                        <strong><xsl:value-of select="concat(items:ccode,' ')"/></strong>
840
                        <xsl:value-of select="items:itemcallnumber"/>
841
                        <xsl:if test="position()!=last()">
842
                            <xsl:text>, </xsl:text>
843
                        </xsl:if>
844
                        <xsl:if test="position()=last() and (count($items)>$max or count($items[items:itemcallnumber=''])>0)">
845
                            <xsl:text>, ..</xsl:text>
846
                        </xsl:if>
847
                    </xsl:for-each>
848
                    </span>
849
                    </span>
850
                </xsl:if>
851
                <xsl:text>. </xsl:text>
852
            </span>
853
        </xsl:if>
854
    </xsl:template>
855
818
</xsl:stylesheet>
856
</xsl:stylesheet>
819
857
820
<!-- Stylus Studio meta-information - (c)1998-2002 eXcelon Corp.
858
<!-- Stylus Studio meta-information - (c)1998-2002 eXcelon Corp.
(-)a/virtualshelves/shelves.pl (-1 / +1 lines)
Lines 334-339 if ( $op eq 'view' ) { Link Here
334
                        record       => $record,
334
                        record       => $record,
335
                        xsl_syspref  => 'XSLTListsDisplay',
335
                        xsl_syspref  => 'XSLTListsDisplay',
336
                        fix_amps     => 1,
336
                        fix_amps     => 1,
337
                        items_rs     => $biblio->items->reset,
337
                    }
338
                    }
338
                );
339
                );
339
340
340
- 

Return to bug 32419