1 <?xml version="1.0" encoding="UTF-8"?>
3 <!DOCTYPE stylesheet [<!ENTITY nbsp " " >]>
5 <xsl:stylesheet version="1.0"
6 xmlns:marc="http://www.loc.gov/MARC21/slim"
7 xmlns:items="http://www.koha-community.org/items"
8 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
9 exclude-result-prefixes="marc items">
11 <xsl:import href="UNIMARCslimUtils.xsl"/>
12 <xsl:output method = "xml" indent="yes" omit-xml-declaration = "yes" />
13 <xsl:key name="item-by-status" match="items:item" use="items:status"/>
14 <xsl:key name="item-by-status-and-branch" match="items:item" use="concat(items:status, ' ', items:homebranch)"/>
16 <xsl:template match="/">
17 <xsl:apply-templates/>
20 <xsl:template match="marc:record">
21 <xsl:variable name="Show856uAsImage" select="marc:sysprefs/marc:syspref[@name='OPACDisplay856uAsImage']"/>
22 <xsl:variable name="leader" select="marc:leader"/>
23 <xsl:variable name="leader6" select="substring($leader,7,1)"/>
24 <xsl:variable name="leader7" select="substring($leader,8,1)"/>
25 <xsl:variable name="biblionumber"
26 select="marc:datafield[@tag=090]/marc:subfield[@code='a']"/>
27 <xsl:variable name="isbn"
28 select="marc:datafield[@tag=010]/marc:subfield[@code='a']"/>
30 <xsl:variable name="hidelostitems" select="marc:sysprefs/marc:syspref[@name='hidelostitems']"/>
32 <xsl:if test="marc:datafield[@tag=200]">
33 <xsl:for-each select="marc:datafield[@tag=200]">
34 <xsl:variable name="title" select="marc:subfield[@code='a']"/>
35 <xsl:variable name="ntitle"
36 select="translate($title, '˜œ','')"/>
38 <xsl:call-template name="addClassRtl" />
39 <span class="results_summary">
42 <xsl:attribute name="href">/cgi-bin/koha/opac-detail.pl?biblionumber=<xsl:value-of select="$biblionumber"/></xsl:attribute>
43 <xsl:value-of select="$ntitle" />
45 <xsl:if test="marc:subfield[@code='e']">
46 <xsl:text> : </xsl:text>
47 <xsl:for-each select="marc:subfield[@code='e']">
48 <xsl:value-of select="."/>
51 <xsl:if test="marc:subfield[@code='b']">
52 <xsl:text> [</xsl:text>
53 <xsl:value-of select="marc:subfield[@code='b']"/>
54 <xsl:text>]</xsl:text>
56 <xsl:if test="marc:subfield[@code='f']">
57 <xsl:text> / </xsl:text>
58 <xsl:value-of select="marc:subfield[@code='f']"/>
60 <xsl:if test="marc:subfield[@code='g']">
61 <xsl:text> ; </xsl:text>
62 <xsl:value-of select="marc:subfield[@code='g']"/>
69 <xsl:call-template name="tag_4xx" />
71 <xsl:call-template name="tag_210" />
73 <xsl:call-template name="tag_215" />
75 <span class="results_summary">
76 <span class="label">Availability: </span>
78 <xsl:when test="marc:datafield[@tag=856]">
79 <xsl:for-each select="marc:datafield[@tag=856]">
80 <xsl:variable name="SubqText"><xsl:value-of select="marc:subfield[@code='q']"/></xsl:variable>
82 <xsl:when test="@ind2=0">
84 <xsl:attribute name="href">
85 <xsl:value-of select="marc:subfield[@code='u']"/>
88 <xsl:when test="($Show856uAsImage='Results' or $Show856uAsImage='Both') and (substring($SubqText,1,6)='image/' or $SubqText='img' or $SubqText='bmp' or $SubqText='cod' or $SubqText='gif' or $SubqText='ief' or $SubqText='jpe' or $SubqText='jpeg' or $SubqText='jpg' or $SubqText='jfif' or $SubqText='png' or $SubqText='svg' or $SubqText='tif' or $SubqText='tiff' or $SubqText='ras' or $SubqText='cmx' or $SubqText='ico' or $SubqText='pnm' or $SubqText='pbm' or $SubqText='pgm' or $SubqText='ppm' or $SubqText='rgb' or $SubqText='xbm' or $SubqText='xpm' or $SubqText='xwd')">
89 <xsl:element name="img"><xsl:attribute name="src"><xsl:value-of select="marc:subfield[@code='u']"/></xsl:attribute><xsl:attribute name="alt"><xsl:value-of select="marc:subfield[@code='y']"/></xsl:attribute><xsl:attribute name="height">100</xsl:attribute></xsl:element><xsl:text></xsl:text>
91 <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']">
92 <xsl:call-template name="subfieldSelect">
93 <xsl:with-param name="codes">y3z</xsl:with-param>
96 <xsl:when test="not(marc:subfield[@code='y']) and not(marc:subfield[@code='3']) and not(marc:subfield[@code='z'])">
97 Click here to access online
102 <xsl:when test="position()=last()"></xsl:when>
103 <xsl:otherwise> | </xsl:otherwise>
109 <xsl:when test="count(key('item-by-status', 'available'))=0 and count(key('item-by-status', 'reference'))=0">
112 <xsl:when test="count(key('item-by-status', 'available'))>0">
113 <span class="available">
114 <b><xsl:text>Copies available for loan: </xsl:text></b>
115 <xsl:variable name="available_items" select="key('item-by-status', 'available')"/>
116 <xsl:for-each select="$available_items[generate-id() = generate-id(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch))[1])]">
117 <xsl:value-of select="items:homebranch"/>
118 <xsl:if test="items:itemcallnumber != '' and items:itemcallnumber">[<xsl:value-of select="items:itemcallnumber"/>]
120 <xsl:text> (</xsl:text>
121 <xsl:value-of select="count(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch)))"/>
122 <xsl:text>)</xsl:text>
124 <xsl:when test="position()=last()">
125 <xsl:text>. </xsl:text>
128 <xsl:text>, </xsl:text>
136 <xsl:when test="count(key('item-by-status', 'reference'))>0">
137 <span class="available">
138 <b><xsl:text>Copies available for reference: </xsl:text></b>
139 <xsl:variable name="reference_items"
140 select="key('item-by-status', 'reference')"/>
141 <xsl:for-each select="$reference_items[generate-id() = generate-id(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch))[1])]">
142 <xsl:value-of select="items:homebranch"/>
143 <xsl:if test="items:itemcallnumber != '' and items:itemcallnumber">[<xsl:value-of select="items:itemcallnumber"/>]</xsl:if>
144 <xsl:text> (</xsl:text>
145 <xsl:value-of select="count(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch)))"/>
146 <xsl:text>)</xsl:text>
148 <xsl:when test="position()=last()">
149 <xsl:text>. </xsl:text>
152 <xsl:text>, </xsl:text>
159 <xsl:if test="count(key('item-by-status', 'Checked out'))>0">
160 <span class="unavailable">
161 <xsl:text>Checked out (</xsl:text>
162 <xsl:value-of select="count(key('item-by-status', 'Checked out'))"/>
163 <xsl:text>). </xsl:text>
166 <xsl:if test="count(key('item-by-status', 'Withdrawn'))>0">
167 <span class="unavailable">
168 <xsl:text>Withdrawn (</xsl:text>
169 <xsl:value-of select="count(key('item-by-status', 'Withdrawn'))"/>
170 <xsl:text>). </xsl:text>
173 <xsl:if test="$hidelostitems='0' and count(key('item-by-status', 'Lost'))>0">
174 <span class="unavailable">
175 <xsl:text>Lost (</xsl:text>
176 <xsl:value-of select="count(key('item-by-status', 'Lost'))"/>
177 <xsl:text>). </xsl:text>
180 <xsl:if test="count(key('item-by-status', 'Damaged'))>0">
181 <span class="unavailable">
182 <xsl:text>Damaged (</xsl:text>
183 <xsl:value-of select="count(key('item-by-status', 'Damaged'))"/>
184 <xsl:text>). </xsl:text>
187 <xsl:if test="count(key('item-by-status', 'On Orangemanr'))>0">
188 <span class="unavailable">
189 <xsl:text>On order (</xsl:text>
190 <xsl:value-of select="count(key('item-by-status', 'On order'))"/>
191 <xsl:text>). </xsl:text>
194 <xsl:if test="count(key('item-by-status', 'In transit'))>0">
195 <span class="unavailable">
196 <xsl:text>In transit (</xsl:text>
197 <xsl:value-of select="count(key('item-by-status', 'In transit'))"/>
198 <xsl:text>). </xsl:text>
201 <xsl:if test="count(key('item-by-status', 'Waiting'))>0">
202 <span class="unavailable">
203 <xsl:text>On hold (</xsl:text>
204 <xsl:value-of select="count(key('item-by-status', 'Waiting'))"/>
205 <xsl:text>). </xsl:text>