Bug 7537 - Implement TraceCompleteSubfields, TraceSubjectSubdivisions and UseICU...
[koha.git] / koha-tmpl / opac-tmpl / prog / en / xslt / NORMARCslim2OPACDetail.xsl
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <!DOCTYPE stylesheet [<!ENTITY nbsp "&#160;" >]>
4
5 <!-- $Id: MARC21slim2DC.xsl,v 1.1 2003/01/06 08:20:27 adam Exp $ -->
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   exclude-result-prefixes="marc items">
11     <xsl:import href="NORMARCslimUtils.xsl"/>
12     <xsl:output method = "xml" indent="yes" omit-xml-declaration = "yes" />
13     <xsl:template match="/">
14             <xsl:apply-templates/>
15     </xsl:template>
16
17     <xsl:template match="marc:record">
18
19         <!-- Sysprefs -->
20         <xsl:variable name="SubjectModifier"><xsl:if test="marc:sysprefs/marc:syspref[@name='TraceCompleteSubfields']='1'">,complete-subfield</xsl:if></xsl:variable>
21         <xsl:variable name="TraceSubjectSubdivisions" select="marc:sysprefs/marc:syspref[@name='TraceSubjectSubdivisions']"/>
22         <xsl:variable name="TracingQuotesLeft">
23           <xsl:choose>
24             <xsl:when test="marc:sysprefs/marc:syspref[@name='UseICU']='1'">{</xsl:when>
25             <xsl:otherwise>"</xsl:otherwise>
26           </xsl:choose>
27         </xsl:variable>
28         <xsl:variable name="TracingQuotesRight">
29           <xsl:choose>
30             <xsl:when test="marc:sysprefs/marc:syspref[@name='UseICU']='1'">}</xsl:when>
31             <xsl:otherwise>"</xsl:otherwise>
32           </xsl:choose>
33         </xsl:variable>
34         <xsl:variable name="DisplayOPACiconsXSLT" select="marc:sysprefs/marc:syspref[@name='DisplayOPACiconsXSLT']"/>
35
36         <xsl:variable name="leader" select="marc:leader"/>
37         <xsl:variable name="leader6" select="substring($leader,7,1)"/>
38         <xsl:variable name="leader7" select="substring($leader,8,1)"/>
39         <xsl:variable name="controlField008" select="marc:controlfield[@tag=008]"/>
40         <xsl:variable name="field019b" select="marc:datafield[@tag=019]/marc:subfield[@code='b']"/>
41         <xsl:variable name="materialTypeCode">
42             <xsl:choose>
43                 <xsl:when test="$field019b='b' or $field019b='k' or $field019b='l' or $leader6='b'">Mon</xsl:when>
44                 <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>
45                 <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>
46                 <xsl:when test="$field019b='a' or contains($field019b,'ab') or contains($field019b,'aj') or $leader6='e' or $leader6='f'">Kar</xsl:when>
47                 <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>
48                 <xsl:when test="$field019b='g' or contains($field019b,'gb') or contains($field019b,'gd') or contains($field019b,'ge') or $leader6='m'">Fil</xsl:when>
49                 <xsl:when test="$leader6='o'">kom</xsl:when>
50                 <xsl:when test="$field019b='h' or $leader6='r'">trd</xsl:when>
51                 <xsl:when test="$field019b='j' or $leader6='a'">
52                     <xsl:choose>
53                         <xsl:when test="$leader7='a' or $leader7='c' or $leader7='m' or $leader7='p'">Mon</xsl:when>
54                         <xsl:when test="$field019b='j' or $leader7='b' or $leader7='s'">Per</xsl:when>
55                     </xsl:choose>
56                 </xsl:when>
57             </xsl:choose>
58         </xsl:variable>
59         <xsl:variable name="materialTypeLabel">
60                         <xsl:choose>
61                 <xsl:when test="$field019b='b' or $field019b='k' or $field019b='l' or $leader6='b'">Bok</xsl:when>
62                 <xsl:when test="$field019b='e' or contains($field019b,'ec') or contains($field019b,'ed') or contains($field019b,'ee') or contains($field019b,'ef') or $leader6='g'">Film og video</xsl:when>
63                 <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'">Musikalier</xsl:when>
64                 <xsl:when test="$field019b='a' or contains($field019b,'ab') or contains($field019b,'aj') or $leader6='e' or $leader6='f'">Kart</xsl:when>
65                 <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'">Grafisk materiale</xsl:when>
66                 <xsl:when test="$field019b='g' or contains($field019b,'gb') or contains($field019b,'gd') or contains($field019b,'ge') or $leader6='m'">Fil</xsl:when>
67                 <xsl:when test="$leader6='o'">Kombidokument</xsl:when>
68                 <xsl:when test="$field019b='h' or $leader6='r'">Tredimensjonal gjenstand</xsl:when>
69                 <xsl:when test="$field019b='j' or $leader6='a'">
70                     <xsl:choose>
71                         <xsl:when test="$leader7='a' or $leader7='c' or $leader7='m' or $leader7='p'">Bok</xsl:when>
72                         <xsl:when test="$field019b='j' or $leader7='b' or $leader7='s'">Periodikum</xsl:when>
73                     </xsl:choose>
74                 </xsl:when>
75             </xsl:choose>
76
77         </xsl:variable>
78
79         <!-- Tittel og ansvarsopplysninger -->
80         <xsl:if test="marc:datafield[@tag=245]">
81         <h1>
82             <xsl:for-each select="marc:datafield[@tag=245]">
83                     <xsl:call-template name="subfieldSelect">
84                         <xsl:with-param name="codes">a</xsl:with-param>
85                     </xsl:call-template>
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:if test="marc:subfield[@code='h']">
93                         <xsl:text> </xsl:text>
94                         (<xsl:call-template name="subfieldSelect">
95                             <xsl:with-param name="codes">h</xsl:with-param>
96                         </xsl:call-template>) 
97                     </xsl:if>
98                     <xsl:text> </xsl:text>
99                     <xsl:call-template name="subfieldSelect">
100                         <xsl:with-param name="codes">np</xsl:with-param>
101                     </xsl:call-template>
102             </xsl:for-each>
103         </h1>
104         </xsl:if>
105
106         <!-- Author Statement -->
107                 <!-- 245$9 is Koha authority number --> 
108         <xsl:choose>
109         <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]">
110         <h5 class="author">av
111         <xsl:for-each select="marc:datafield[@tag=100 or @tag=700]">
112         <a>
113         <xsl:choose>
114             <xsl:when test="marc:subfield[@code=9]">
115                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=an:<xsl:value-of select="marc:subfield[@code=9]"/></xsl:attribute>
116             </xsl:when>
117             <xsl:otherwise>
118             <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=au:<xsl:value-of select="marc:subfield[@code='a']"/></xsl:attribute>
119             </xsl:otherwise>
120         </xsl:choose>
121         <xsl:call-template name="nameABCDQ"/></a>
122         <xsl:choose>
123         <xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
124         </xsl:for-each>
125
126         <xsl:for-each select="marc:datafield[@tag=110 or @tag=710]">
127         <a>
128         <xsl:choose>
129             <xsl:when test="marc:subfield[@code=9]">
130                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=an:<xsl:value-of select="marc:subfield[@code=9]"/></xsl:attribute>
131             </xsl:when>
132             <xsl:otherwise>
133             <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=au:<xsl:value-of select="marc:subfield[@code='a']"/></xsl:attribute>      
134             </xsl:otherwise>
135         </xsl:choose>
136         <xsl:call-template name="nameABCDN"/></a>
137         <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
138         </xsl:for-each>
139
140         <xsl:for-each select="marc:datafield[@tag=111 or @tag=711]">
141         <a>
142         <xsl:choose>
143             <xsl:when test="marc:subfield[@code=9]">
144                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=an:<xsl:value-of select="marc:subfield[@code=9]"/></xsl:attribute>
145             </xsl:when>
146             <xsl:otherwise>
147             <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=au:<xsl:value-of select="marc:subfield[@code='a']"/></xsl:attribute>
148             </xsl:otherwise>
149         </xsl:choose>
150         <xsl:call-template name="nameACDEQ"/></a>
151         <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
152
153         </xsl:for-each>
154         </h5>
155         </xsl:when>
156         </xsl:choose>
157
158     <xsl:if test="$DisplayOPACiconsXSLT!='0'">
159         <xsl:if test="$materialTypeCode!=''">
160         <span class="results_summary"><span class="label">Materialtype: </span>
161         <xsl:element name="img"><xsl:attribute name="src">/opac-tmpl/prog/famfamfam/<xsl:value-of select="$materialTypeCode"/>.png</xsl:attribute><xsl:attribute name="alt"></xsl:attribute></xsl:element>
162         <xsl:value-of select="$materialTypeLabel"/>
163         </span>
164         </xsl:if>
165     </xsl:if>
166
167         <!--Series -->
168         <xsl:if test="marc:datafield[@tag=440 or @tag=490]">
169                 <span class="results_summary"><span class="label">Series: </span>
170                 <xsl:for-each select="marc:datafield[@tag=440]">
171                      <a href="/cgi-bin/koha/opac-search.pl?q=se:{marc:subfield[@code='a']}">
172                     <xsl:call-template name="chopPunctuation">
173                                     <xsl:with-param name="chopString">
174                                         <xsl:call-template name="subfieldSelect">
175                                             <xsl:with-param name="codes">av</xsl:with-param>
176                                         </xsl:call-template>
177                                     </xsl:with-param>
178                                 </xsl:call-template>
179                                 </a>
180                             <xsl:text> </xsl:text><xsl:call-template name="part"/>
181                     <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
182                 </xsl:for-each>
183         
184                 <xsl:for-each select="marc:datafield[@tag=490][@ind1=0]">
185                      <a href="/cgi-bin/koha/opac-search.pl?q=se:{marc:subfield[@code='a']}">
186                                 <xsl:call-template name="chopPunctuation">
187                                     <xsl:with-param name="chopString">
188                                         <xsl:call-template name="subfieldSelect">
189                                             <xsl:with-param name="codes">av</xsl:with-param>
190                                         </xsl:call-template>
191                                     </xsl:with-param>
192                                 </xsl:call-template>
193                     </a>
194                             <xsl:call-template name="part"/>
195                 <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
196                 </xsl:for-each>
197                 </span>
198         </xsl:if>
199
200         <!-- Publisher Statement -->
201         
202         <xsl:if test="marc:datafield[@tag=260]">
203         <span class="results_summary"><span class="label">Utgiver: </span>
204             <xsl:for-each select="marc:datafield[@tag=260]">
205                 <xsl:call-template name="chopPunctuation">
206                   <xsl:with-param name="chopString">
207                     <xsl:call-template name="subfieldSelect">
208                         <xsl:with-param name="codes">bcg</xsl:with-param>
209                     </xsl:call-template>
210                    </xsl:with-param>
211                </xsl:call-template>
212                     <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
213             </xsl:for-each>
214         </span> 
215         </xsl:if>
216
217         <!-- Edition Statement -->
218         
219         <xsl:if test="marc:datafield[@tag=250]">
220         <span class="results_summary"><span class="label">Utgave: </span>
221             <xsl:for-each select="marc:datafield[@tag=250]">
222                 <xsl:call-template name="chopPunctuation">
223                   <xsl:with-param name="chopString">
224                     <xsl:call-template name="subfieldSelect">
225                         <xsl:with-param name="codes">ab</xsl:with-param>
226                     </xsl:call-template>
227                    </xsl:with-param>
228                </xsl:call-template>
229                     <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
230             </xsl:for-each>
231         </span>
232         </xsl:if>
233
234         <!-- Description -->
235         
236         <xsl:if test="marc:datafield[@tag=300]">
237         <span class="results_summary"><span class="label">Beskrivelse: </span>
238             <xsl:for-each select="marc:datafield[@tag=300]">
239                 <xsl:call-template name="chopPunctuation">
240                   <xsl:with-param name="chopString">
241                     <xsl:call-template name="subfieldSelect">
242                         <xsl:with-param name="codes">abceg</xsl:with-param>
243                     </xsl:call-template>
244                    </xsl:with-param>
245                </xsl:call-template>
246                     <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
247             </xsl:for-each>
248         </span>
249        </xsl:if>
250
251        <abbr class="unapi-id" title="koha:biblionumber:{marc:datafield[@tag=999]/marc:subfield[@code='c']}" ><!-- unAPI --></abbr>
252
253        <xsl:if test="marc:datafield[@tag=020]">
254         <span class="results_summary"><span class="label">ISBN: </span>
255         <xsl:for-each select="marc:datafield[@tag=020]">
256         <xsl:variable name="isbn" select="marc:subfield[@code='a']"/>
257                 <xsl:value-of select="marc:subfield[@code='a']"/>
258                 <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
259         </xsl:for-each>
260         </span>
261         </xsl:if>
262
263         <xsl:if test="marc:datafield[@tag=022]">
264         <span class="results_summary"><span class="label">ISSN: </span>
265         <xsl:for-each select="marc:datafield[@tag=022]">
266                 <xsl:value-of select="marc:subfield[@code='a']"/>
267                 <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
268         </xsl:for-each>
269         </span>
270         </xsl:if>
271
272         <!-- Other Title  Statement -->
273
274         <xsl:if test="marc:datafield[@tag=246]">
275         <span class="results_summary"><span class="label">Parallelltittel: </span>
276             <xsl:for-each select="marc:datafield[@tag=246]">
277                 <xsl:call-template name="chopPunctuation">
278                   <xsl:with-param name="chopString">
279                     <xsl:call-template name="subfieldSelect">
280                         <xsl:with-param name="codes">abhfgnp</xsl:with-param>
281                     </xsl:call-template>
282                    </xsl:with-param>
283                </xsl:call-template>
284                     <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
285             </xsl:for-each>
286         </span>
287        </xsl:if>
288
289         <!-- Uniform Title  Statement -->
290
291         <xsl:if test="marc:datafield[@tag=130]|marc:datafield[@tag=240]|marc:datafield[@tag=730][@ind2!=2]">
292         <span class="results_summary"><span class="label">Standardtittel: </span>
293         <xsl:for-each select="marc:datafield[@tag=130]|marc:datafield[@tag=240]|marc:datafield[@tag=730][@ind2!=2]">
294             <xsl:variable name="str">
295                 <xsl:for-each select="marc:subfield">
296                     <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'])))">
297                         <xsl:value-of select="text()"/>
298                         <xsl:text> </xsl:text>
299                      </xsl:if>
300                 </xsl:for-each>
301             </xsl:variable>
302             <xsl:call-template name="chopPunctuation">
303                 <xsl:with-param name="chopString">
304                     <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
305                         
306                 </xsl:with-param>
307             </xsl:call-template>
308             <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
309         </xsl:for-each>
310         </span>
311         </xsl:if>
312
313         <!-- Subjects -->
314
315         <xsl:if test="marc:datafield[substring(@tag, 1, 1) = '6']">
316             <span class="results_summary subjects"><span class="label">Emne(r): </span>
317             <xsl:for-each select="marc:datafield[substring(@tag, 1, 1) = '6']">
318             <a>
319             <xsl:choose>
320             <!-- Will implement this later
321                 <xsl:when test="marc:subfield[@code=9] and $UseAuthoritiesForTracings='1'">
322                     <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=an:<xsl:value-of select="marc:subfield[@code=9]"/></xsl:attribute>
323                 </xsl:when>
324             -->
325             <xsl:when test="$TraceSubjectSubdivisions='1'">
326                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=<xsl:call-template name="subfieldSelect">
327                         <xsl:with-param name="codes">abcdvxyz</xsl:with-param>
328                         <xsl:with-param name="delimeter"> AND </xsl:with-param>
329                         <xsl:with-param name="prefix">(su<xsl:value-of select="$SubjectModifier"/>:<xsl:value-of select="$TracingQuotesLeft"/></xsl:with-param>
330                         <xsl:with-param name="suffix"><xsl:value-of select="$TracingQuotesRight"/>)</xsl:with-param>
331                     </xsl:call-template>
332                 </xsl:attribute>
333             </xsl:when>
334             <xsl:otherwise>
335                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=su<xsl:value-of select="$SubjectModifier"/>:<xsl:value-of select="$TracingQuotesLeft"/><xsl:value-of select="marc:subfield[@code='a']"/><xsl:value-of select="$TracingQuotesRight"/></xsl:attribute>
336             </xsl:otherwise>
337             </xsl:choose>
338             <xsl:call-template name="chopPunctuation">
339                 <xsl:with-param name="chopString">
340                     <xsl:call-template name="subfieldSelect">
341                         <xsl:with-param name="codes">abcdvxyz</xsl:with-param>
342                         <xsl:with-param name="subdivCodes">vxyz</xsl:with-param>
343                         <xsl:with-param name="subdivDelimiter">-- </xsl:with-param>
344                     </xsl:call-template>
345                 </xsl:with-param>
346             </xsl:call-template>
347             </a>
348             <xsl:choose>
349             <xsl:when test="position()=last()"></xsl:when>
350             <xsl:otherwise> | </xsl:otherwise>
351             </xsl:choose>
352
353             </xsl:for-each>
354             </span>
355         </xsl:if>
356
357         <xsl:if test="marc:datafield[@tag=856]">
358         <span class="results_summary"><span class="label">Nettbasert ressurs: </span>
359         <xsl:for-each select="marc:datafield[@tag=856]">
360             <a><xsl:attribute name="href"><xsl:value-of select="marc:subfield[@code='u']"/></xsl:attribute>
361         <xsl:choose>
362             <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']">
363                     <xsl:call-template name="subfieldSelect">
364                         <xsl:with-param name="codes">y3z</xsl:with-param>
365                     </xsl:call-template>
366             </xsl:when>
367         <xsl:when test="not(marc:subfield[@code='y']) and not(marc:subfield[@code='3']) and not(marc:subfield[@code='z'])">
368         Klikk her for tilgang
369         </xsl:when>
370         </xsl:choose>
371         </a>
372             <xsl:choose>
373             <xsl:when test="position()=last()"></xsl:when>
374             <xsl:otherwise> | </xsl:otherwise>
375             </xsl:choose>  
376         </xsl:for-each>
377         </span>
378         </xsl:if>
379         
380         <!-- NORMARC does not define indicators for 505
381         <xsl:if test="marc:datafield[@tag=505]">
382         <xsl:for-each select="marc:datafield[@tag=505]">
383         <span class="results_summary"><span class="label">
384         <xsl:choose>
385         <xsl:when test="@ind1=0">
386             Contents:
387         </xsl:when>
388         <xsl:when test="@ind1=1">
389             Incomplete contents:
390         </xsl:when>
391         <xsl:when test="@ind1=1">
392             Partial contents:
393         </xsl:when>
394         </xsl:choose>  
395         </span>
396         <xsl:choose>
397         <xsl:when test="@ind2=0">
398             <xsl:for-each select="marc:subfield[@code='t']">
399                 <xsl:value-of select="marc:subfield[@code=t]"/> <xsl:value-of select="marc:subfield[@code=r]"/>
400             </xsl:for-each> 
401         </xsl:when>
402         <xsl:otherwise>
403             <xsl:call-template name="subfieldSelect">
404                 <xsl:with-param name="codes">au</xsl:with-param>
405             </xsl:call-template>
406         </xsl:otherwise>
407         </xsl:choose>
408         </span>
409         </xsl:for-each>
410         </xsl:if>
411         -->
412         <xsl:if test="marc:datafield[@tag=505]">
413                 <xsl:call-template name="subfieldSelect">
414                 <xsl:with-param name="codes">a</xsl:with-param>
415             </xsl:call-template>
416                 </xsl:if>
417                 
418         <!-- 780 -->
419         <xsl:if test="marc:datafield[@tag=780]">
420         <xsl:for-each select="marc:datafield[@tag=780]">
421         <span class="results_summary"><span class="label">
422         <xsl:choose>
423                 <xsl:when test="@ind2=0">
424                     Fortsettelse av:
425                 </xsl:when>
426                 <xsl:when test="@ind2=1">
427                     Delvis fortsettelse av:
428                 </xsl:when>
429                 <xsl:when test="@ind2=2">
430                     Avløser:
431                 </xsl:when>
432                 <xsl:when test="@ind2=3">
433                     Avløser delvis:
434                 </xsl:when>
435                 <xsl:when test="@ind2=4">
436                     Sammenslåing av: ... ; og ...
437                 </xsl:when>
438                 <xsl:when test="@ind2=5">
439                     Har tatt opp:
440                 </xsl:when>
441                 <xsl:when test="@ind2=6">
442                     Har delvis tatt opp:
443                 </xsl:when>
444                 <xsl:when test="@ind2=7">
445                     Utskilt fra:
446                 </xsl:when>
447         </xsl:choose>
448         </span>
449                 <xsl:variable name="f780">
450                     <xsl:call-template name="subfieldSelect">
451                         <xsl:with-param name="codes">a_t</xsl:with-param>
452                     </xsl:call-template>
453                 </xsl:variable>
454              <a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=<xsl:value-of select="translate($f780, '()', '')"/></xsl:attribute>
455                 <xsl:value-of select="translate($f780, '()', '')"/>
456             </a>
457         </span>
458  
459         <xsl:choose>
460         <xsl:when test="@ind1=0">
461             <span class="results_summary"><xsl:value-of select="marc:subfield[@code='n']"/></span>
462         </xsl:when>
463         </xsl:choose>
464
465         </xsl:for-each>
466         </xsl:if>
467
468         <!-- 785 -->
469         <xsl:if test="marc:datafield[@tag=785]">
470         <xsl:for-each select="marc:datafield[@tag=785]">
471         <span class="results_summary"><span class="label">
472         <xsl:choose>
473                 <xsl:when test="@ind2=0">
474                     Fortsettelse i:
475                 </xsl:when>
476                 <xsl:when test="@ind2=1">
477                     Fortsettes delvis i:
478                 </xsl:when>
479                 <xsl:when test="@ind2=2">
480                     Avløst av:
481                 </xsl:when>
482                 <xsl:when test="@ind2=3">
483                     Delvsi avløst av:
484                 </xsl:when>
485                 <xsl:when test="@ind2=4">
486                     Gått inn i:
487                 </xsl:when>
488                 <xsl:when test="@ind2=5">
489                     Delvis gått inn i:
490                 </xsl:when>
491                 <xsl:when test="@ind2=6">
492                     Fortsettes av: ...; og ...
493                 </xsl:when>
494                 <xsl:when test="@ind2=7">
495                         Slått sammen med: .., til: ...
496                 </xsl:when>
497         </xsl:choose>
498         </span>
499                    <xsl:variable name="f785">
500                     <xsl:call-template name="subfieldSelect">
501                         <xsl:with-param name="codes">a_t</xsl:with-param>
502                     </xsl:call-template>
503                 </xsl:variable>
504
505                 <a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=<xsl:value-of select="translate($f785, '()', '')"/></xsl:attribute>
506                 <xsl:value-of select="translate($f785, '()', '')"/>
507             </a>
508
509         </span>
510         </xsl:for-each>
511         </xsl:if>
512
513     </xsl:template>
514
515     <xsl:template name="part">
516         <xsl:variable name="partNumber">
517             <xsl:call-template name="specialSubfieldSelect">
518                 <xsl:with-param name="axis">n</xsl:with-param>
519                 <xsl:with-param name="anyCodes">n</xsl:with-param>
520                 <xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
521             </xsl:call-template>
522         </xsl:variable>
523         <xsl:variable name="partName">
524             <xsl:call-template name="specialSubfieldSelect">
525                 <xsl:with-param name="axis">p</xsl:with-param>
526                 <xsl:with-param name="anyCodes">p</xsl:with-param>
527                 <xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
528             </xsl:call-template>
529         </xsl:variable>
530         <xsl:if test="string-length(normalize-space($partNumber))">
531                 <xsl:call-template name="chopPunctuation">
532                     <xsl:with-param name="chopString" select="$partNumber"/>
533                 </xsl:call-template>
534         </xsl:if>
535         <xsl:if test="string-length(normalize-space($partName))">
536                 <xsl:call-template name="chopPunctuation">
537                     <xsl:with-param name="chopString" select="$partName"/>
538                 </xsl:call-template>
539         </xsl:if>
540     </xsl:template>
541
542     <xsl:template name="specialSubfieldSelect">
543         <xsl:param name="anyCodes"/>
544         <xsl:param name="axis"/>
545         <xsl:param name="beforeCodes"/>
546         <xsl:param name="afterCodes"/>
547         <xsl:variable name="str">
548             <xsl:for-each select="marc:subfield">
549                 <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])">
550                     <xsl:value-of select="text()"/>
551                     <xsl:text> </xsl:text>
552                 </xsl:if>
553             </xsl:for-each>
554         </xsl:variable>
555         <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
556     </xsl:template>
557 </xsl:stylesheet>