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

(-)a/koha-tmpl/intranet-tmpl/prog/en/xslt/UNIMARCslim2OPACDetail.xsl (+588 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
<xsl:stylesheet xmlns:marc="http://www.loc.gov/MARC21/slim" xmlns:items="http://www.koha.org/items" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" exclude-result-prefixes="marc items">
4
  <xsl:import href="UNIMARCslimUtils.xsl"/>
5
  <xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
6
  <xsl:template match="/">
7
    <xsl:apply-templates/>
8
  </xsl:template>
9
  <xsl:template match="marc:record">
10
    <xsl:variable name="leader" select="marc:leader"/>
11
    <xsl:variable name="leader6" select="substring($leader,7,1)"/>
12
    <xsl:variable name="leader7" select="substring($leader,8,1)"/>
13
    <xsl:variable name="biblionumber" select="marc:datafield[@tag=999]/marc:subfield[@code='a']"/>
14
    <xsl:if test="marc:datafield[@tag=200]">
15
      <xsl:for-each select="marc:datafield[@tag=200]">
16
        <h1>
17
          <xsl:value-of select="marc:subfield[@code='a']"/>
18
          <xsl:if test="marc:subfield[@code='e']">
19
            <xsl:text> : </xsl:text>
20
            <xsl:value-of select="marc:subfield[@code='e']"/>
21
          </xsl:if>
22
          <xsl:if test="marc:subfield[@code='b']">
23
            <xsl:text> [</xsl:text>
24
            <xsl:value-of select="marc:subfield[@code='b']"/>
25
            <xsl:text>]</xsl:text>
26
          </xsl:if>
27
          <xsl:if test="marc:subfield[@code='h']">
28
            <xsl:text> ; </xsl:text>
29
            <xsl:value-of select="marc:subfield[@code='h']"/>
30
          </xsl:if>
31
          <xsl:if test="marc:subfield[@code='i']">
32
            <xsl:text> ; </xsl:text>
33
            <xsl:value-of select="marc:subfield[@code='i']"/>
34
          </xsl:if>
35
          <xsl:if test="marc:subfield[@code='f']">
36
            <xsl:text> / </xsl:text>
37
            <xsl:value-of select="marc:subfield[@code='f']"/>
38
          </xsl:if>
39
          <xsl:if test="marc:subfield[@code='g']">
40
            <xsl:text> ; </xsl:text>
41
            <xsl:value-of select="marc:subfield[@code='g']"/>
42
          </xsl:if>
43
        </h1>
44
      </xsl:for-each>
45
    </xsl:if>
46
<br/>
47
    <xsl:call-template name="tag_4xx"/>
48
    <xsl:if test="marc:datafield[@tag=700] or marc:datafield[@tag=701] or marc:datafield[@tag=702] or marc:datafield[@tag=710] or marc:datafield[@tag=711] or marc:datafield[@tag=712]">
49
      <span class="results_summary">
50
      <span class="label">Auteur(s) : </span>
51
      <xsl:for-each select="marc:datafield[@tag=700]">
52
            <a>
53
              <xsl:choose>
54
                <xsl:when test="marc:subfield[@code=8]">
55
                  <xsl:attribute name="href">
56
                  /cgi-bin/koha/opac-search.pl?q=an:<xsl:value-of select="marc:subfield[@code=8]"/>
57
                </xsl:attribute>
58
                </xsl:when>
59
                <xsl:otherwise>
60
                  <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=au:<xsl:value-of select="marc:subfield[@code='a']"/><xsl:text> </xsl:text><xsl:value-of select="marc:subfield[@code='b']"/></xsl:attribute>
61
                </xsl:otherwise>
62
              </xsl:choose>
63
              <xsl:if test="marc:subfield[@code='a']">
64
                <xsl:value-of select="marc:subfield[@code='a']"/>
65
              </xsl:if>
66
              <xsl:if test="marc:subfield[@code='b']">,
67
              <xsl:value-of select="marc:subfield[@code='b']"/>
68
            </xsl:if>
69
              <xsl:if test="marc:subfield[@code='f']"> (<xsl:value-of select="marc:subfield[@code='f']"/>)
70
            </xsl:if>
71
            </a>
72
      </xsl:for-each>
73
      <xsl:if test="marc:datafield[@tag=700] and marc:datafield[@tag>700]/@tag &lt; 800"><xsl:text> ; </xsl:text></xsl:if>
74
      <xsl:for-each select="marc:datafield[@tag=701]">
75
          <a>
76
            <xsl:choose>
77
              <xsl:when test="marc:subfield[@code=8]">
78
                <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=an:<xsl:value-of select="marc:subfield[@code=8]"/></xsl:attribute>
79
              </xsl:when>
80
              <xsl:otherwise>
81
                <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=au:<xsl:value-of select="marc:subfield[@code='a']"/><xsl:text> </xsl:text><xsl:value-of select="marc:subfield[@code='b']"/></xsl:attribute>
82
              </xsl:otherwise>
83
            </xsl:choose>
84
            <xsl:if test="marc:subfield[@code='a']">
85
              <xsl:value-of select="marc:subfield[@code='a']"/>
86
            </xsl:if>
87
            <xsl:if test="marc:subfield[@code='b']">,
88
              <xsl:value-of select="marc:subfield[@code='b']"/>
89
            </xsl:if>
90
            <xsl:if test="marc:subfield[@code='f']"> (<xsl:value-of select="marc:subfield[@code='f']"/>)
91
            </xsl:if>
92
          </a>
93
          <xsl:call-template name="RelatorCode"/>
94
          <xsl:choose>
95
            <xsl:when test="position()=last()">
96
              <xsl:text></xsl:text>
97
            </xsl:when>
98
            <xsl:otherwise>
99
	      <xsl:text> ; </xsl:text>
100
            </xsl:otherwise>
101
          </xsl:choose>
102
      </xsl:for-each>
103
      <xsl:if test="marc:datafield[@tag=701] and marc:datafield[@tag>701]/@tag &lt; 800"><xsl:text> ; </xsl:text></xsl:if>
104
      <xsl:for-each select="marc:datafield[@tag=702]">
105
          <a>
106
          <xsl:choose>
107
            <xsl:when test="marc:subfield[@code=8]"><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=an:<xsl:value-of select="marc:subfield[@code=8]"/></xsl:attribute></xsl:when>
108
            <xsl:otherwise><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=au:<xsl:value-of select="marc:subfield[@code='a']"/><xsl:text></xsl:text><xsl:value-of select="marc:subfield[@code='b']"/></xsl:attribute></xsl:otherwise>
109
	  </xsl:choose>
110
	  <xsl:if test="marc:subfield[@code='a']"><xsl:value-of select="marc:subfield[@code='a']"/></xsl:if>
111
          <xsl:if test="marc:subfield[@code='b']">, <xsl:value-of select="marc:subfield[@code='b']"/></xsl:if>
112
	  <xsl:if test="marc:subfield[@code='f']"> (<xsl:value-of select="marc:subfield[@code='f']"/>)</xsl:if>
113
	  </a>
114
          <xsl:call-template name="RelatorCode"/>
115
          <xsl:choose><xsl:when test="position()=last()"><xsl:text/></xsl:when><xsl:otherwise><xsl:text> 
116
; </xsl:text></xsl:otherwise></xsl:choose>
117
      </xsl:for-each>
118
      <xsl:if test="marc:datafield[@tag=702] and marc:datafield[@tag>702]/@tag &lt; 800"><xsl:text> ; </xsl:text></xsl:if>
119
      <xsl:for-each select="marc:datafield[@tag=710]">
120
            <a>
121
              <xsl:choose>
122
                <xsl:when test="marc:subfield[@code=8]">
123
                  <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=an:<xsl:value-of select="marc:subfield[@code=8]"/></xsl:attribute>
124
                </xsl:when>
125
                <xsl:otherwise>
126
                  <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=au:<xsl:value-of select="marc:subfield[@code='a']"/><xsl:text> </xsl:text><xsl:value-of select="marc:subfield[@code='b']"/></xsl:attribute>
127
                </xsl:otherwise>
128
              </xsl:choose>
129
              <xsl:if test="marc:subfield[@code='a']">
130
                <xsl:value-of select="marc:subfield[@code='a']"/>
131
              </xsl:if>
132
              <xsl:if test="marc:subfield[@code='b']">,
133
              <xsl:value-of select="marc:subfield[@code='b']"/>
134
            </xsl:if>
135
              <xsl:if test="marc:subfield[@code='d']">,
136
              <xsl:value-of select="marc:subfield[@code='d']"/>
137
            </xsl:if>
138
              <xsl:if test="marc:subfield[@code='e']">,
139
              <xsl:value-of select="marc:subfield[@code='e']"/>
140
            </xsl:if>
141
              <xsl:if test="marc:subfield[@code='f']"> (<xsl:value-of select="marc:subfield[@code='f']"/>)
142
            </xsl:if>
143
            </a>
144
      </xsl:for-each>
145
      <xsl:if test="marc:datafield[@tag=710] and marc:datafield[@tag>710]/@tag &lt; 800"><xsl:text> ; </xsl:text></xsl:if>
146
      <xsl:for-each select="marc:datafield[@tag=711]">
147
            <a>
148
            <xsl:choose>
149
              <xsl:when test="marc:subfield[@code=8]">
150
                <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=an:<xsl:value-of select="marc:subfield[@code=8]"/></xsl:attribute>
151
              </xsl:when>
152
              <xsl:otherwise>
153
                <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=au:<xsl:value-of select="marc:subfield[@code='a']"/><xsl:text> </xsl:text><xsl:value-of select="marc:subfield[@code='b']"/></xsl:attribute>
154
                </xsl:otherwise>
155
            </xsl:choose>
156
            <xsl:if test="marc:subfield[@code='a']">
157
              <xsl:value-of select="marc:subfield[@code='a']"/>
158
            </xsl:if>
159
            <xsl:if test="marc:subfield[@code='b']">,
160
              <xsl:value-of select="marc:subfield[@code='b']"/>
161
            </xsl:if>
162
            <xsl:if test="marc:subfield[@code='d']">,
163
              <xsl:value-of select="marc:subfield[@code='d']"/>
164
            </xsl:if>
165
            <xsl:if test="marc:subfield[@code='e']">,
166
              <xsl:value-of select="marc:subfield[@code='e']"/>
167
            </xsl:if>
168
            <xsl:if test="marc:subfield[@code='f']"> (<xsl:value-of select="marc:subfield[@code='f']"/>)
169
            </xsl:if>
170
            </a>
171
            <xsl:call-template name="RelatorCode"/>
172
            <xsl:choose>
173
              <xsl:when test="position()=last()">
174
                <xsl:text/>
175
              </xsl:when>
176
              <xsl:otherwise>
177
                <xsl:text> ; </xsl:text>
178
              </xsl:otherwise>
179
            </xsl:choose>
180
      </xsl:for-each>
181
      <xsl:if test="marc:datafield[@tag=711] and marc:datafield[@tag>711]/@tag &lt; 800"><xsl:text> ; </xsl:text></xsl:if>
182
      <xsl:for-each select="marc:datafield[@tag=712]">
183
            <a>
184
              <xsl:choose>
185
                <xsl:when test="marc:subfield[@code=8]">
186
                  <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=an:<xsl:value-of select="marc:subfield[@code=8]"/></xsl:attribute>
187
                </xsl:when>
188
                <xsl:otherwise>
189
                  <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=au:<xsl:value-of select="marc:subfield[@code='a']"/><xsl:text> </xsl:text><xsl:value-of select="marc:subfield[@code='b']"/></xsl:attribute>
190
                </xsl:otherwise>
191
              </xsl:choose>
192
              <xsl:if test="marc:subfield[@code='a']">
193
                <xsl:value-of select="marc:subfield[@code='a']"/>
194
              </xsl:if>
195
              <xsl:if test="marc:subfield[@code='b']">,
196
                <xsl:value-of select="marc:subfield[@code='b']"/>
197
              </xsl:if>
198
              <xsl:if test="marc:subfield[@code='d']">,
199
                <xsl:value-of select="marc:subfield[@code='d']"/>
200
              </xsl:if>
201
              <xsl:if test="marc:subfield[@code='e']">,
202
                <xsl:value-of select="marc:subfield[@code='e']"/>
203
              </xsl:if>
204
              <xsl:if test="marc:subfield[@code='f']"> (<xsl:value-of select="marc:subfield[@code='f']"/>)
205
              </xsl:if>
206
            </a>
207
          <xsl:call-template name="RelatorCode"/>
208
          <xsl:choose>
209
              <xsl:when test="position()=last()">
210
                <xsl:text/>
211
              </xsl:when>
212
              <xsl:otherwise>
213
                <xsl:text> ; </xsl:text>
214
              </xsl:otherwise>
215
            </xsl:choose>
216
      </xsl:for-each>
217
      </span>
218
    </xsl:if>
219
<!--  <xsl:if test="marc:datafield[@tag=101]"><span class="results_summary"><span class="label">Langue: </span><xsl:for-each select="marc:datafield[@tag=101]"><xsl:for-each select="marc:subfield"><xsl:choose><xsl:when test="@code='b'">de la trad. intermédiaire, </xsl:when><xsl:when test="@code='c'">de l'œuvre originale, </xsl:when><xsl:when test="@code='d'">du résumé, </xsl:when><xsl:when test="@code='e'">de la table des matières, </xsl:when><xsl:when test="@code='f'">de la page de titre, </xsl:when><xsl:when test="@code='g'">du titre propre, </xsl:when><xsl:when test="@code='h'">d'un livret, </xsl:when><xsl:when test="@code='i'">des textes d'accompagnement, </xsl:when><xsl:when test="@code='j'">des sous-titres, </xsl:when></xsl:choose><xsl:value-of select="text()"/><xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text> ; </xsl:text></xsl:otherwise></xsl:choose></xsl:for-each></xsl:for-each></span></xsl:if>
220
      <xsl:if test="marc:datafield[@tag=102]"><span class="results_summary"><span class="label">Pays: </span><xsl:for-each select="marc:datafield[@tag=102]"><xsl:for-each select="marc:subfield"><xsl:value-of select="text()"/><xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>, </xsl:text></xsl:otherwise></xsl:choose></xsl:for-each></xsl:for-each></span></xsl:if>
221
-->
222
    <xsl:call-template name="tag_210"/>
223
    <xsl:call-template name="tag_215"/>
224
    <abbr class="unapi-id" title="koha:biblionumber:{marc:datafield[@tag=090]/marc:subfield[@code='a']}">
225
      <!-- unAPI -->
226
    </abbr>
227
    <xsl:if test="marc:datafield[@tag=010]/marc:subfield[@code='a']">
228
      <span class="results_summary">
229
        <span class="label">ISBN: </span>
230
        <xsl:for-each select="marc:datafield[@tag=010]">
231
          <xsl:variable name="isbn" select="marc:subfield[@code='a']"/>
232
          <xsl:value-of select="marc:subfield[@code='a']"/>
233
          <xsl:choose>
234
            <xsl:when test="position()=last()">
235
              <xsl:text>.</xsl:text>
236
            </xsl:when>
237
            <xsl:otherwise>
238
              <xsl:text> ; </xsl:text>
239
            </xsl:otherwise>
240
          </xsl:choose>
241
        </xsl:for-each>
242
      </span>
243
    </xsl:if>
244
    <xsl:if test="marc:datafield[@tag=011]">
245
      <span class="results_summary">
246
        <span class="label">ISSN: </span>
247
        <xsl:for-each select="marc:datafield[@tag=011]">
248
          <xsl:value-of select="marc:subfield[@code='a']"/>
249
          <xsl:choose>
250
            <xsl:when test="position()=last()">
251
              <xsl:text>.</xsl:text>
252
            </xsl:when>
253
            <xsl:otherwise>
254
              <xsl:text>; </xsl:text>
255
            </xsl:otherwise>
256
          </xsl:choose>
257
        </xsl:for-each>
258
      </span>
259
    </xsl:if>
260
    <xsl:if test="marc:datafield[@tag=676]">
261
      <span class="results_summary">
262
        <span class="label">Dewey: </span>
263
        <xsl:for-each select="marc:datafield[@tag=676]">
264
          <xsl:value-of select="marc:subfield[@code='a']"/>
265
          <xsl:choose>
266
            <xsl:when test="position()=last()">
267
              <xsl:text>.</xsl:text>
268
            </xsl:when>
269
            <xsl:otherwise>
270
              <xsl:text>; </xsl:text>
271
            </xsl:otherwise>
272
          </xsl:choose>
273
        </xsl:for-each>
274
      </span>
275
    </xsl:if>
276
    <xsl:if test="marc:datafield[@tag=330]">
277
      <span class="results_summary">
278
        <span class="label">Résumé: </span>
279
        <xsl:for-each select="marc:datafield[@tag=330]">
280
          <xsl:value-of select="marc:subfield[@code='a']"/>
281
          <xsl:choose>
282
            <xsl:when test="position()=last()">
283
              <xsl:text>.</xsl:text>
284
            </xsl:when>
285
            <xsl:otherwise>
286
              <xsl:text>; </xsl:text>
287
            </xsl:otherwise>
288
          </xsl:choose>
289
        </xsl:for-each>
290
      </span>
291
    </xsl:if>
292
    <xsl:if test="marc:datafield[@tag=317]">
293
      <span class="results_summary">
294
        <span class="label">Note sur la provenance: </span>
295
        <xsl:for-each select="marc:datafield[@tag=317]">
296
          <xsl:value-of select="marc:subfield[@code='a']"/>
297
        </xsl:for-each>
298
      </span>
299
    </xsl:if>
300
    <xsl:if test="marc:datafield[@tag=320]">
301
      <span class="results_summary">
302
        <span class="label">Bibliographie: </span>
303
        <xsl:for-each select="marc:datafield[@tag=320]">
304
          <xsl:value-of select="marc:subfield[@code='a']"/>
305
          <xsl:choose>
306
            <xsl:when test="position()=last()">
307
              <xsl:text>.</xsl:text>
308
            </xsl:when>
309
            <xsl:otherwise>
310
              <xsl:text>; </xsl:text>
311
            </xsl:otherwise>
312
          </xsl:choose>
313
        </xsl:for-each>
314
      </span>
315
    </xsl:if>
316
    <xsl:if test="marc:datafield[@tag=328]">
317
      <span class="results_summary">
318
        <span class="label">Thèse: </span>
319
        <xsl:for-each select="marc:datafield[@tag=328]">
320
          <xsl:value-of select="marc:subfield[@code='a']"/>
321
          <xsl:choose>
322
            <xsl:when test="position()=last()">
323
              <xsl:text>.</xsl:text>
324
            </xsl:when>
325
            <xsl:otherwise>
326
              <xsl:text>; </xsl:text>
327
            </xsl:otherwise>
328
          </xsl:choose>
329
        </xsl:for-each>
330
      </span>
331
    </xsl:if>
332
    <xsl:if test="marc:datafield[@tag=333]">
333
      <span class="results_summary">
334
        <span class="label">Public: </span>
335
        <xsl:for-each select="marc:datafield[@tag=333]">
336
          <xsl:value-of select="marc:subfield[@code='a']"/>
337
          <xsl:choose>
338
            <xsl:when test="position()=last()">
339
              <xsl:text>.</xsl:text>
340
            </xsl:when>
341
            <xsl:otherwise>
342
              <xsl:text>; </xsl:text>
343
            </xsl:otherwise>
344
          </xsl:choose>
345
        </xsl:for-each>
346
      </span>
347
    </xsl:if>
348
    <xsl:if test="marc:datafield[@tag=600 or @tag=601 or @tag=606 or @tag=607 or @tag=610]">
349
      <span class="results_summary">
350
        <span class="label">Sujets: </span>
351
        <xsl:for-each select="marc:datafield[@tag=600 or @tag=601 or @tag=606 or @tag=607 or @tag=610]">
352
          <a>
353
            <xsl:choose>
354
              <xsl:when test="marc:subfield[@code=8]">
355
                <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=an:<xsl:value-of select="marc:subfield[@code=8]"/></xsl:attribute>
356
              </xsl:when>
357
              <xsl:otherwise>
358
                <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=su:<xsl:value-of select="marc:subfield[@code='a']"/></xsl:attribute>
359
              </xsl:otherwise>
360
            </xsl:choose>
361
            <xsl:call-template name="chopPunctuation">
362
              <xsl:with-param name="chopString">
363
                <xsl:call-template name="subfieldSelect">
364
                  <xsl:with-param name="codes">abcdjpvxyz</xsl:with-param>
365
                  <xsl:with-param name="subdivCodes">jpxyz</xsl:with-param>
366
                  <xsl:with-param name="subdivDelimiter">-- </xsl:with-param>
367
                </xsl:call-template>
368
              </xsl:with-param>
369
            </xsl:call-template>
370
          </a>
371
          <xsl:choose>
372
            <xsl:when test="position()=last()"/>
373
            <xsl:otherwise> | </xsl:otherwise>
374
          </xsl:choose>
375
        </xsl:for-each>
376
      </span>
377
    </xsl:if>
378
    <xsl:if test="marc:datafield[@tag=856]">
379
      <span class="results_summary">
380
        <span class="label">Online Resources: </span>
381
        <xsl:for-each select="marc:datafield[@tag=856]">
382
          <a>
383
            <xsl:attribute name="href">
384
              <xsl:value-of select="marc:subfield[@code='u']"/>
385
            </xsl:attribute>
386
            <xsl:choose>
387
              <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']">
388
                <xsl:call-template name="subfieldSelect">
389
                  <xsl:with-param name="codes">y3z</xsl:with-param>
390
                </xsl:call-template>
391
              </xsl:when>
392
              <xsl:when test="not(marc:subfield[@code='y']) and not(marc:subfield[@code='3']) and not(marc:subfield[@code='z'])">
393
              Click here to access online
394
            </xsl:when>
395
            </xsl:choose>
396
          </a>
397
          <xsl:choose>
398
            <xsl:when test="position()=last()"/>
399
            <xsl:otherwise> | </xsl:otherwise>
400
          </xsl:choose>
401
        </xsl:for-each>
402
      </span>
403
    </xsl:if>
404
    <!-- 780 -->
405
    <xsl:if test="marc:datafield[@tag=780]">
406
      <xsl:for-each select="marc:datafield[@tag=780]">
407
        <span class="results_summary">
408
          <span class="label">
409
            <xsl:choose>
410
              <xsl:when test="@ind2=0">
411
            Continues:
412
        </xsl:when>
413
              <xsl:when test="@ind2=1">
414
            Continues in part:
415
        </xsl:when>
416
              <xsl:when test="@ind2=2">
417
            Supersedes:
418
        </xsl:when>
419
              <xsl:when test="@ind2=3">
420
            Supersedes in part:
421
        </xsl:when>
422
              <xsl:when test="@ind2=4">
423
            Formed by the union: ... and: ...
424
        </xsl:when>
425
              <xsl:when test="@ind2=5">
426
            Absorbed:
427
        </xsl:when>
428
              <xsl:when test="@ind2=6">
429
            Absorbed in part:
430
        </xsl:when>
431
              <xsl:when test="@ind2=7">
432
            Separated from:
433
        </xsl:when>
434
            </xsl:choose>
435
          </span>
436
          <xsl:variable name="f780">
437
            <xsl:call-template name="subfieldSelect">
438
              <xsl:with-param name="codes">at</xsl:with-param>
439
            </xsl:call-template>
440
          </xsl:variable>
441
          <a>
442
            <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=<xsl:value-of select="translate($f780, '()', '')"/></xsl:attribute>
443
            <xsl:value-of select="translate($f780, '()', '')"/>
444
          </a>
445
        </span>
446
        <xsl:choose>
447
          <xsl:when test="@ind1=0">
448
            <span class="results_summary">
449
              <xsl:value-of select="marc:subfield[@code='n']"/>
450
            </span>
451
          </xsl:when>
452
        </xsl:choose>
453
      </xsl:for-each>
454
    </xsl:if>
455
    <!-- 785 -->
456
    <xsl:if test="marc:datafield[@tag=785]">
457
      <xsl:for-each select="marc:datafield[@tag=785]">
458
        <span class="results_summary">
459
          <span class="label">
460
            <xsl:choose>
461
              <xsl:when test="@ind2=0">
462
            Continued by:
463
        </xsl:when>
464
              <xsl:when test="@ind2=1">
465
            Continued in part by:
466
        </xsl:when>
467
              <xsl:when test="@ind2=2">
468
            Superseded by:
469
        </xsl:when>
470
              <xsl:when test="@ind2=3">
471
            Superseded in part by:
472
        </xsl:when>
473
              <xsl:when test="@ind2=4">
474
            Absorbed by:
475
        </xsl:when>
476
              <xsl:when test="@ind2=5">
477
            Absorbed in part by:
478
        </xsl:when>
479
              <xsl:when test="@ind2=6">
480
            Split into .. and ...:
481
        </xsl:when>
482
              <xsl:when test="@ind2=7">
483
            Merged with ... to form ...
484
        </xsl:when>
485
              <xsl:when test="@ind2=8">
486
            Changed back to:
487
        </xsl:when>
488
            </xsl:choose>
489
          </span>
490
          <xsl:variable name="f785">
491
            <xsl:call-template name="subfieldSelect">
492
              <xsl:with-param name="codes">at</xsl:with-param>
493
            </xsl:call-template>
494
          </xsl:variable>
495
          <a>
496
            <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=<xsl:value-of select="translate($f785, '()', '')"/></xsl:attribute>
497
            <xsl:value-of select="translate($f785, '()', '')"/>
498
          </a>
499
        </span>
500
      </xsl:for-each>
501
    </xsl:if>
502
  </xsl:template>
503
  <xsl:template name="nameABCDQ">
504
    <xsl:call-template name="chopPunctuation">
505
      <xsl:with-param name="chopString">
506
        <xsl:call-template name="subfieldSelect">
507
          <xsl:with-param name="codes">aq</xsl:with-param>
508
        </xsl:call-template>
509
      </xsl:with-param>
510
      <xsl:with-param name="punctuation">
511
        <xsl:text>:,;/ </xsl:text>
512
      </xsl:with-param>
513
    </xsl:call-template>
514
    <xsl:call-template name="termsOfAddress"/>
515
  </xsl:template>
516
  <xsl:template name="nameABCDN">
517
    <xsl:for-each select="marc:subfield[@code='a']">
518
      <xsl:call-template name="chopPunctuation">
519
        <xsl:with-param name="chopString" select="."/>
520
      </xsl:call-template>
521
    </xsl:for-each>
522
    <xsl:for-each select="marc:subfield[@code='b']">
523
      <xsl:value-of select="."/>
524
    </xsl:for-each>
525
    <xsl:if test="marc:subfield[@code='c'] or marc:subfield[@code='d'] or marc:subfield[@code='n']">
526
      <xsl:call-template name="subfieldSelect">
527
        <xsl:with-param name="codes">cdn</xsl:with-param>
528
      </xsl:call-template>
529
    </xsl:if>
530
  </xsl:template>
531
  <xsl:template name="nameACDEQ">
532
    <xsl:call-template name="subfieldSelect">
533
      <xsl:with-param name="codes">acdeq</xsl:with-param>
534
    </xsl:call-template>
535
  </xsl:template>
536
  <xsl:template name="termsOfAddress">
537
    <xsl:if test="marc:subfield[@code='b' or @code='c']">
538
      <xsl:call-template name="chopPunctuation">
539
        <xsl:with-param name="chopString">
540
          <xsl:call-template name="subfieldSelect">
541
            <xsl:with-param name="codes">bc</xsl:with-param>
542
          </xsl:call-template>
543
        </xsl:with-param>
544
      </xsl:call-template>
545
    </xsl:if>
546
  </xsl:template>
547
  <xsl:template name="part">
548
    <xsl:variable name="partNumber">
549
      <xsl:call-template name="specialSubfieldSelect">
550
        <xsl:with-param name="axis">n</xsl:with-param>
551
        <xsl:with-param name="anyCodes">n</xsl:with-param>
552
        <xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
553
      </xsl:call-template>
554
    </xsl:variable>
555
    <xsl:variable name="partName">
556
      <xsl:call-template name="specialSubfieldSelect">
557
        <xsl:with-param name="axis">p</xsl:with-param>
558
        <xsl:with-param name="anyCodes">p</xsl:with-param>
559
        <xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
560
      </xsl:call-template>
561
    </xsl:variable>
562
    <xsl:if test="string-length(normalize-space($partNumber))">
563
      <xsl:call-template name="chopPunctuation">
564
        <xsl:with-param name="chopString" select="$partNumber"/>
565
      </xsl:call-template>
566
    </xsl:if>
567
    <xsl:if test="string-length(normalize-space($partName))">
568
      <xsl:call-template name="chopPunctuation">
569
        <xsl:with-param name="chopString" select="$partName"/>
570
      </xsl:call-template>
571
    </xsl:if>
572
  </xsl:template>
573
  <xsl:template name="specialSubfieldSelect">
574
    <xsl:param name="anyCodes"/>
575
    <xsl:param name="axis"/>
576
    <xsl:param name="beforeCodes"/>
577
    <xsl:param name="afterCodes"/>
578
    <xsl:variable name="str">
579
      <xsl:for-each select="marc:subfield">
580
        <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])">
581
          <xsl:value-of select="text()"/>
582
          <xsl:text> </xsl:text>
583
        </xsl:if>
584
      </xsl:for-each>
585
    </xsl:variable>
586
    <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
587
  </xsl:template>
588
</xsl:stylesheet>
(-)a/koha-tmpl/intranet-tmpl/prog/en/xslt/UNIMARCslim2OPACResults.xsl (-1 / +195 lines)
Line 0 Link Here
0
- 
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
9
<xsl:import href="UNIMARCslimUtils.xsl"/>
10
<xsl:output method = "xml" indent="yes" omit-xml-declaration = "yes" />
11
<xsl:key name="item-by-status" match="items:item" use="items:status"/>
12
<xsl:key name="item-by-status-and-branch" match="items:item" use="concat(items:status, ' ', items:homebranch)"/>
13
14
<xsl:template match="/">
15
  <xsl:apply-templates/>
16
</xsl:template>
17
18
<xsl:template match="marc:record">
19
  <xsl:variable name="leader" select="marc:leader"/>
20
  <xsl:variable name="leader6" select="substring($leader,7,1)"/>
21
  <xsl:variable name="leader7" select="substring($leader,8,1)"/>
22
  <xsl:variable name="biblionumber" 
23
select="marc:datafield[@tag=999]/marc:subfield[@code='a']"/>
24
  <xsl:variable name="isbn" select="marc:datafield[@tag=010]/marc:subfield[@code='a']"/>
25
     	
26
  <xsl:if test="marc:datafield[@tag=200]">
27
    <xsl:for-each select="marc:datafield[@tag=200]">
28
      	<a><xsl:attribute name="href">
29
             /cgi-bin/koha/opac-detail.pl?biblionumber=
30
             <xsl:value-of select="$biblionumber"/>
31
             <xsl:if test="$leader7='s'">#subscriptions</xsl:if>
32
           </xsl:attribute>
33
        <xsl:value-of select="marc:subfield[@code='a']"/>
34
      </a>
35
      <xsl:if test="marc:subfield[@code='e']">
36
        <xsl:text> : </xsl:text>
37
        <xsl:value-of select="marc:subfield[@code='e']"/>
38
      </xsl:if>
39
      <xsl:if test="marc:subfield[@code='b']">
40
        <xsl:text> [</xsl:text>
41
        <xsl:value-of select="marc:subfield[@code='b']"/>
42
        <xsl:text>]</xsl:text>
43
      </xsl:if>
44
      <xsl:if test="marc:subfield[@code='h']">
45
        <xsl:text> : </xsl:text>
46
        <xsl:value-of select="marc:subfield[@code='h']"/>
47
      </xsl:if>
48
      <xsl:if test="marc:subfield[@code='i']">
49
        <xsl:text> : </xsl:text>
50
        <xsl:value-of select="marc:subfield[@code='i']"/>
51
      </xsl:if>
52
      <xsl:if test="marc:subfield[@code='f']">
53
        <xsl:text> / </xsl:text>
54
        <xsl:value-of select="marc:subfield[@code='f']"/>
55
      </xsl:if>
56
      <xsl:if test="marc:subfield[@code='g']">
57
        <xsl:text> ; </xsl:text>
58
        <xsl:value-of select="marc:subfield[@code='g']"/>
59
      </xsl:if>
60
    </xsl:for-each>
61
  </xsl:if>
62
63
  <xsl:call-template name="tag_4xx" />
64
65
  <xsl:call-template name="tag_210" />
66
67
  <xsl:call-template name="tag_215" />
68
69
  <span class="results_summary">
70
    <span class="label">Disponibilité: </span>
71
    <xsl:choose>
72
      <xsl:when test="marc:datafield[@tag=856]">
73
        <xsl:for-each select="marc:datafield[@tag=856]">
74
          <xsl:choose>
75
            <xsl:when test="@ind2=0">
76
              <a>
77
                <xsl:attribute name="href">
78
                  <xsl:value-of select="marc:subfield[@code='u']"/>
79
                </xsl:attribute>
80
                <xsl:choose>
81
                  <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']">
82
                    <xsl:call-template name="subfieldSelect">                        
83
                      <xsl:with-param name="codes">y3z</xsl:with-param>                    
84
                    </xsl:call-template>
85
                  </xsl:when>
86
                  <xsl:when test="not(marc:subfield[@code='y']) and not(marc:subfield[@code='3']) and not(marc:subfield[@code='z'])">
87
                    Click here to access online
88
                  </xsl:when>
89
                </xsl:choose>
90
              </a>
91
              <xsl:choose>
92
                <xsl:when test="position()=last()"></xsl:when>
93
                <xsl:otherwise> | </xsl:otherwise>
94
              </xsl:choose>
95
            </xsl:when> 
96
          </xsl:choose>
97
        </xsl:for-each>
98
      </xsl:when>
99
      <xsl:when test="count(key('item-by-status', 'available'))=0 and count(key('item-by-status', 'reference'))=0">
100
        Pas de copie disponible
101
      </xsl:when>
102
      <xsl:when test="count(key('item-by-status', 'available'))>0">
103
        <span class="available">
104
          <b><xsl:text>pour le prêt: </xsl:text></b>
105
          <xsl:variable name="available_items" select="key('item-by-status', 'available')"/>
106
          <xsl:for-each select="$available_items[generate-id() = generate-id(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch))[1])]">
107
            <xsl:value-of select="items:homebranch"/>
108
  			    <xsl:if test="items:itemcallnumber != '' and items:itemcallnumber">[<xsl:value-of select="items:itemcallnumber"/>]
109
  			    </xsl:if>
110
            <xsl:text> (</xsl:text>
111
            <xsl:value-of select="count(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch)))"/>
112
            <xsl:text>)</xsl:text>
113
            <xsl:choose>
114
              <xsl:when test="position()=last()">
115
                <xsl:text>. </xsl:text>
116
              </xsl:when>
117
              <xsl:otherwise>
118
                <xsl:text>, </xsl:text>
119
              </xsl:otherwise>
120
            </xsl:choose>
121
          </xsl:for-each>
122
        </span>
123
      </xsl:when>
124
    </xsl:choose>
125
    <xsl:choose>
126
      <xsl:when test="count(key('item-by-status', 'reference'))>0">
127
        <span class="available">
128
          <b><xsl:text>Copies available for reference: </xsl:text></b>
129
          <xsl:variable name="reference_items"
130
                        select="key('item-by-status', 'reference')"/>
131
          <xsl:for-each select="$reference_items[generate-id() = generate-id(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch))[1])]">
132
            <xsl:value-of select="items:homebranch"/>
133
            <xsl:if test="items:itemcallnumber != '' and items:itemcallnumber">[<xsl:value-of select="items:itemcallnumber"/>]</xsl:if>
134
            <xsl:text> (</xsl:text>
135
            <xsl:value-of select="count(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch)))"/>
136
            <xsl:text>)</xsl:text>
137
            <xsl:choose>
138
              <xsl:when test="position()=last()">
139
                <xsl:text>. </xsl:text>
140
              </xsl:when>
141
              <xsl:otherwise>
142
                <xsl:text>, </xsl:text>
143
              </xsl:otherwise>
144
            </xsl:choose>
145
          </xsl:for-each>
146
        </span>
147
      </xsl:when>
148
    </xsl:choose>
149
    <xsl:if test="count(key('item-by-status', 'Checked out'))>0">
150
      <span class="unavailable">
151
        <xsl:text>Checked out (</xsl:text>
152
        <xsl:value-of select="count(key('item-by-status', 'Checked out'))"/>
153
        <xsl:text>). </xsl:text>
154
      </span>
155
    </xsl:if>
156
    <xsl:if test="count(key('item-by-status', 'Withdrawn'))>0">
157
      <span class="unavailable">
158
        <xsl:text>Withdrawn (</xsl:text>
159
        <xsl:value-of select="count(key('item-by-status', 'Withdrawn'))"/>
160
        <xsl:text>). </xsl:text>
161
      </span>
162
    </xsl:if>
163
    <xsl:if test="count(key('item-by-status', 'Lost'))>0">
164
      <span class="unavailable">
165
        <xsl:text>Lost (</xsl:text>
166
        <xsl:value-of select="count(key('item-by-status', 'Lost'))"/>
167
        <xsl:text>). </xsl:text>
168
      </span>
169
    </xsl:if>
170
    <xsl:if test="count(key('item-by-status', 'Damaged'))>0">
171
      <span class="unavailable">
172
        <xsl:text>Damaged (</xsl:text>
173
        <xsl:value-of select="count(key('item-by-status', 'Damaged'))"/>
174
        <xsl:text>). </xsl:text>
175
      </span>
176
    </xsl:if>
177
    <xsl:if test="count(key('item-by-status', 'On Orangemanr'))>0">
178
      <span class="unavailable">
179
        <xsl:text>On order (</xsl:text>
180
        <xsl:value-of select="count(key('item-by-status', 'On order'))"/>
181
        <xsl:text>). </xsl:text>
182
      </span>
183
    </xsl:if>
184
    <xsl:if test="count(key('item-by-status', 'In transit'))>0">
185
      <span class="unavailable">
186
        <xsl:text>In transit (</xsl:text>
187
        <xsl:value-of select="count(key('item-by-status', 'In transit'))"/>
188
        <xsl:text>). </xsl:text>
189
      </span>
190
    </xsl:if>
191
  </span>
192
193
</xsl:template>
194
195
</xsl:stylesheet>

Return to bug 5886