Lines 2-8
Link Here
|
2 |
|
2 |
|
3 |
<!DOCTYPE stylesheet [<!ENTITY nbsp " " >]> |
3 |
<!DOCTYPE stylesheet [<!ENTITY nbsp " " >]> |
4 |
|
4 |
|
5 |
<xsl:stylesheet version="1.0" xmlns:marc="http://www.loc.gov/MARC21/slim" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> |
5 |
<xsl:stylesheet version="1.0" |
|
|
6 |
xmlns:marc="http://www.loc.gov/MARC21/slim" |
7 |
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
8 |
exclude-result-prefixes="marc items"> |
6 |
|
9 |
|
7 |
<xsl:template name="datafield"> |
10 |
<xsl:template name="datafield"> |
8 |
<xsl:param name="tag"/> |
11 |
<xsl:param name="tag"/> |
Lines 23-59
Link Here
|
23 |
</xsl:element> |
26 |
</xsl:element> |
24 |
</xsl:template> |
27 |
</xsl:template> |
25 |
|
28 |
|
|
|
29 |
<xsl:template name="subfieldSelect"> |
30 |
<xsl:param name="codes"/> |
31 |
<xsl:param name="delimeter"><xsl:text> </xsl:text></xsl:param> |
32 |
<xsl:param name="subdivCodes"/> |
33 |
<xsl:param name="subdivDelimiter"/> |
34 |
<xsl:variable name="str"> |
35 |
<xsl:for-each select="marc:subfield"> |
36 |
<xsl:if test="contains($codes, @code)"> |
37 |
<xsl:if test="contains($subdivCodes, @code)"> |
38 |
<xsl:value-of select="$subdivDelimiter"/> |
39 |
</xsl:if> |
40 |
<xsl:value-of select="text()"/><xsl:value-of select="$delimeter"/> |
41 |
</xsl:if> |
42 |
</xsl:for-each> |
43 |
</xsl:variable> |
44 |
<xsl:value-of select="substring($str,1,string-length($str)-string-length($delimeter))"/> |
45 |
</xsl:template> |
46 |
|
47 |
<xsl:template name="buildSpaces"> |
48 |
<xsl:param name="spaces"/> |
49 |
<xsl:param name="char"><xsl:text> </xsl:text></xsl:param> |
50 |
<xsl:if test="$spaces>0"> |
51 |
<xsl:value-of select="$char"/> |
52 |
<xsl:call-template name="buildSpaces"> |
53 |
<xsl:with-param name="spaces" select="$spaces - 1"/> |
54 |
<xsl:with-param name="char" select="$char"/> |
55 |
</xsl:call-template> |
56 |
</xsl:if> |
57 |
</xsl:template> |
58 |
|
59 |
<xsl:template name="chopPunctuation"> |
60 |
<xsl:param name="chopString"/> |
61 |
<xsl:variable name="length" select="string-length($chopString)"/> |
62 |
<xsl:choose> |
63 |
<xsl:when test="$length=0"/> |
64 |
<xsl:when test="contains('.:,;/ ', substring($chopString,$length,1))"> |
65 |
<xsl:call-template name="chopPunctuation"> |
66 |
<xsl:with-param name="chopString" select="substring($chopString,1,$length - 1)"/> |
67 |
</xsl:call-template> |
68 |
</xsl:when> |
69 |
<xsl:when test="not($chopString)"/> |
70 |
<xsl:otherwise><xsl:value-of select="$chopString"/></xsl:otherwise> |
71 |
</xsl:choose> |
72 |
<xsl:text> </xsl:text> |
73 |
</xsl:template> |
74 |
|
75 |
<xsl:template name="addClassRtl"> |
76 |
<xsl:variable name="lang" select="marc:subfield[@code='7']" /> |
77 |
<xsl:if test="$lang = 'ha' or $lang = 'Hebrew' or $lang = 'fa' or $lang = 'Arabe'"> |
78 |
<xsl:attribute name="class">rtl</xsl:attribute> |
79 |
</xsl:if> |
80 |
</xsl:template> |
81 |
|
82 |
<xsl:template name="tag_title"> |
83 |
<xsl:param name="tag" /> |
84 |
<xsl:param name="label" /> |
85 |
<xsl:if test="marc:datafield[@tag=$tag]"> |
86 |
<span class="results_summary"> |
87 |
<span class="label"> |
88 |
<xsl:value-of select="$label"/>: </span> |
89 |
<xsl:for-each select="marc:datafield[@tag=$tag]"> |
90 |
<xsl:call-template name="addClassRtl" /> |
91 |
<xsl:for-each select="marc:subfield"> |
92 |
<xsl:choose> |
93 |
<xsl:when test="@code='a'"> |
94 |
<xsl:variable name="title" select="."/> |
95 |
<xsl:variable name="ntitle" |
96 |
select="translate($title, 'ˆ‰˜œ','')"/> |
97 |
<xsl:value-of select="$ntitle" /> |
98 |
</xsl:when> |
99 |
<xsl:when test="@code='b'"> |
100 |
<xsl:text>[</xsl:text> |
101 |
<xsl:value-of select="."/> |
102 |
<xsl:text>]</xsl:text> |
103 |
</xsl:when> |
104 |
<xsl:when test="@code='d'"> |
105 |
<xsl:text> = </xsl:text> |
106 |
<xsl:value-of select="."/> |
107 |
</xsl:when> |
108 |
<xsl:when test="@code='e'"> |
109 |
<xsl:text> : </xsl:text> |
110 |
<xsl:value-of select="."/> |
111 |
</xsl:when> |
112 |
<xsl:when test="@code='f'"> |
113 |
<xsl:text> / </xsl:text> |
114 |
<xsl:value-of select="."/> |
115 |
</xsl:when> |
116 |
<xsl:when test="@code='g'"> |
117 |
<xsl:text> ; </xsl:text> |
118 |
<xsl:value-of select="."/> |
119 |
</xsl:when> |
120 |
<xsl:otherwise> |
121 |
<xsl:if test="position()>1"> |
122 |
<xsl:text>, </xsl:text> |
123 |
</xsl:if> |
124 |
<xsl:value-of select="."/> |
125 |
</xsl:otherwise> |
126 |
</xsl:choose> |
127 |
</xsl:for-each> |
128 |
<xsl:if test="not (position() = last())"> |
129 |
<xsl:text> • </xsl:text> |
130 |
</xsl:if> |
131 |
</xsl:for-each> |
132 |
</span> |
133 |
</xsl:if> |
134 |
</xsl:template> |
135 |
|
136 |
<xsl:template name="tag_comma"> |
137 |
<xsl:param name="tag" /> |
138 |
<xsl:param name="label" /> |
139 |
<xsl:if test="marc:datafield[@tag=$tag]"> |
140 |
<span class="results_summary"> |
141 |
<span class="label"> |
142 |
<xsl:value-of select="$label"/>: </span> |
143 |
<xsl:for-each select="marc:datafield[@tag=$tag]"> |
144 |
<xsl:call-template name="addClassRtl" /> |
145 |
<xsl:for-each select="marc:subfield"> |
146 |
<xsl:if test="position()>1"> |
147 |
<xsl:text>, </xsl:text> |
148 |
</xsl:if> |
149 |
<xsl:value-of select="."/> |
150 |
</xsl:for-each> |
151 |
<xsl:if test="not (position() = last())"> |
152 |
<xsl:text> • </xsl:text> |
153 |
</xsl:if> |
154 |
</xsl:for-each> |
155 |
</span> |
156 |
</xsl:if> |
157 |
</xsl:template> |
158 |
|
26 |
<xsl:template name="tag_210"> |
159 |
<xsl:template name="tag_210"> |
27 |
<span class="results_summary"> |
160 |
<span class="results_summary"> |
28 |
<span class="label">Publication: </span> |
161 |
<span class="label">Publication:</span> |
29 |
<xsl:for-each select="marc:datafield[@tag=210]"> |
162 |
<xsl:for-each select="marc:datafield[@tag=210]"> |
30 |
<span> |
163 |
<span> |
31 |
<xsl:call-template name="addClassRtl" /> |
164 |
<xsl:call-template name="addClassRtl" /> |
32 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
165 |
<xsl:for-each select="marc:subfield"> |
33 |
<xsl:if test="marc:subfield[@code='b']"> |
166 |
<xsl:choose> |
34 |
<xsl:if test="marc:subfield[@code='a']">, </xsl:if> |
167 |
<xsl:when test="@code='c' or @code='g'"> |
35 |
<xsl:value-of select="marc:subfield[@code='b']"/> |
168 |
<xsl:if test="position()>1"> |
36 |
</xsl:if> |
169 |
<xsl:text> : </xsl:text> |
37 |
<xsl:if test="marc:subfield[@code='a' or @code='b']"> |
170 |
</xsl:if> |
38 |
<xsl:if test="marc:subfield[@code='a']"> : </xsl:if> |
171 |
<xsl:value-of select="."/> |
39 |
<xsl:value-of select="marc:subfield[@code='c']"/> |
172 |
</xsl:when> |
40 |
</xsl:if> |
173 |
<xsl:otherwise> |
41 |
<xsl:if test="marc:subfield[@code='d']"> |
174 |
<xsl:if test="position()>1"> |
42 |
<xsl:if test="marc:subfield[@code='a' or @code='c']">, </xsl:if> |
175 |
<xsl:text>, </xsl:text> |
43 |
<xsl:value-of select="marc:subfield[@code='d']"/> |
176 |
</xsl:if> |
44 |
</xsl:if> |
177 |
<xsl:value-of select="."/> |
45 |
<xsl:if test="marc:subfield[@code='e']"> |
178 |
</xsl:otherwise> |
46 |
<xsl:if test="marc:subfield[@code='a' or @code='c' or @code='d']"> — </xsl:if> |
179 |
</xsl:choose> |
47 |
<xsl:value-of select="marc:subfield[@code='e']"/> |
180 |
</xsl:for-each> |
48 |
</xsl:if> |
|
|
49 |
<xsl:if test="marc:subfield[@code='g']"> |
50 |
<xsl:if test="marc:subfield[@code='e']"> : </xsl:if> |
51 |
<xsl:value-of select="marc:subfield[@code='g']"/> |
52 |
</xsl:if> |
53 |
<xsl:if test="marc:subfield[@code='h']"> |
54 |
<xsl:if test="marc:subfield[@code='e' or @code='g']">, </xsl:if> |
55 |
<xsl:value-of select="marc:subfield[@code='h']"/> |
56 |
</xsl:if> |
57 |
<xsl:if test="not (position() = last())"> |
181 |
<xsl:if test="not (position() = last())"> |
58 |
<xsl:text> • </xsl:text> |
182 |
<xsl:text> • </xsl:text> |
59 |
</xsl:if> |
183 |
</xsl:if> |
Lines 62-68
Link Here
|
62 |
</span> |
186 |
</span> |
63 |
</xsl:template> |
187 |
</xsl:template> |
64 |
|
188 |
|
65 |
<xsl:template name="tag_215"> |
189 |
<xsl:template name="tag_215"> |
66 |
<xsl:for-each select="marc:datafield[@tag=215]"> |
190 |
<xsl:for-each select="marc:datafield[@tag=215]"> |
67 |
<span class="results_summary"> |
191 |
<span class="results_summary"> |
68 |
<span class="label">Description: </span> |
192 |
<span class="label">Description: </span> |
Lines 82-211
Link Here
|
82 |
</xsl:for-each> |
206 |
</xsl:for-each> |
83 |
</xsl:template> |
207 |
</xsl:template> |
84 |
|
208 |
|
85 |
<xsl:template name="tag_4xx"> |
|
|
86 |
<xsl:for-each select="marc:datafield[@tag=464 or @tag=461]"> |
87 |
<span class="results_summary"> |
88 |
<span class="label">Linked with: </span> |
89 |
<span> |
90 |
<xsl:call-template name="addClassRtl" /> |
91 |
<xsl:if test="marc:subfield[@code='t']"> |
92 |
<xsl:value-of select="marc:subfield[@code='t']"/> |
93 |
</xsl:if> |
94 |
<xsl:if test="marc:subfield[@code='e']"> : |
95 |
<xsl:value-of select="marc:subfield[@code='e']"/> |
96 |
</xsl:if> |
97 |
<xsl:if test="marc:subfield[@code='f']"> / |
98 |
<xsl:value-of select="marc:subfield[@code='f']"/> |
99 |
</xsl:if> |
100 |
<xsl:if test="marc:subfield[@code='v']">, |
101 |
<xsl:value-of select="marc:subfield[@code='v']"/> |
102 |
</xsl:if> |
103 |
</span> |
104 |
</span> |
105 |
</xsl:for-each> |
106 |
</xsl:template> |
107 |
|
108 |
<xsl:template name="subfieldSelect"> |
109 |
<xsl:param name="codes"/> |
110 |
<xsl:param name="delimeter"><xsl:text> </xsl:text></xsl:param> |
111 |
<xsl:param name="subdivCodes"/> |
112 |
<xsl:param name="subdivDelimiter"/> |
113 |
<xsl:variable name="str"> |
114 |
<xsl:for-each select="marc:subfield"> |
115 |
<xsl:if test="contains($codes, @code)"> |
116 |
<xsl:if test="contains($subdivCodes, @code)"> |
117 |
<xsl:value-of select="$subdivDelimiter"/> |
118 |
</xsl:if> |
119 |
<xsl:value-of select="text()"/><xsl:value-of select="$delimeter"/> |
120 |
</xsl:if> |
121 |
</xsl:for-each> |
122 |
</xsl:variable> |
123 |
<xsl:value-of select="substring($str,1,string-length($str)-string-length($delimeter))"/> |
124 |
</xsl:template> |
125 |
|
126 |
<xsl:template name="buildSpaces"> |
127 |
<xsl:param name="spaces"/> |
128 |
<xsl:param name="char"><xsl:text> </xsl:text></xsl:param> |
129 |
<xsl:if test="$spaces>0"> |
130 |
<xsl:value-of select="$char"/> |
131 |
<xsl:call-template name="buildSpaces"> |
132 |
<xsl:with-param name="spaces" select="$spaces - 1"/> |
133 |
<xsl:with-param name="char" select="$char"/> |
134 |
</xsl:call-template> |
135 |
</xsl:if> |
136 |
</xsl:template> |
137 |
|
138 |
<xsl:template name="chopPunctuation"> |
139 |
<xsl:param name="chopString"/> |
140 |
<xsl:variable name="length" select="string-length($chopString)"/> |
141 |
<xsl:choose> |
142 |
<xsl:when test="$length=0"/> |
143 |
<xsl:when test="contains('.:,;/ ', substring($chopString,$length,1))"> |
144 |
<xsl:call-template name="chopPunctuation"> |
145 |
<xsl:with-param name="chopString" select="substring($chopString,1,$length - 1)"/> |
146 |
</xsl:call-template> |
147 |
</xsl:when> |
148 |
<xsl:when test="not($chopString)"/> |
149 |
<xsl:otherwise><xsl:value-of select="$chopString"/></xsl:otherwise> |
150 |
</xsl:choose> |
151 |
<xsl:text> </xsl:text> |
152 |
</xsl:template> |
153 |
|
154 |
<xsl:template name="addClassRtl"> |
155 |
<xsl:variable name="lang" select="marc:subfield[@code='7']" /> |
156 |
<xsl:if test="$lang = 'ha' or $lang = 'Hebrew' or $lang = 'fa' or $lang = 'Arabe'"> |
157 |
<xsl:attribute name="class">rtl</xsl:attribute> |
158 |
</xsl:if> |
159 |
</xsl:template> |
160 |
|
161 |
<xsl:template name="tag_title"> |
162 |
<xsl:param name="tag" /> |
163 |
<xsl:param name="label" /> |
164 |
<xsl:if test="marc:datafield[@tag=$tag]"> |
165 |
<span class="results_summary"> |
166 |
<span class="label"><xsl:value-of select="$label"/>: </span> |
167 |
<xsl:for-each select="marc:datafield[@tag=$tag]"> |
168 |
<xsl:value-of select="marc:subfield[@code='a']" /> |
169 |
<xsl:if test="marc:subfield[@code='d']"> |
170 |
<xsl:text> : </xsl:text> |
171 |
<xsl:value-of select="marc:subfield[@code='e']"/> |
172 |
</xsl:if> |
173 |
<xsl:if test="marc:subfield[@code='e']"> |
174 |
<xsl:for-each select="marc:subfield[@code='e']"> |
175 |
<xsl:text> </xsl:text> |
176 |
<xsl:value-of select="."/> |
177 |
</xsl:for-each> |
178 |
</xsl:if> |
179 |
<xsl:if test="marc:subfield[@code='f']"> |
180 |
<xsl:text> / </xsl:text> |
181 |
<xsl:value-of select="marc:subfield[@code='f']"/> |
182 |
</xsl:if> |
183 |
<xsl:if test="marc:subfield[@code='h']"> |
184 |
<xsl:text>, </xsl:text> |
185 |
<xsl:value-of select="marc:subfield[@code='h']"/> |
186 |
</xsl:if> |
187 |
<xsl:if test="marc:subfield[@code='i']"> |
188 |
<xsl:text>, </xsl:text> |
189 |
<xsl:value-of select="marc:subfield[@code='i']"/> |
190 |
</xsl:if> |
191 |
<xsl:if test="marc:subfield[@code='v']"> |
192 |
<xsl:text>, </xsl:text> |
193 |
<xsl:value-of select="marc:subfield[@code='v']"/> |
194 |
</xsl:if> |
195 |
<xsl:if test="marc:subfield[@code='x']"> |
196 |
<xsl:text>, </xsl:text> |
197 |
<xsl:value-of select="marc:subfield[@code='x']"/> |
198 |
</xsl:if> |
199 |
<xsl:if test="marc:subfield[@code='z']"> |
200 |
<xsl:text>, </xsl:text> |
201 |
<xsl:value-of select="marc:subfield[@code='z']"/> |
202 |
</xsl:if> |
203 |
</xsl:for-each> |
204 |
</span> |
205 |
</xsl:if> |
206 |
</xsl:template> |
207 |
|
208 |
|
209 |
<xsl:template name="tag_subject"> |
209 |
<xsl:template name="tag_subject"> |
210 |
<xsl:param name="tag" /> |
210 |
<xsl:param name="tag" /> |
211 |
<xsl:param name="label" /> |
211 |
<xsl:param name="label" /> |
Lines 240-246
Link Here
|
240 |
</xsl:if> |
240 |
</xsl:if> |
241 |
</xsl:template> |
241 |
</xsl:template> |
242 |
|
242 |
|
243 |
|
|
|
244 |
<xsl:template name="tag_7xx"> |
243 |
<xsl:template name="tag_7xx"> |
245 |
<xsl:param name="tag" /> |
244 |
<xsl:param name="tag" /> |
246 |
<xsl:param name="label" /> |
245 |
<xsl:param name="label" /> |
Lines 253-294
Link Here
|
253 |
<a> |
252 |
<a> |
254 |
<xsl:choose> |
253 |
<xsl:choose> |
255 |
<xsl:when test="marc:subfield[@code=9]"> |
254 |
<xsl:when test="marc:subfield[@code=9]"> |
256 |
<xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=an:<xsl:value-of select="marc:subfield[@code=9]"/></xsl:attribute> |
255 |
<xsl:attribute name="href"> |
|
|
256 |
<xsl:text>/cgi-bin/koha/opac-search.pl?q=an:</xsl:text> |
257 |
<xsl:value-of select="marc:subfield[@code=9]"/> |
258 |
</xsl:attribute> |
257 |
</xsl:when> |
259 |
</xsl:when> |
258 |
<xsl:otherwise> |
260 |
<xsl:otherwise> |
259 |
<xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=au:<xsl:value-of select="marc:subfield[@code='a']"/><xsl:text> </xsl:text><xsl:value-of select="marc:subfield[@code='b']"/></xsl:attribute> |
261 |
<xsl:attribute name="href"> |
|
|
262 |
<xsl:text>/cgi-bin/koha/opac-search.pl?q=au:</xsl:text> |
263 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
264 |
<xsl:text> </xsl:text> |
265 |
<xsl:value-of select="marc:subfield[@code='b']"/> |
266 |
</xsl:attribute> |
260 |
</xsl:otherwise> |
267 |
</xsl:otherwise> |
261 |
</xsl:choose> |
268 |
</xsl:choose> |
262 |
<xsl:if test="marc:subfield[@code='a']"> |
269 |
<xsl:for-each select="marc:subfield"> |
263 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
270 |
<xsl:choose> |
264 |
</xsl:if> |
271 |
<xsl:when test="@code='9'"> |
265 |
<xsl:if test="marc:subfield[@code='b']"> |
272 |
</xsl:when> |
266 |
<xsl:text>, </xsl:text> |
273 |
<xsl:otherwise> |
267 |
<xsl:value-of select="marc:subfield[@code='b']"/> |
274 |
<xsl:value-of select="."/> |
268 |
</xsl:if> |
275 |
</xsl:otherwise> |
269 |
<xsl:if test="marc:subfield[@code='c']"> |
276 |
</xsl:choose> |
270 |
<xsl:text>, </xsl:text> |
277 |
<xsl:if test="not (position() = last())"> |
271 |
<xsl:value-of select="marc:subfield[@code='c']"/> |
278 |
<xsl:text>, </xsl:text> |
272 |
</xsl:if> |
279 |
</xsl:if> |
273 |
<xsl:if test="marc:subfield[@code='d']"> |
280 |
</xsl:for-each> |
274 |
<xsl:text> </xsl:text> |
|
|
275 |
<xsl:value-of select="marc:subfield[@code='d']"/> |
276 |
</xsl:if> |
277 |
<xsl:if test="marc:subfield[@code='f']"> |
278 |
<span dir="ltr"> |
279 |
<xsl:text> (</xsl:text> |
280 |
<xsl:value-of select="marc:subfield[@code='f']"/> |
281 |
<xsl:text>)</xsl:text> |
282 |
</span> |
283 |
</xsl:if> |
284 |
<xsl:if test="marc:subfield[@code='g']"> |
285 |
<xsl:text> </xsl:text> |
286 |
<xsl:value-of select="marc:subfield[@code='g']"/> |
287 |
</xsl:if> |
288 |
<xsl:if test="marc:subfield[@code='p']"> |
289 |
<xsl:text> </xsl:text> |
290 |
<xsl:value-of select="marc:subfield[@code='p']"/> |
291 |
</xsl:if> |
292 |
</a> |
281 |
</a> |
293 |
</span> |
282 |
</span> |
294 |
<xsl:if test="not (position() = last())"> |
283 |
<xsl:if test="not (position() = last())"> |
295 |
- |
|
|