Bug 25381: XSLTs should not define entities
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / xslt / NORMARCslim2intranetDetail.xsl
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- $Id: MARC21slim2DC.xsl,v 1.1 2003/01/06 08:20:27 adam Exp $ -->
3
4 <!DOCTYPE stylesheet>
5
6 <xsl:stylesheet version="1.0"
7   xmlns:marc="http://www.loc.gov/MARC21/slim"
8   xmlns:items="http://www.koha-community.org/items"
9   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
10   xmlns:str="http://exslt.org/strings"
11   exclude-result-prefixes="marc items str">
12     <xsl:import href="NORMARCslimUtils.xsl"/>
13     <xsl:output method = "html" indent="yes" omit-xml-declaration = "yes" encoding="UTF-8"/>
14     <xsl:template match="/">
15             <xsl:apply-templates/>
16     </xsl:template>
17
18     <xsl:template match="marc:record">
19
20         <!-- Sysprefs -->
21         <xsl:variable name="UseControlNumber" select="marc:sysprefs/marc:syspref[@name='UseControlNumber']"/>
22         <xsl:variable name="OPACBaseURL" select="marc:sysprefs/marc:syspref[@name='OPACBaseURL']"/>
23         <xsl:variable name="SubjectModifier"><xsl:if test="marc:sysprefs/marc:syspref[@name='TraceCompleteSubfields']='1'">,complete-subfield</xsl:if></xsl:variable>
24         <xsl:variable name="TraceSubjectSubdivisions" select="marc:sysprefs/marc:syspref[@name='TraceSubjectSubdivisions']"/>
25         <xsl:variable name="OpacSuppression" select="marc:sysprefs/marc:syspref[@name='OpacSuppression']"/>
26         <xsl:variable name="TracingQuotesLeft">
27           <xsl:choose>
28             <xsl:when test="marc:sysprefs/marc:syspref[@name='UseICU']='1'">{</xsl:when>
29             <xsl:otherwise>"</xsl:otherwise>
30           </xsl:choose>
31         </xsl:variable>
32         <xsl:variable name="TracingQuotesRight">
33           <xsl:choose>
34             <xsl:when test="marc:sysprefs/marc:syspref[@name='UseICU']='1'">}</xsl:when>
35             <xsl:otherwise>"</xsl:otherwise>
36           </xsl:choose>
37         </xsl:variable>
38         <xsl:variable name="DisplayOPACiconsXSLT" select="marc:sysprefs/marc:syspref[@name='DisplayOPACiconsXSLT']"/>
39
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="controlField008" select="marc:controlfield[@tag=008]"/>
44         <xsl:variable name="field019b" select="marc:datafield[@tag=019]/marc:subfield[@code='b']"/>
45         <xsl:variable name="biblionumber" select="marc:datafield[@tag=999]/marc:subfield[@code='c']"/>
46         <xsl:variable name="typeOf008">
47             <!-- The logic here should be exactly the same for NORMARCslim2intranetDetail.xsl, NORMARCslim2intranetResults.xsl, NORMARCslim2OPACDetail.xsl and NORMARCslim2OPACResults.xsl -->
48             <xsl:choose>
49                 <xsl:when test="$field019b='b' or $field019b='k' or $field019b='l' or $leader6='b'">Mon</xsl:when>
50                 <xsl:when test="$field019b='e' or contains($field019b,'ec') or contains($field019b,'ed') or contains($field019b,'ee') or contains($field019b,'ef') or $leader6='g'">FV</xsl:when>
51                 <xsl:when test="$field019b='c' or $field019b='d' or contains($field019b,'da') or contains($field019b,'db') or contains($field019b,'dc') or contains($field019b,'dd') or contains($field019b,'dg') or contains($field019b,'dh') or contains($field019b,'di') or contains($field019b,'dj') or contains($field019b,'dk') or $leader6='c' or $leader6='d' or $leader6='i' or $leader6='j'">Mus</xsl:when>
52                 <xsl:when test="$field019b='a' or contains($field019b,'ab') or contains($field019b,'aj') or $leader6='e' or $leader6='f'">Kar</xsl:when>
53                 <xsl:when test="$field019b='f' or $field019b='i' or contains($field019b,'ib') or contains($field019b,'ic') or contains($field019b,'fd') or contains($field019b,'ff') or contains($field019b,'fi') or $leader6='k'">gra</xsl:when>
54                 <xsl:when test="$field019b='g' or contains($field019b,'gb') or contains($field019b,'gd') or contains($field019b,'ge') or $leader6='m'">Fil</xsl:when>
55                 <xsl:when test="$leader6='o'">kom</xsl:when>
56                 <xsl:when test="$field019b='h' or $leader6='r'">trd</xsl:when>
57                 <xsl:when test="$field019b='j' or $leader6='a'">
58                     <xsl:choose>
59                         <xsl:when test="$leader7='a' or $leader7='c' or $leader7='m' or $leader7='p'">Mon</xsl:when>
60                         <xsl:when test="$field019b='j' or $leader7='b' or $leader7='s'">Per</xsl:when>
61                     </xsl:choose>
62                 </xsl:when>
63             </xsl:choose>
64         </xsl:variable>
65
66         <!-- Indicate if record is suppressed in OPAC -->
67         <xsl:if test="$OpacSuppression = 1">
68             <xsl:if test="marc:datafield[@tag=942][marc:subfield[@code='n'] = '1']">
69                 <span class="results_summary suppressed_opac">Suppressed in OPAC</span>
70             </xsl:if>
71         </xsl:if>
72
73         <!-- Tittel og ansvarsopplysninger -->
74         <xsl:if test="marc:datafield[@tag=245]">
75         <h1>
76             <xsl:for-each select="marc:datafield[@tag=245]">
77                     <xsl:call-template name="subfieldSelect">
78                         <xsl:with-param name="codes">a</xsl:with-param>
79                     </xsl:call-template>
80                     <xsl:if test="marc:subfield[@code='h']">
81                         <xsl:text> </xsl:text>
82                         (<xsl:call-template name="subfieldSelect">
83                             <xsl:with-param name="codes">h</xsl:with-param>
84                         </xsl:call-template>) 
85                     </xsl:if>
86                     <xsl:if test="marc:subfield[@code='b']">
87                         <xsl:text> : </xsl:text>
88                         <xsl:call-template name="subfieldSelect">
89                             <xsl:with-param name="codes">b</xsl:with-param>
90                         </xsl:call-template>
91                     </xsl:if>
92                     <xsl:text> </xsl:text>
93                     <xsl:call-template name="subfieldSelect">
94                         <xsl:with-param name="codes">np</xsl:with-param>
95                     </xsl:call-template>
96             </xsl:for-each>
97         </h1>
98         </xsl:if>
99
100         <!-- Author Statement -->
101                 <!-- 245$9 is Koha authority number --> 
102         <xsl:choose>
103         <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]">
104         <h5 class="author">av
105         <xsl:for-each select="marc:datafield[@tag=100 or @tag=700]">
106         <a>
107         <xsl:choose>
108             <xsl:when test="marc:subfield[@code=9]">
109                 <xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=an:<xsl:value-of select="str:encode-uri(marc:subfield[@code=9], true())"/></xsl:attribute>
110             </xsl:when>
111             <xsl:otherwise>
112             <xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=au:<xsl:value-of select="str:encode-uri(marc:subfield[@code='a'], true())"/></xsl:attribute>
113             </xsl:otherwise>
114         </xsl:choose>
115         <xsl:call-template name="nameABCDQ"/></a>
116         <xsl:choose>
117         <xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
118         </xsl:for-each>
119
120         <xsl:for-each select="marc:datafield[@tag=110 or @tag=710]">
121         <a>
122         <xsl:choose>
123             <xsl:when test="marc:subfield[@code=9]">
124                 <xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=an:<xsl:value-of select="str:encode-uri(marc:subfield[@code=9], true())"/></xsl:attribute>
125             </xsl:when>
126             <xsl:otherwise>
127             <xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=au:<xsl:value-of select="str:encode-uri(marc:subfield[@code='a'], true())"/></xsl:attribute>
128             </xsl:otherwise>
129         </xsl:choose>
130         <xsl:call-template name="nameABCDN"/></a>
131         <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
132         </xsl:for-each>
133
134         <xsl:for-each select="marc:datafield[@tag=111 or @tag=711]">
135         <a>
136         <xsl:choose>
137             <xsl:when test="marc:subfield[@code=9]">
138                 <xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=an:<xsl:value-of select="str:encode-uri(marc:subfield[@code=9], true())"/></xsl:attribute>
139             </xsl:when>
140             <xsl:otherwise>
141             <xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=au:<xsl:value-of select="str:encode-uri(marc:subfield[@code='a'], true())"/></xsl:attribute>
142             </xsl:otherwise>
143         </xsl:choose>
144         <xsl:call-template name="nameACDEQ"/></a>
145         <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
146
147         </xsl:for-each>
148         </h5>
149         </xsl:when>
150         </xsl:choose>
151
152
153         <xsl:if test="$typeOf008!=''">
154         <span class="results_summary">
155             <span class="label">Materialtype: </span>
156             <xsl:choose>
157                 <xsl:when test="$typeOf008='Mon'"><img src="/intranet-tmpl/prog/img/famfamfam/BK.png" alt="Bok" title="Bok"/> Bok</xsl:when>
158                 <xsl:when test="$typeOf008='Per'"><img src="/intranet-tmpl/prog/img/famfamfam/AR.png" alt="Periodika" title="Periodika"/> Periodika</xsl:when>
159                 <xsl:when test="$typeOf008='Fil'"><img src="/intranet-tmpl/prog/img/famfamfam/CF.png" alt="Fil" title="Fil"/> Fil</xsl:when>
160                 <xsl:when test="$typeOf008='Kar'"><img src="/intranet-tmpl/prog/img/famfamfam/MP.png" alt="Kart" title="Kart"/> Kart</xsl:when>
161                 <xsl:when test="$typeOf008='FV'"><img  src="/intranet-tmpl/prog/img/famfamfam/VM.png" alt="Film og video" title="Film og video"/> Film og video</xsl:when>
162                 <xsl:when test="$typeOf008='Mus'"><img src="/intranet-tmpl/prog/img/famfamfam/PR.png" alt="Musikktrykk og lydopptak" title="Musikktrykk og lydopptak"/> Musikk</xsl:when>
163                 <xsl:when test="$typeOf008='gra'"><img src="/intranet-tmpl/prog/img/famfamfam/GR.png" alt="Grafisk materiale" title="Grafisk materiale"/> Grafisk materiale</xsl:when>
164                 <xsl:when test="$typeOf008='kom'"><img src="/intranet-tmpl/prog/img/famfamfam/MX.png" alt="Kombidokumenter" title="Kombidokumenter"/> Kombidokumenter</xsl:when>
165                 <xsl:when test="$typeOf008='trd'"><img src="/intranet-tmpl/prog/img/famfamfam/TD.png" alt="Tre-dimensjonale gjenstander" title="Tre-dimensjonale gjenstander"/> Tre-dimensjonale gjenstander</xsl:when>
166             </xsl:choose>
167         </span>
168         </xsl:if>
169
170         <!--Series -->
171         <xsl:if test="marc:datafield[@tag=440 or @tag=490]">
172                 <span class="results_summary"><span class="label">Series: </span>
173                 <xsl:for-each select="marc:datafield[@tag=440]">
174                     <a>
175                     <xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=se:<xsl:value-of select="str:encode-uri(marc:subfield[@code='a'], true())"/></xsl:attribute>
176                         <xsl:call-template name="chopPunctuation">
177                                     <xsl:with-param name="chopString">
178                                         <xsl:call-template name="subfieldSelect">
179                                             <xsl:with-param name="codes">av</xsl:with-param>
180                                         </xsl:call-template>
181                                     </xsl:with-param>
182                                 </xsl:call-template>
183                                 </a>
184                             <xsl:text> </xsl:text><xsl:call-template name="part"/>
185                     <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
186                 </xsl:for-each>
187         
188                 <xsl:for-each select="marc:datafield[@tag=490][@ind1=0]">
189                     <a>
190                     <xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=se:<xsl:value-of select="str:encode-uri(marc:subfield[@code='a'], true())"/></xsl:attribute>
191                                 <xsl:call-template name="chopPunctuation">
192                                     <xsl:with-param name="chopString">
193                                         <xsl:call-template name="subfieldSelect">
194                                             <xsl:with-param name="codes">av</xsl:with-param>
195                                         </xsl:call-template>
196                                     </xsl:with-param>
197                                 </xsl:call-template>
198                     </a>
199                             <xsl:call-template name="part"/>
200                 <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
201                 </xsl:for-each>
202                 </span>
203         </xsl:if>
204
205         <!-- Analytics -->
206         <xsl:if test="$leader7='s' or $leader7='c'">
207         <span class="results_summary analytics"><span class="label">Analytics: </span>
208             <a>
209             <xsl:choose>
210             <xsl:when test="$UseControlNumber = '1' and marc:controlfield[@tag=001]">
211                 <xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=rcn:<xsl:value-of select="str:encode-uri(marc:controlfield[@tag=001], true())"/>+and+(bib-level:a+or+bib-level:b)</xsl:attribute>
212             </xsl:when>
213             <xsl:otherwise>
214                 <xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=Host-item:<xsl:value-of select="str:encode-uri(translate(marc:datafield[@tag=245]/marc:subfield[@code='a'], '/', ''), true())"/></xsl:attribute>
215             </xsl:otherwise>
216             </xsl:choose>
217             <xsl:text>Show analytics</xsl:text>
218             </a>
219         </span>
220         </xsl:if>
221
222         <!-- 773 - Links from child to parent -->
223         <xsl:if test="marc:datafield[@tag=773]">
224         <xsl:for-each select="marc:datafield[@tag=773]">
225         <xsl:if test="@ind1=0">
226         <span class="results_summary in"><span class="label">
227         <xsl:choose>
228         <xsl:when test="@ind2=' '">
229             In:
230         </xsl:when>
231         <xsl:when test="@ind2=8">
232             <xsl:if test="marc:subfield[@code='i']">
233                 <xsl:value-of select="marc:subfield[@code='i']"/>
234             </xsl:if>
235         </xsl:when>
236         </xsl:choose>
237         </span>
238                 <xsl:variable name="f773">
239                     <xsl:call-template name="chopPunctuation"><xsl:with-param name="chopString"><xsl:call-template name="subfieldSelect">
240                         <xsl:with-param name="codes">a_t</xsl:with-param>
241                     </xsl:call-template></xsl:with-param></xsl:call-template>
242                 </xsl:variable>
243             <xsl:choose>
244                 <xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
245                     <a><xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=Control-number:<xsl:call-template name="extractControlNumber"><xsl:with-param name="subfieldW" select="marc:subfield[@code='w']"/></xsl:call-template></xsl:attribute>
246                         <xsl:value-of select="translate($f773, '()', '')"/>
247                     </a>
248                     <xsl:if test="marc:subfield[@code='g']"><xsl:text> </xsl:text><xsl:value-of select="marc:subfield[@code='g']"/></xsl:if>
249                 </xsl:when>
250                 <xsl:when test="marc:subfield[@code='0']">
251                     <a><xsl:attribute name="href">/cgi-bin/koha/catalogue/detail.pl?biblionumber=<xsl:value-of select="str:encode-uri(marc:subfield[@code='0'], true())"/></xsl:attribute>
252                         <xsl:value-of select="$f773"/>
253                     </a>
254                 </xsl:when>
255                 <xsl:otherwise>
256                     <a><xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=ti,phr:<xsl:value-of select="str:encode-uri(translate($f773, '()', ''), true())"/></xsl:attribute>
257                         <xsl:value-of select="$f773"/>
258                     </a>
259                     <xsl:if test="marc:subfield[@code='g']"><xsl:text> </xsl:text><xsl:value-of select="marc:subfield[@code='g']"/></xsl:if>
260                 </xsl:otherwise>
261             </xsl:choose>
262         </span>
263         <xsl:if test="marc:subfield[@code='n']">
264             <span class="results_summary"><xsl:value-of select="marc:subfield[@code='n']"/></span>
265         </xsl:if>
266         </xsl:if>
267         </xsl:for-each>
268         </xsl:if>
269
270         <!-- Publisher Statement -->
271         
272         <xsl:if test="marc:datafield[@tag=260]">
273         <span class="results_summary"><span class="label">Utgiver: </span>
274             <xsl:for-each select="marc:datafield[@tag=260]">
275                 <xsl:call-template name="chopPunctuation">
276                   <xsl:with-param name="chopString">
277                     <xsl:call-template name="subfieldSelect">
278                         <xsl:with-param name="codes">bcg</xsl:with-param>
279                     </xsl:call-template>
280                    </xsl:with-param>
281                </xsl:call-template>
282                     <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
283             </xsl:for-each>
284         </span> 
285         </xsl:if>
286
287         <!-- Edition Statement -->
288         
289         <xsl:if test="marc:datafield[@tag=250]">
290         <span class="results_summary"><span class="label">Utgave: </span>
291             <xsl:for-each select="marc:datafield[@tag=250]">
292                 <xsl:call-template name="chopPunctuation">
293                   <xsl:with-param name="chopString">
294                     <xsl:call-template name="subfieldSelect">
295                         <xsl:with-param name="codes">ab</xsl:with-param>
296                     </xsl:call-template>
297                    </xsl:with-param>
298                </xsl:call-template>
299                     <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
300             </xsl:for-each>
301         </span>
302         </xsl:if>
303
304         <!-- Description -->
305         
306         <xsl:if test="marc:datafield[@tag=300]">
307         <span class="results_summary"><span class="label">Beskrivelse: </span>
308             <xsl:for-each select="marc:datafield[@tag=300]">
309                 <xsl:call-template name="chopPunctuation">
310                   <xsl:with-param name="chopString">
311                     <xsl:call-template name="subfieldSelect">
312                         <xsl:with-param name="codes">abceg</xsl:with-param>
313                     </xsl:call-template>
314                    </xsl:with-param>
315                </xsl:call-template>
316                     <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
317             </xsl:for-each>
318         </span>
319        </xsl:if>
320
321        <abbr class="unapi-id" title="koha:biblionumber:{marc:datafield[@tag=999]/marc:subfield[@code='c']}" ><!-- unAPI --></abbr>
322
323         <!-- Build ISBN -->
324         <xsl:if test="marc:datafield[@tag=020]/marc:subfield[@code='a']">
325           <span class="results_summary isbn"><span class="label">ISBN: </span>
326             <xsl:for-each select="marc:datafield[@tag=020]/marc:subfield[@code='a']">
327               <span property="isbn">
328                 <xsl:value-of select="."/>
329                 <xsl:choose>
330                   <xsl:when test="position()=last()">
331                     <xsl:text>.</xsl:text>
332                   </xsl:when>
333                   <xsl:otherwise>
334                     <xsl:text>; </xsl:text>
335                   </xsl:otherwise>
336                 </xsl:choose>
337               </span>
338             </xsl:for-each>
339           </span>
340         </xsl:if>
341
342         <!-- Build ISSN -->
343         <xsl:if test="marc:datafield[@tag=022]/marc:subfield[@code='a']">
344           <span class="results_summary issn"><span class="label">ISSN: </span>
345             <xsl:for-each select="marc:datafield[@tag=022]/marc:subfield[@code='a']">
346               <span property="issn">
347                 <xsl:value-of select="."/>
348                 <xsl:choose>
349                   <xsl:when test="position()=last()">
350                     <xsl:text>.</xsl:text>
351                   </xsl:when>
352                   <xsl:otherwise>
353                     <xsl:text>; </xsl:text>
354                   </xsl:otherwise>
355                 </xsl:choose>
356               </span>
357             </xsl:for-each>
358           </span>
359         </xsl:if>
360
361         <!-- Other Title  Statement -->
362
363         <xsl:if test="marc:datafield[@tag=246]">
364         <span class="results_summary"><span class="label">Parallelltittel: </span>
365             <xsl:for-each select="marc:datafield[@tag=246]">
366                 <xsl:call-template name="chopPunctuation">
367                   <xsl:with-param name="chopString">
368                     <xsl:call-template name="subfieldSelect">
369                         <xsl:with-param name="codes">abhfgnp</xsl:with-param>
370                     </xsl:call-template>
371                    </xsl:with-param>
372                </xsl:call-template>
373                     <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
374             </xsl:for-each>
375         </span>
376        </xsl:if>
377
378         <!-- Uniform Title  Statement -->
379
380         <xsl:if test="marc:datafield[@tag=130]|marc:datafield[@tag=240]|marc:datafield[@tag=730][@ind2!=2]">
381         <span class="results_summary"><span class="label">Standardtittel: </span>
382         <xsl:for-each select="marc:datafield[@tag=130]|marc:datafield[@tag=240]|marc:datafield[@tag=730][@ind2!=2]">
383             <xsl:variable name="str">
384                 <xsl:for-each select="marc:subfield">
385                     <xsl:if test="(contains('adfklmor',@code) and (not(../marc:subfield[@code='n' or @code='p']) or (following-sibling::marc:subfield[@code='n' or @code='p'])))">
386                         <xsl:value-of select="text()"/>
387                         <xsl:text> </xsl:text>
388                      </xsl:if>
389                 </xsl:for-each>
390             </xsl:variable>
391             <xsl:call-template name="chopPunctuation">
392                 <xsl:with-param name="chopString">
393                     <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
394                         
395                 </xsl:with-param>
396             </xsl:call-template>
397             <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
398         </xsl:for-each>
399         </span>
400         </xsl:if>
401
402         <!-- Subjects -->
403
404         <xsl:if test="marc:datafield[substring(@tag, 1, 1) = '6']">
405             <span class="results_summary subjects"><span class="label">Emne(r): </span>
406             <xsl:for-each select="marc:datafield[substring(@tag, 1, 1) = '6']">
407             <a>
408             <xsl:choose>
409             <!-- Will implement this later
410                 <xsl:when test="marc:subfield[@code=9] and $UseAuthoritiesForTracings='1'">
411                     <xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=an:<xsl:value-of select="str:encode-uri(marc:subfield[@code=9], true())"/></xsl:attribute>
412                 </xsl:when>
413             -->
414             <xsl:when test="$TraceSubjectSubdivisions='1'">
415                 <xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=<xsl:call-template name="subfieldSelect">
416                         <xsl:with-param name="codes">abcdvxyz</xsl:with-param>
417                         <xsl:with-param name="delimeter"> AND </xsl:with-param>
418                         <xsl:with-param name="prefix">(su<xsl:value-of select="$SubjectModifier"/>:<xsl:value-of select="$TracingQuotesLeft"/></xsl:with-param>
419                         <xsl:with-param name="suffix"><xsl:value-of select="$TracingQuotesRight"/>)</xsl:with-param>
420                         <xsl:with-param name="urlencode">1</xsl:with-param>
421                     </xsl:call-template>
422                 </xsl:attribute>
423             </xsl:when>
424             <xsl:otherwise>
425                 <xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=su<xsl:value-of select="$SubjectModifier"/>:<xsl:value-of select="$TracingQuotesLeft"/><xsl:value-of select="str:encode-uri(marc:subfield[@code='a'], true())"/><xsl:value-of select="$TracingQuotesRight"/></xsl:attribute>
426             </xsl:otherwise>
427             </xsl:choose>
428             <xsl:call-template name="chopPunctuation">
429                 <xsl:with-param name="chopString">
430                     <xsl:call-template name="subfieldSelect">
431                         <xsl:with-param name="codes">abcdvxyz</xsl:with-param>
432                         <xsl:with-param name="subdivCodes">vxyz</xsl:with-param>
433                         <xsl:with-param name="subdivDelimiter">-- </xsl:with-param>
434                     </xsl:call-template>
435                 </xsl:with-param>
436             </xsl:call-template>
437             </a>
438             <xsl:choose>
439             <xsl:when test="position()=last()"></xsl:when>
440             <xsl:otherwise> | </xsl:otherwise>
441             </xsl:choose>
442
443             </xsl:for-each>
444             </span>
445         </xsl:if>
446
447         <xsl:if test="marc:datafield[@tag=856]">
448         <span class="results_summary"><span class="label">Nettbasert ressurs: </span>
449         <xsl:for-each select="marc:datafield[@tag=856]">
450             <a><xsl:attribute name="href"><xsl:value-of select="marc:subfield[@code='u']"/></xsl:attribute>
451         <xsl:choose>
452             <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']">
453                     <xsl:call-template name="subfieldSelect">
454                         <xsl:with-param name="codes">y3z</xsl:with-param>
455                     </xsl:call-template>
456             </xsl:when>
457         <xsl:when test="not(marc:subfield[@code='y']) and not(marc:subfield[@code='3']) and not(marc:subfield[@code='z'])">
458         Klikk her for tilgang
459         </xsl:when>
460         </xsl:choose>
461         </a>
462             <xsl:choose>
463             <xsl:when test="position()=last()"></xsl:when>
464             <xsl:otherwise> | </xsl:otherwise>
465             </xsl:choose>  
466         </xsl:for-each>
467         </span>
468         </xsl:if>
469         
470         <!-- NORMARC does not define indicators for 505
471         <xsl:if test="marc:datafield[@tag=505]">
472         <xsl:for-each select="marc:datafield[@tag=505]">
473         <span class="results_summary"><span class="label">
474         <xsl:choose>
475         <xsl:when test="@ind1=0">
476             Contents:
477         </xsl:when>
478         <xsl:when test="@ind1=1">
479             Incomplete contents:
480         </xsl:when>
481         <xsl:when test="@ind1=1">
482             Partial contents:
483         </xsl:when>
484         </xsl:choose>  
485         </span>
486         <xsl:choose>
487         <xsl:when test="@ind2=0">
488             <xsl:for-each select="marc:subfield[@code='t']">
489                 <xsl:value-of select="marc:subfield[@code=t]"/> <xsl:value-of select="marc:subfield[@code=r]"/>
490             </xsl:for-each> 
491         </xsl:when>
492         <xsl:otherwise>
493             <xsl:call-template name="subfieldSelect">
494                 <xsl:with-param name="codes">au</xsl:with-param>
495             </xsl:call-template>
496         </xsl:otherwise>
497         </xsl:choose>
498         </span>
499         </xsl:for-each>
500         </xsl:if>
501         -->
502         <xsl:if test="marc:datafield[@tag=505]">
503                 <xsl:call-template name="subfieldSelect">
504                 <xsl:with-param name="codes">a</xsl:with-param>
505             </xsl:call-template>
506                 </xsl:if>
507                 
508         <!-- 780 -->
509         <xsl:if test="marc:datafield[@tag=780]">
510         <xsl:for-each select="marc:datafield[@tag=780]">
511         <span class="results_summary"><span class="label">
512         <xsl:choose>
513                 <xsl:when test="@ind2=0">
514                     Fortsettelse av:
515                 </xsl:when>
516                 <xsl:when test="@ind2=1">
517                     Delvis fortsettelse av:
518                 </xsl:when>
519                 <xsl:when test="@ind2=2">
520                     Avløser:
521                 </xsl:when>
522                 <xsl:when test="@ind2=3">
523                     Avløser delvis:
524                 </xsl:when>
525                 <xsl:when test="@ind2=4">
526                     Sammenslåing av: ... ; og ...
527                 </xsl:when>
528                 <xsl:when test="@ind2=5">
529                     Har tatt opp:
530                 </xsl:when>
531                 <xsl:when test="@ind2=6">
532                     Har delvis tatt opp:
533                 </xsl:when>
534                 <xsl:when test="@ind2=7">
535                     Utskilt fra:
536                 </xsl:when>
537         </xsl:choose>
538         </span>
539                 <xsl:variable name="f780">
540                     <xsl:call-template name="subfieldSelect">
541                         <xsl:with-param name="codes">a_t</xsl:with-param>
542                     </xsl:call-template>
543                 </xsl:variable>
544              <a><xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=<xsl:value-of select="str:encode-uri(translate($f780, '()', ''), true())"/></xsl:attribute>
545                 <xsl:value-of select="translate($f780, '()', '')"/>
546             </a>
547         </span>
548  
549         <xsl:choose>
550         <xsl:when test="@ind1=0">
551             <span class="results_summary"><xsl:value-of select="marc:subfield[@code='n']"/></span>
552         </xsl:when>
553         </xsl:choose>
554
555         </xsl:for-each>
556         </xsl:if>
557
558         <!-- 785 -->
559         <xsl:if test="marc:datafield[@tag=785]">
560         <xsl:for-each select="marc:datafield[@tag=785]">
561         <span class="results_summary"><span class="label">
562         <xsl:choose>
563                 <xsl:when test="@ind2=0">
564                     Fortsettelse i:
565                 </xsl:when>
566                 <xsl:when test="@ind2=1">
567                     Fortsettes delvis i:
568                 </xsl:when>
569                 <xsl:when test="@ind2=2">
570                     Avløst av:
571                 </xsl:when>
572                 <xsl:when test="@ind2=3">
573                     Delvis avløst av:
574                 </xsl:when>
575                 <xsl:when test="@ind2=4">
576                     Gått inn i:
577                 </xsl:when>
578                 <xsl:when test="@ind2=5">
579                     Delvis gått inn i:
580                 </xsl:when>
581                 <xsl:when test="@ind2=6">
582                     Fortsettes av: ...; og ...
583                 </xsl:when>
584                 <xsl:when test="@ind2=7">
585                         Slått sammen med: .., til: ...
586                 </xsl:when>
587         </xsl:choose>
588         </span>
589                    <xsl:variable name="f785">
590                     <xsl:call-template name="subfieldSelect">
591                         <xsl:with-param name="codes">a_t</xsl:with-param>
592                     </xsl:call-template>
593                 </xsl:variable>
594
595                 <a><xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=<xsl:value-of select="str:encode-uri(translate($f785, '()', ''), true())"/></xsl:attribute>
596                 <xsl:value-of select="translate($f785, '()', '')"/>
597             </a>
598
599         </span>
600         </xsl:for-each>
601         </xsl:if>
602
603         <!-- This will only work if the OPACBaseURL syspref is set. -->
604         <xsl:if test="string-length($OPACBaseURL) > 0">
605         <p>OPAC View: <a>
606                       <xsl:attribute name="href"><xsl:value-of select="$OPACBaseURL"/>/cgi-bin/koha/opac-detail.pl?biblionumber=<xsl:value-of select="str:encode-uri($biblionumber, true())"/></xsl:attribute>
607                       <xsl:attribute name="target">_blank</xsl:attribute>
608                       Open in new window
609                       </a></p>
610          </xsl:if>
611
612     </xsl:template>
613
614     <xsl:template name="part">
615         <xsl:variable name="partNumber">
616             <xsl:call-template name="specialSubfieldSelect">
617                 <xsl:with-param name="axis">n</xsl:with-param>
618                 <xsl:with-param name="anyCodes">n</xsl:with-param>
619                 <xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
620             </xsl:call-template>
621         </xsl:variable>
622         <xsl:variable name="partName">
623             <xsl:call-template name="specialSubfieldSelect">
624                 <xsl:with-param name="axis">p</xsl:with-param>
625                 <xsl:with-param name="anyCodes">p</xsl:with-param>
626                 <xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
627             </xsl:call-template>
628         </xsl:variable>
629         <xsl:if test="string-length(normalize-space($partNumber))">
630                 <xsl:call-template name="chopPunctuation">
631                     <xsl:with-param name="chopString" select="$partNumber"/>
632                 </xsl:call-template>
633         </xsl:if>
634         <xsl:if test="string-length(normalize-space($partName))">
635                 <xsl:call-template name="chopPunctuation">
636                     <xsl:with-param name="chopString" select="$partName"/>
637                 </xsl:call-template>
638         </xsl:if>
639     </xsl:template>
640
641     <xsl:template name="specialSubfieldSelect">
642         <xsl:param name="anyCodes"/>
643         <xsl:param name="axis"/>
644         <xsl:param name="beforeCodes"/>
645         <xsl:param name="afterCodes"/>
646         <xsl:variable name="str">
647             <xsl:for-each select="marc:subfield">
648                 <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])">
649                     <xsl:value-of select="text()"/>
650                     <xsl:text> </xsl:text>
651                 </xsl:if>
652             </xsl:for-each>
653         </xsl:variable>
654         <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
655     </xsl:template>
656 </xsl:stylesheet>