Bug 2093: (follow-up) Add OPAC dashboard for logged-in users
[koha.git] / koha-tmpl / opac-tmpl / bootstrap / 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   xmlns:str="http://exslt.org/strings"
11   exclude-result-prefixes="marc items">
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="SubjectModifier"><xsl:if test="marc:sysprefs/marc:syspref[@name='TraceCompleteSubfields']='1'">,complete-subfield</xsl:if></xsl:variable>
23         <xsl:variable name="TraceSubjectSubdivisions" select="marc:sysprefs/marc:syspref[@name='TraceSubjectSubdivisions']"/>
24         <xsl:variable name="TracingQuotesLeft">
25           <xsl:choose>
26             <xsl:when test="marc:sysprefs/marc:syspref[@name='UseICU']='1'">{</xsl:when>
27             <xsl:otherwise>"</xsl:otherwise>
28           </xsl:choose>
29         </xsl:variable>
30         <xsl:variable name="TracingQuotesRight">
31           <xsl:choose>
32             <xsl:when test="marc:sysprefs/marc:syspref[@name='UseICU']='1'">}</xsl:when>
33             <xsl:otherwise>"</xsl:otherwise>
34           </xsl:choose>
35         </xsl:variable>
36         <xsl:variable name="DisplayOPACiconsXSLT" select="marc:sysprefs/marc:syspref[@name='DisplayOPACiconsXSLT']"/>
37         <xsl:variable name="theme" select="marc:sysprefs/marc:syspref[@name='opacthemes']"/>
38         <xsl:variable name="OPACURLOpenInNewWindow" select="marc:sysprefs/marc:syspref[@name='OPACURLOpenInNewWindow']"/>
39         <xsl:variable name="URLLinkText" select="marc:sysprefs/marc:syspref[@name='URLLinkText']"/>
40         <xsl:variable name="Show856uAsImage" select="marc:sysprefs/marc:syspref[@name='OPACDisplay856uAsImage']"/>
41         <xsl:variable name="OPACTrackClicks" select="marc:sysprefs/marc:syspref[@name='TrackClicks']"/>
42         <xsl:variable name="leader" select="marc:leader"/>
43         <xsl:variable name="leader6" select="substring($leader,7,1)"/>
44         <xsl:variable name="leader7" select="substring($leader,8,1)"/>
45         <xsl:variable name="biblionumber" select="marc:datafield[@tag=999]/marc:subfield[@code='c']"/>
46         <xsl:variable name="controlField008" select="marc:controlfield[@tag=008]"/>
47         <xsl:variable name="field019b" select="marc:datafield[@tag=019]/marc:subfield[@code='b']"/>
48         <xsl:variable name="typeOf008">
49             <!-- The logic here should be exactly the same for NORMARCslim2intranetDetail.xsl, NORMARCslim2intranetResults.xsl, NORMARCslim2OPACDetail.xsl and NORMARCslim2OPACResults.xsl -->
50             <xsl:choose>
51                 <xsl:when test="$field019b='b' or $field019b='k' or $field019b='l' or $leader6='b'">Mon</xsl:when>
52                 <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>
53                 <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>
54                 <xsl:when test="$field019b='a' or contains($field019b,'ab') or contains($field019b,'aj') or $leader6='e' or $leader6='f'">Kar</xsl:when>
55                 <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>
56                 <xsl:when test="$field019b='g' or contains($field019b,'gb') or contains($field019b,'gd') or contains($field019b,'ge') or $leader6='m'">Fil</xsl:when>
57                 <xsl:when test="$leader6='o'">kom</xsl:when>
58                 <xsl:when test="$field019b='h' or $leader6='r'">trd</xsl:when>
59                 <xsl:when test="$field019b='j' or $leader6='a'">
60                     <xsl:choose>
61                         <xsl:when test="$leader7='a' or $leader7='c' or $leader7='m' or $leader7='p'">Mon</xsl:when>
62                         <xsl:when test="$field019b='j' or $leader7='b' or $leader7='s'">Per</xsl:when>
63                     </xsl:choose>
64                 </xsl:when>
65             </xsl:choose>
66         </xsl:variable>
67
68         <!-- Tittel og ansvarsopplysninger -->
69         <xsl:if test="marc:datafield[@tag=245]">
70         <h1 class="title">
71             <xsl:for-each select="marc:datafield[@tag=245]">
72                     <xsl:call-template name="subfieldSelect">
73                         <xsl:with-param name="codes">a</xsl:with-param>
74                     </xsl:call-template>
75                     <xsl:if test="marc:subfield[@code='h']">
76                         <xsl:text> </xsl:text>
77                         (<xsl:call-template name="subfieldSelect">
78                             <xsl:with-param name="codes">h</xsl:with-param>
79                         </xsl:call-template>)
80                     </xsl:if>
81                     <xsl:if test="marc:subfield[@code='b']">
82                         <xsl:text> : </xsl:text>
83                         <xsl:call-template name="subfieldSelect">
84                             <xsl:with-param name="codes">b</xsl:with-param>
85                         </xsl:call-template>
86                     </xsl:if>
87                     <xsl:text> </xsl:text>
88                     <xsl:call-template name="subfieldSelect">
89                         <xsl:with-param name="codes">np</xsl:with-param>
90                     </xsl:call-template>
91             </xsl:for-each>
92         </h1>
93         </xsl:if>
94
95         <!-- Author Statement -->
96                 <!-- 245$9 is Koha authority number -->
97         <xsl:choose>
98         <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]">
99         <h5 class="author">av
100         <xsl:for-each select="marc:datafield[@tag=100 or @tag=700]">
101         <a>
102         <xsl:choose>
103             <xsl:when test="marc:subfield[@code=9]">
104                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=an:<xsl:value-of select="marc:subfield[@code=9]"/></xsl:attribute>
105             </xsl:when>
106             <xsl:otherwise>
107             <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=au:<xsl:value-of select="marc:subfield[@code='a']"/></xsl:attribute>
108             </xsl:otherwise>
109         </xsl:choose>
110         <xsl:call-template name="nameABCDQ"/></a>
111         <xsl:if test="marc:subfield[@code=9]">
112             <a class='authlink'>
113                 <xsl:attribute name="href">/cgi-bin/koha/opac-authoritiesdetail.pl?authid=<xsl:value-of select="marc:subfield[@code=9]"/></xsl:attribute>
114                 <xsl:element name="img">
115                     <xsl:attribute name="src">/opac-tmpl/<xsl:value-of select="$theme"/>/images/filefind.png</xsl:attribute>
116                     <xsl:attribute name="style">vertical-align:middle</xsl:attribute>
117                     <xsl:attribute name="height">15</xsl:attribute>
118                     <xsl:attribute name="width">15</xsl:attribute>
119                 </xsl:element>
120             </a>
121         </xsl:if>
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:if test="marc:subfield[@code=9]">
138             <a class='authlink'>
139                 <xsl:attribute name="href">/cgi-bin/koha/opac-authoritiesdetail.pl?authid=<xsl:value-of select="marc:subfield[@code=9]"/></xsl:attribute>
140                 <xsl:element name="img">
141                     <xsl:attribute name="src">/opac-tmpl/<xsl:value-of select="$theme"/>/images/filefind.png</xsl:attribute>
142                     <xsl:attribute name="style">vertical-align:middle</xsl:attribute>
143                     <xsl:attribute name="height">15</xsl:attribute>
144                     <xsl:attribute name="width">15</xsl:attribute>
145                 </xsl:element>
146             </a>
147         </xsl:if>
148         <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
149         </xsl:for-each>
150
151         <xsl:for-each select="marc:datafield[@tag=111 or @tag=711]">
152         <a>
153         <xsl:choose>
154             <xsl:when test="marc:subfield[@code=9]">
155                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=an:<xsl:value-of select="marc:subfield[@code=9]"/></xsl:attribute>
156             </xsl:when>
157             <xsl:otherwise>
158             <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=au:<xsl:value-of select="marc:subfield[@code='a']"/></xsl:attribute>
159             </xsl:otherwise>
160         </xsl:choose>
161         <xsl:call-template name="nameACDEQ"/></a>
162         <xsl:if test="marc:subfield[@code=9]">
163             <a class='authlink'>
164                 <xsl:attribute name="href">/cgi-bin/koha/opac-authoritiesdetail.pl?authid=<xsl:value-of select="marc:subfield[@code=9]"/></xsl:attribute>
165                 <xsl:element name="img">
166                     <xsl:attribute name="src">/opac-tmpl/<xsl:value-of select="$theme"/>/images/filefind.png</xsl:attribute>
167                     <xsl:attribute name="style">vertical-align:middle</xsl:attribute>
168                     <xsl:attribute name="height">15</xsl:attribute>
169                     <xsl:attribute name="width">15</xsl:attribute>
170                 </xsl:element>
171             </a>
172         </xsl:if>
173         <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
174
175         </xsl:for-each>
176         </h5>
177         </xsl:when>
178         </xsl:choose>
179
180     <xsl:if test="$DisplayOPACiconsXSLT!='0'">
181         <xsl:if test="$typeOf008!=''">
182         <span class="results_summary">
183             <span class="label">Materialtype: </span>
184             <xsl:choose>
185                 <xsl:when test="$typeOf008='Mon'"><img src="/opac-tmpl/lib/famfamfam/BK.png" alt="Bok" title="Bok"/> Bok</xsl:when>
186                 <xsl:when test="$typeOf008='Per'"><img src="/opac-tmpl/lib/famfamfam/AR.png" alt="Periodika" title="Periodika"/> Periodika</xsl:when>
187                 <xsl:when test="$typeOf008='Fil'"><img src="/opac-tmpl/lib/famfamfam/CF.png" alt="Fil" title="Fil"/> Fil</xsl:when>
188                 <xsl:when test="$typeOf008='Kar'"><img src="/opac-tmpl/lib/famfamfam/MP.png" alt="Kart" title="Kart"/> Kart</xsl:when>
189                 <xsl:when test="$typeOf008='FV'"><img  src="/opac-tmpl/lib/famfamfam/VM.png" alt="Film og video" title="Film og video"/> Film og video</xsl:when>
190                 <xsl:when test="$typeOf008='Mus'"><img src="/opac-tmpl/lib/famfamfam/PR.png" alt="Musikktrykk og lydopptak" title="Musikktrykk og lydopptak"/> Musikk</xsl:when>
191                 <xsl:when test="$typeOf008='gra'"><img src="/opac-tmpl/lib/famfamfam/GR.png" alt="Grafisk materiale" title="Grafisk materiale"/> Grafisk materiale</xsl:when>
192                 <xsl:when test="$typeOf008='kom'"><img src="/opac-tmpl/lib/famfamfam/MX.png" alt="Kombidokumenter" title="Kombidokumenter"/> Kombidokumenter</xsl:when>
193                 <xsl:when test="$typeOf008='trd'"><img src="/opac-tmpl/lib/famfamfam/TD.png" alt="Tre-dimensjonale gjenstander" title="Tre-dimensjonale gjenstander"/> Tre-dimensjonale gjenstander</xsl:when>
194             </xsl:choose>
195         </span>
196         </xsl:if>
197     </xsl:if>
198
199         <!--Series -->
200         <xsl:if test="marc:datafield[@tag=440 or @tag=490]">
201                 <span class="results_summary"><span class="label">Series: </span>
202                 <xsl:for-each select="marc:datafield[@tag=440]">
203                      <a href="/cgi-bin/koha/opac-search.pl?q=se:{marc:subfield[@code='a']}">
204                     <xsl:call-template name="chopPunctuation">
205                                     <xsl:with-param name="chopString">
206                                         <xsl:call-template name="subfieldSelect">
207                                             <xsl:with-param name="codes">av</xsl:with-param>
208                                         </xsl:call-template>
209                                     </xsl:with-param>
210                                 </xsl:call-template>
211                                 </a>
212                             <xsl:text> </xsl:text><xsl:call-template name="part"/>
213                     <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
214                 </xsl:for-each>
215
216                 <xsl:for-each select="marc:datafield[@tag=490][@ind1=0]">
217                      <a href="/cgi-bin/koha/opac-search.pl?q=se:{marc:subfield[@code='a']}">
218                                 <xsl:call-template name="chopPunctuation">
219                                     <xsl:with-param name="chopString">
220                                         <xsl:call-template name="subfieldSelect">
221                                             <xsl:with-param name="codes">av</xsl:with-param>
222                                         </xsl:call-template>
223                                     </xsl:with-param>
224                                 </xsl:call-template>
225                     </a>
226                             <xsl:call-template name="part"/>
227                 <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
228                 </xsl:for-each>
229                 </span>
230         </xsl:if>
231
232         <!-- Analytics -->
233         <xsl:if test="$leader7='s' or $leader7='c'">
234         <span class="results_summary analytics"><span class="label">Analytics: </span>
235             <a>
236             <xsl:choose>
237             <xsl:when test="$UseControlNumber = '1' and marc:controlfield[@tag=001]">
238                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=rcn:<xsl:value-of select="marc:controlfield[@tag=001]"/>+and+(bib-level:a+or+bib-level:b)</xsl:attribute>
239             </xsl:when>
240             <xsl:otherwise>
241                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=Host-item:<xsl:value-of select="translate(marc:datafield[@tag=245]/marc:subfield[@code='a'], '/', '')"/></xsl:attribute>
242             </xsl:otherwise>
243             </xsl:choose>
244             <xsl:text>Show analytics</xsl:text>
245             </a>
246         </span>
247         </xsl:if>
248
249         <!-- 773 - Links from child to parent -->
250         <xsl:if test="marc:datafield[@tag=773]">
251         <xsl:for-each select="marc:datafield[@tag=773]">
252         <xsl:if test="@ind1=0">
253         <span class="results_summary in"><span class="label">
254         <xsl:choose>
255         <xsl:when test="@ind2=' '">
256             In:
257         </xsl:when>
258         <xsl:when test="@ind2=8">
259             <xsl:if test="marc:subfield[@code='i']">
260                 <xsl:value-of select="marc:subfield[@code='i']"/>
261             </xsl:if>
262         </xsl:when>
263         </xsl:choose>
264         </span>
265                 <xsl:variable name="f773">
266                     <xsl:call-template name="chopPunctuation"><xsl:with-param name="chopString"><xsl:call-template name="subfieldSelect">
267                         <xsl:with-param name="codes">a_t</xsl:with-param>
268                     </xsl:call-template></xsl:with-param></xsl:call-template>
269                 </xsl:variable>
270             <xsl:choose>
271                 <xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
272                     <a><xsl:attribute name="href">/cgi-bin/koha/opac-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>
273                         <xsl:value-of select="translate($f773, '()', '')"/>
274                     </a>
275                     <xsl:if test="marc:subfield[@code='g']"><xsl:text> </xsl:text><xsl:value-of select="marc:subfield[@code='g']"/></xsl:if>
276                 </xsl:when>
277                 <xsl:when test="marc:subfield[@code='0']">
278                     <a><xsl:attribute name="href">/cgi-bin/koha/opac-detail.pl?biblionumber=<xsl:value-of select="marc:subfield[@code='0']"/></xsl:attribute>
279                         <xsl:value-of select="$f773"/>
280                     </a>
281                 </xsl:when>
282                 <xsl:otherwise>
283                     <a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=ti,phr:<xsl:value-of select="translate($f773, '()', '')"/></xsl:attribute>
284                         <xsl:value-of select="$f773"/>
285                     </a>
286                     <xsl:if test="marc:subfield[@code='g']"><xsl:text> </xsl:text><xsl:value-of select="marc:subfield[@code='g']"/></xsl:if>
287                 </xsl:otherwise>
288             </xsl:choose>
289         </span>
290         <xsl:if test="marc:subfield[@code='n']">
291             <span class="results_summary"><xsl:value-of select="marc:subfield[@code='n']"/></span>
292         </xsl:if>
293         </xsl:if>
294         </xsl:for-each>
295         </xsl:if>
296
297         <!-- Publisher Statement -->
298
299         <xsl:if test="marc:datafield[@tag=260]">
300         <span class="results_summary"><span class="label">Utgiver: </span>
301             <xsl:for-each select="marc:datafield[@tag=260]">
302                 <xsl:call-template name="chopPunctuation">
303                   <xsl:with-param name="chopString">
304                     <xsl:call-template name="subfieldSelect">
305                         <xsl:with-param name="codes">bcg</xsl:with-param>
306                     </xsl:call-template>
307                    </xsl:with-param>
308                </xsl:call-template>
309                     <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
310             </xsl:for-each>
311         </span>
312         </xsl:if>
313
314         <!-- Edition Statement -->
315
316         <xsl:if test="marc:datafield[@tag=250]">
317         <span class="results_summary"><span class="label">Utgave: </span>
318             <xsl:for-each select="marc:datafield[@tag=250]">
319                 <xsl:call-template name="chopPunctuation">
320                   <xsl:with-param name="chopString">
321                     <xsl:call-template name="subfieldSelect">
322                         <xsl:with-param name="codes">ab</xsl:with-param>
323                     </xsl:call-template>
324                    </xsl:with-param>
325                </xsl:call-template>
326                     <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
327             </xsl:for-each>
328         </span>
329         </xsl:if>
330
331         <!-- Description -->
332
333         <xsl:if test="marc:datafield[@tag=300]">
334         <span class="results_summary"><span class="label">Beskrivelse: </span>
335             <xsl:for-each select="marc:datafield[@tag=300]">
336                 <xsl:call-template name="chopPunctuation">
337                   <xsl:with-param name="chopString">
338                     <xsl:call-template name="subfieldSelect">
339                         <xsl:with-param name="codes">abceg</xsl:with-param>
340                     </xsl:call-template>
341                    </xsl:with-param>
342                </xsl:call-template>
343                     <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
344             </xsl:for-each>
345         </span>
346        </xsl:if>
347
348        <abbr class="unapi-id" title="koha:biblionumber:{marc:datafield[@tag=999]/marc:subfield[@code='c']}" ><!-- unAPI --></abbr>
349
350         <!-- Build ISBN -->
351         <xsl:if test="marc:datafield[@tag=020]/marc:subfield[@code='a']">
352           <span class="results_summary isbn"><span class="label">ISBN: </span>
353             <xsl:for-each select="marc:datafield[@tag=020]/marc:subfield[@code='a']">
354               <span property="isbn">
355                 <xsl:value-of select="."/>
356                 <xsl:choose>
357                   <xsl:when test="position()=last()">
358                     <xsl:text>.</xsl:text>
359                   </xsl:when>
360                   <xsl:otherwise>
361                     <xsl:text>; </xsl:text>
362                   </xsl:otherwise>
363                 </xsl:choose>
364               </span>
365             </xsl:for-each>
366           </span>
367         </xsl:if>
368
369         <!-- Build ISSN -->
370         <xsl:if test="marc:datafield[@tag=022]/marc:subfield[@code='a']">
371           <span class="results_summary issn"><span class="label">ISSN: </span>
372             <xsl:for-each select="marc:datafield[@tag=022]/marc:subfield[@code='a']">
373               <span property="issn">
374                 <xsl:value-of select="."/>
375                 <xsl:choose>
376                   <xsl:when test="position()=last()">
377                     <xsl:text>.</xsl:text>
378                   </xsl:when>
379                   <xsl:otherwise>
380                     <xsl:text>; </xsl:text>
381                   </xsl:otherwise>
382                 </xsl:choose>
383               </span>
384             </xsl:for-each>
385           </span>
386         </xsl:if>
387
388         <!-- Other Title  Statement -->
389
390         <xsl:if test="marc:datafield[@tag=246]">
391         <span class="results_summary"><span class="label">Parallelltittel: </span>
392             <xsl:for-each select="marc:datafield[@tag=246]">
393                 <xsl:call-template name="chopPunctuation">
394                   <xsl:with-param name="chopString">
395                     <xsl:call-template name="subfieldSelect">
396                         <xsl:with-param name="codes">abhfgnp</xsl:with-param>
397                     </xsl:call-template>
398                    </xsl:with-param>
399                </xsl:call-template>
400                     <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
401             </xsl:for-each>
402         </span>
403        </xsl:if>
404
405         <!-- Uniform Title  Statement -->
406
407         <xsl:if test="marc:datafield[@tag=130]|marc:datafield[@tag=240]|marc:datafield[@tag=730][@ind2!=2]">
408         <span class="results_summary"><span class="label">Standardtittel: </span>
409         <xsl:for-each select="marc:datafield[@tag=130]|marc:datafield[@tag=240]|marc:datafield[@tag=730][@ind2!=2]">
410             <xsl:variable name="str">
411                 <xsl:for-each select="marc:subfield">
412                     <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'])))">
413                         <xsl:value-of select="text()"/>
414                         <xsl:text> </xsl:text>
415                      </xsl:if>
416                 </xsl:for-each>
417             </xsl:variable>
418             <xsl:call-template name="chopPunctuation">
419                 <xsl:with-param name="chopString">
420                     <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
421
422                 </xsl:with-param>
423             </xsl:call-template>
424             <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
425         </xsl:for-each>
426         </span>
427         </xsl:if>
428
429         <!-- Subjects -->
430
431         <xsl:if test="marc:datafield[substring(@tag, 1, 1) = '6']">
432             <span class="results_summary subjects"><span class="label">Emne(r): </span>
433             <xsl:for-each select="marc:datafield[substring(@tag, 1, 1) = '6']">
434             <a>
435             <xsl:choose>
436             <!-- Will implement this later
437                 <xsl:when test="marc:subfield[@code=9] and $UseAuthoritiesForTracings='1'">
438                     <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=an:<xsl:value-of select="marc:subfield[@code=9]"/></xsl:attribute>
439                 </xsl:when>
440             -->
441             <xsl:when test="$TraceSubjectSubdivisions='1'">
442                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=<xsl:call-template name="subfieldSelect">
443                         <xsl:with-param name="codes">abcdvxyz</xsl:with-param>
444                         <xsl:with-param name="delimeter"> AND </xsl:with-param>
445                         <xsl:with-param name="prefix">(su<xsl:value-of select="$SubjectModifier"/>:<xsl:value-of select="$TracingQuotesLeft"/></xsl:with-param>
446                         <xsl:with-param name="suffix"><xsl:value-of select="$TracingQuotesRight"/>)</xsl:with-param>
447                     </xsl:call-template>
448                 </xsl:attribute>
449             </xsl:when>
450             <xsl:otherwise>
451                 <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>
452             </xsl:otherwise>
453             </xsl:choose>
454             <xsl:call-template name="chopPunctuation">
455                 <xsl:with-param name="chopString">
456                     <xsl:call-template name="subfieldSelect">
457                         <xsl:with-param name="codes">abcdvxyz</xsl:with-param>
458                         <xsl:with-param name="subdivCodes">vxyz</xsl:with-param>
459                         <xsl:with-param name="subdivDelimiter">-- </xsl:with-param>
460                     </xsl:call-template>
461                 </xsl:with-param>
462             </xsl:call-template>
463             </a>
464             <xsl:if test="marc:subfield[@code=9]">
465                 <a class='authlink'>
466                     <xsl:attribute name="href">/cgi-bin/koha/opac-authoritiesdetail.pl?authid=<xsl:value-of select="marc:subfield[@code=9]"/></xsl:attribute>
467                     <xsl:element name="img">
468                         <xsl:attribute name="src">/opac-tmpl/<xsl:value-of select="$theme"/>/images/filefind.png</xsl:attribute>
469                         <xsl:attribute name="style">vertical-align:middle</xsl:attribute>
470                         <xsl:attribute name="height">15</xsl:attribute>
471                         <xsl:attribute name="width">15</xsl:attribute>
472                     </xsl:element>
473                 </a>
474             </xsl:if>
475             <xsl:choose>
476             <xsl:when test="position()=last()"></xsl:when>
477             <xsl:otherwise> | </xsl:otherwise>
478             </xsl:choose>
479
480             </xsl:for-each>
481             </span>
482         </xsl:if>
483
484 <!-- Image processing code added here, takes precedence over text links including y3z text   -->
485         <xsl:if test="marc:datafield[@tag=856]">
486         <span class="results_summary online_resources"><span class="label">Online resources: </span>
487         <xsl:for-each select="marc:datafield[@tag=856]">
488             <xsl:variable name="SubqText"><xsl:value-of select="marc:subfield[@code='q']"/></xsl:variable>
489             <a property="url">
490             <xsl:choose>
491               <xsl:when test="$OPACTrackClicks='track'">
492             <xsl:attribute name="href">/cgi-bin/koha/tracklinks.pl?uri=<xsl:value-of select="str:encode-uri(marc:subfield[@code='u'], true())"/>&amp;biblionumber=<xsl:value-of select="$biblionumber"/></xsl:attribute>
493               </xsl:when>
494               <xsl:when test="$OPACTrackClicks='anonymous'">
495             <xsl:attribute name="href">/cgi-bin/koha/tracklinks.pl?uri=<xsl:value-of select="str:encode-uri(marc:subfield[@code='u'], true())"/>&amp;biblionumber=<xsl:value-of select="$biblionumber"/></xsl:attribute>
496               </xsl:when>
497               <xsl:otherwise>
498                 <xsl:attribute name="href"><xsl:value-of select="marc:subfield[@code='u']"/></xsl:attribute>
499               </xsl:otherwise>
500             </xsl:choose>
501             <xsl:if test="$OPACURLOpenInNewWindow='1'">
502                 <xsl:attribute name="target">_blank</xsl:attribute>
503             </xsl:if>
504             <xsl:choose>
505             <xsl:when test="($Show856uAsImage='Details' or $Show856uAsImage='Both') and (substring($SubqText,1,6)='image/' or $SubqText='img' or $SubqText='bmp' or $SubqText='cod' or $SubqText='gif' or $SubqText='ief' or $SubqText='jpe' or $SubqText='jpeg' or $SubqText='jpg' or $SubqText='jfif' or $SubqText='png' or $SubqText='svg' or $SubqText='tif' or $SubqText='tiff' or $SubqText='ras' or $SubqText='cmx' or $SubqText='ico' or $SubqText='pnm' or $SubqText='pbm' or $SubqText='pgm' or $SubqText='ppm' or $SubqText='rgb' or $SubqText='xbm' or $SubqText='xpm' or $SubqText='xwd')">
506                 <xsl:element name="img"><xsl:attribute name="src"><xsl:value-of select="marc:subfield[@code='u']"/></xsl:attribute><xsl:attribute name="alt"><xsl:value-of select="marc:subfield[@code='y']"/></xsl:attribute><xsl:attribute name="style">height:100px</xsl:attribute></xsl:element><xsl:text></xsl:text>
507             </xsl:when>
508             <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']">
509                 <xsl:call-template name="subfieldSelect">
510                     <xsl:with-param name="codes">y3z</xsl:with-param>
511                 </xsl:call-template>
512             </xsl:when>
513             <xsl:when test="$URLLinkText!=''">
514                 <xsl:value-of select="$URLLinkText"/>
515             </xsl:when>
516             <xsl:otherwise>
517                 <xsl:text>Click here to access online</xsl:text>
518             </xsl:otherwise>
519             </xsl:choose>
520             </a>
521             <xsl:choose>
522             <xsl:when test="position()=last()"><xsl:text>  </xsl:text></xsl:when>
523             <xsl:otherwise> | </xsl:otherwise>
524             </xsl:choose>
525         </xsl:for-each>
526         </span>
527         </xsl:if>
528
529         <!-- NORMARC does not define indicators for 505
530         <xsl:if test="marc:datafield[@tag=505]">
531         <xsl:for-each select="marc:datafield[@tag=505]">
532         <span class="results_summary"><span class="label">
533         <xsl:choose>
534         <xsl:when test="@ind1=0">
535             Contents:
536         </xsl:when>
537         <xsl:when test="@ind1=1">
538             Incomplete contents:
539         </xsl:when>
540         <xsl:when test="@ind1=1">
541             Partial contents:
542         </xsl:when>
543         </xsl:choose>
544         </span>
545         <xsl:choose>
546         <xsl:when test="@ind2=0">
547             <xsl:for-each select="marc:subfield[@code='t']">
548                 <xsl:value-of select="marc:subfield[@code=t]"/> <xsl:value-of select="marc:subfield[@code=r]"/>
549             </xsl:for-each>
550         </xsl:when>
551         <xsl:otherwise>
552             <xsl:call-template name="subfieldSelect">
553                 <xsl:with-param name="codes">au</xsl:with-param>
554             </xsl:call-template>
555         </xsl:otherwise>
556         </xsl:choose>
557         </span>
558         </xsl:for-each>
559         </xsl:if>
560         -->
561         <xsl:if test="marc:datafield[@tag=505]">
562                 <xsl:call-template name="subfieldSelect">
563                 <xsl:with-param name="codes">a</xsl:with-param>
564             </xsl:call-template>
565                 </xsl:if>
566
567         <!-- 780 -->
568         <xsl:if test="marc:datafield[@tag=780]">
569         <xsl:for-each select="marc:datafield[@tag=780]">
570         <span class="results_summary"><span class="label">
571         <xsl:choose>
572                 <xsl:when test="@ind2=0">
573                     Fortsettelse av:
574                 </xsl:when>
575                 <xsl:when test="@ind2=1">
576                     Delvis fortsettelse av:
577                 </xsl:when>
578                 <xsl:when test="@ind2=2">
579                     Avløser:
580                 </xsl:when>
581                 <xsl:when test="@ind2=3">
582                     Avløser delvis:
583                 </xsl:when>
584                 <xsl:when test="@ind2=4">
585                     Sammenslåing av: ... ; og ...
586                 </xsl:when>
587                 <xsl:when test="@ind2=5">
588                     Har tatt opp:
589                 </xsl:when>
590                 <xsl:when test="@ind2=6">
591                     Har delvis tatt opp:
592                 </xsl:when>
593                 <xsl:when test="@ind2=7">
594                     Utskilt fra:
595                 </xsl:when>
596         </xsl:choose>
597         </span>
598                 <xsl:variable name="f780">
599                     <xsl:call-template name="subfieldSelect">
600                         <xsl:with-param name="codes">a_t</xsl:with-param>
601                     </xsl:call-template>
602                 </xsl:variable>
603              <a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=<xsl:value-of select="translate($f780, '()', '')"/></xsl:attribute>
604                 <xsl:value-of select="translate($f780, '()', '')"/>
605             </a>
606         </span>
607
608         <xsl:choose>
609         <xsl:when test="@ind1=0">
610             <span class="results_summary"><xsl:value-of select="marc:subfield[@code='n']"/></span>
611         </xsl:when>
612         </xsl:choose>
613
614         </xsl:for-each>
615         </xsl:if>
616
617         <!-- 785 -->
618         <xsl:if test="marc:datafield[@tag=785]">
619         <xsl:for-each select="marc:datafield[@tag=785]">
620         <span class="results_summary"><span class="label">
621         <xsl:choose>
622                 <xsl:when test="@ind2=0">
623                     Fortsettelse i:
624                 </xsl:when>
625                 <xsl:when test="@ind2=1">
626                     Fortsettes delvis i:
627                 </xsl:when>
628                 <xsl:when test="@ind2=2">
629                     Avløst av:
630                 </xsl:when>
631                 <xsl:when test="@ind2=3">
632                     Delvsi avløst av:
633                 </xsl:when>
634                 <xsl:when test="@ind2=4">
635                     Gått inn i:
636                 </xsl:when>
637                 <xsl:when test="@ind2=5">
638                     Delvis gått inn i:
639                 </xsl:when>
640                 <xsl:when test="@ind2=6">
641                     Fortsettes av: ...; og ...
642                 </xsl:when>
643                 <xsl:when test="@ind2=7">
644                         Slått sammen med: .., til: ...
645                 </xsl:when>
646         </xsl:choose>
647         </span>
648                    <xsl:variable name="f785">
649                     <xsl:call-template name="subfieldSelect">
650                         <xsl:with-param name="codes">a_t</xsl:with-param>
651                     </xsl:call-template>
652                 </xsl:variable>
653
654                 <a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=<xsl:value-of select="translate($f785, '()', '')"/></xsl:attribute>
655                 <xsl:value-of select="translate($f785, '()', '')"/>
656             </a>
657
658         </span>
659         </xsl:for-each>
660         </xsl:if>
661
662     </xsl:template>
663
664     <xsl:template name="part">
665         <xsl:variable name="partNumber">
666             <xsl:call-template name="specialSubfieldSelect">
667                 <xsl:with-param name="axis">n</xsl:with-param>
668                 <xsl:with-param name="anyCodes">n</xsl:with-param>
669                 <xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
670             </xsl:call-template>
671         </xsl:variable>
672         <xsl:variable name="partName">
673             <xsl:call-template name="specialSubfieldSelect">
674                 <xsl:with-param name="axis">p</xsl:with-param>
675                 <xsl:with-param name="anyCodes">p</xsl:with-param>
676                 <xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
677             </xsl:call-template>
678         </xsl:variable>
679         <xsl:if test="string-length(normalize-space($partNumber))">
680                 <xsl:call-template name="chopPunctuation">
681                     <xsl:with-param name="chopString" select="$partNumber"/>
682                 </xsl:call-template>
683         </xsl:if>
684         <xsl:if test="string-length(normalize-space($partName))">
685                 <xsl:call-template name="chopPunctuation">
686                     <xsl:with-param name="chopString" select="$partName"/>
687                 </xsl:call-template>
688         </xsl:if>
689     </xsl:template>
690
691     <xsl:template name="specialSubfieldSelect">
692         <xsl:param name="anyCodes"/>
693         <xsl:param name="axis"/>
694         <xsl:param name="beforeCodes"/>
695         <xsl:param name="afterCodes"/>
696         <xsl:variable name="str">
697             <xsl:for-each select="marc:subfield">
698                 <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])">
699                     <xsl:value-of select="text()"/>
700                     <xsl:text> </xsl:text>
701                 </xsl:if>
702             </xsl:for-each>
703         </xsl:variable>
704         <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
705     </xsl:template>
706 </xsl:stylesheet>