View | Details | Raw Unified | Return to bug 30430
Collapse All | Expand All

(-)a/koha-tmpl/intranet-tmpl/prog/en/xslt/UNIMARCslim2intranetDetail.xsl (-482 / +493 lines)
Lines 1-492 Link Here
1
<?xml version="1.0" encoding="UTF-8"?>
1
<?xml version="1.0" encoding="UTF-8"?>
2
3
<!DOCTYPE stylesheet>
2
<!DOCTYPE stylesheet>
4
5
<xsl:stylesheet version="1.0"
3
<xsl:stylesheet version="1.0"
6
  xmlns:marc="http://www.loc.gov/MARC21/slim"
4
	xmlns:marc="http://www.loc.gov/MARC21/slim"
7
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
5
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
8
  xmlns:str="http://exslt.org/strings"
6
	xmlns:str="http://exslt.org/strings"
9
  exclude-result-prefixes="marc str">
7
  exclude-result-prefixes="marc str">
10
8
	<xsl:import href="UNIMARCslimUtils.xsl"/>
11
<xsl:import href="UNIMARCslimUtils.xsl"/>
9
	<xsl:output method = "html" indent="yes" omit-xml-declaration = "yes" encoding="UTF-8"/>
12
<xsl:output method = "html" indent="yes" omit-xml-declaration = "yes" encoding="UTF-8"/>
10
	<xsl:template match="/">
13
<xsl:template match="/">
11
		<xsl:apply-templates/>
14
  <xsl:apply-templates/>
12
	</xsl:template>
15
</xsl:template>
13
	<xsl:template match="marc:record">
16
14
		<xsl:variable name="Show856uAsImage" select="marc:sysprefs/marc:syspref[@name='Display856uAsImage']"/>
17
<xsl:template match="marc:record">
15
		<xsl:variable name="leader" select="marc:leader"/>
18
  <xsl:variable name="Show856uAsImage" select="marc:sysprefs/marc:syspref[@name='Display856uAsImage']"/>
16
		<xsl:variable name="leader6" select="substring($leader,7,1)"/>
19
  <xsl:variable name="leader" select="marc:leader"/>
17
		<xsl:variable name="leader7" select="substring($leader,8,1)"/>
20
  <xsl:variable name="leader6" select="substring($leader,7,1)"/>
18
		<xsl:variable name="biblionumber" select="marc:controlfield[@tag=001]"/>
21
  <xsl:variable name="leader7" select="substring($leader,8,1)"/>
19
		<xsl:if test="marc:datafield[@tag=200]">
22
  <xsl:variable name="biblionumber" select="marc:controlfield[@tag=001]"/>
20
			<xsl:for-each select="marc:datafield[@tag=200]">
23
21
				<h1>
24
22
					<xsl:call-template name="addClassRtl" />
25
  <xsl:if test="marc:datafield[@tag=200]">
23
					<xsl:variable name="title" select="marc:subfield[@code='a']"/>
26
    <xsl:for-each select="marc:datafield[@tag=200]">
24
					<xsl:variable name="ntitle"
27
      <h1>
28
        <xsl:call-template name="addClassRtl" />
29
        <xsl:variable name="title" select="marc:subfield[@code='a']"/>
30
        <xsl:variable name="ntitle"
31
         select="translate($title, '&#x0098;&#x009C;&#xC29C;&#xC29B;&#xC298;&#xC288;&#xC289;','')"/>
25
         select="translate($title, '&#x0098;&#x009C;&#xC29C;&#xC29B;&#xC298;&#xC288;&#xC289;','')"/>
32
        <xsl:value-of select="$ntitle" />
26
					<xsl:value-of select="$ntitle" />
33
        <xsl:if test="marc:subfield[@code='e']">
27
					<xsl:if test="marc:subfield[@code='e']">
34
          <xsl:text> : </xsl:text>
28
						<xsl:text> : </xsl:text>
35
          <xsl:for-each select="marc:subfield[@code='e']">
29
						<xsl:for-each select="marc:subfield[@code='e']">
36
            <xsl:value-of select="."/>
30
							<xsl:value-of select="."/>
37
          </xsl:for-each>
31
						</xsl:for-each>
38
        </xsl:if>
32
					</xsl:if>
39
        <xsl:if test="marc:subfield[@code='b']">
33
					<xsl:if test="marc:subfield[@code='b']">
40
          <xsl:text> [</xsl:text>
34
						<xsl:text> [</xsl:text>
41
          <xsl:value-of select="marc:subfield[@code='b']"/>
35
						<xsl:value-of select="marc:subfield[@code='b']"/>
42
          <xsl:text>]</xsl:text>
36
						<xsl:text>]</xsl:text>
43
        </xsl:if>
37
					</xsl:if>
44
        <xsl:if test="marc:subfield[@code='f']">
38
					<xsl:if test="marc:subfield[@code='f']">
45
          <xsl:text> / </xsl:text>
39
						<xsl:text> / </xsl:text>
46
          <xsl:value-of select="marc:subfield[@code='f']"/>
40
						<xsl:value-of select="marc:subfield[@code='f']"/>
47
        </xsl:if>
41
					</xsl:if>
48
        <xsl:if test="marc:subfield[@code='g']">
42
					<xsl:if test="marc:subfield[@code='g']">
49
          <xsl:text> ; </xsl:text>
43
						<xsl:text> ; </xsl:text>
50
          <xsl:value-of select="marc:subfield[@code='g']"/>
44
						<xsl:value-of select="marc:subfield[@code='g']"/>
51
        </xsl:if>
45
					</xsl:if>
52
      </h1>
46
				</h1>
53
    </xsl:for-each>
47
			</xsl:for-each>
54
  </xsl:if>
48
		</xsl:if>
55
  <xsl:call-template name="tag_4xx" />
49
		<xsl:call-template name="tag_4xx" />
56
50
		<xsl:call-template name="tag_7xx">
57
  <xsl:call-template name="tag_7xx">
51
			<xsl:with-param name="tag">700</xsl:with-param>
58
    <xsl:with-param name="tag">700</xsl:with-param>
52
			<xsl:with-param name="label">Main Author</xsl:with-param>
59
    <xsl:with-param name="label">Main Author</xsl:with-param>
53
			<xsl:with-param name="spanclass">main_author</xsl:with-param>
60
    <xsl:with-param name="spanclass">main_author</xsl:with-param>
54
		</xsl:call-template>
61
  </xsl:call-template>
55
		<xsl:call-template name="tag_7xx">
62
56
			<xsl:with-param name="tag">710</xsl:with-param>
63
  <xsl:call-template name="tag_7xx">
57
			<xsl:with-param name="label">Corporate Author (Main)</xsl:with-param>
64
    <xsl:with-param name="tag">710</xsl:with-param>
58
			<xsl:with-param name="spanclass">corporate_main_author</xsl:with-param>
65
    <xsl:with-param name="label">Corporate Author (Main)</xsl:with-param>
59
		</xsl:call-template>
66
    <xsl:with-param name="spanclass">corporate_main_author</xsl:with-param>
60
		<xsl:call-template name="tag_7xx">
67
  </xsl:call-template>
61
			<xsl:with-param name="tag">701</xsl:with-param>
68
62
			<xsl:with-param name="label">Coauthor</xsl:with-param>
69
  <xsl:call-template name="tag_7xx">
63
			<xsl:with-param name="spanclass">coauthor</xsl:with-param>
70
    <xsl:with-param name="tag">701</xsl:with-param>
64
		</xsl:call-template>
71
    <xsl:with-param name="label">Coauthor</xsl:with-param>
65
		<xsl:call-template name="tag_7xx">
72
    <xsl:with-param name="spanclass">coauthor</xsl:with-param>
66
			<xsl:with-param name="tag">702</xsl:with-param>
73
  </xsl:call-template>
67
			<xsl:with-param name="label">Secondary Author</xsl:with-param>
74
68
			<xsl:with-param name="spanclass">secondary_author</xsl:with-param>
75
  <xsl:call-template name="tag_7xx">
69
		</xsl:call-template>
76
    <xsl:with-param name="tag">702</xsl:with-param>
70
		<xsl:call-template name="tag_7xx">
77
    <xsl:with-param name="label">Secondary Author</xsl:with-param>
71
			<xsl:with-param name="tag">711</xsl:with-param>
78
    <xsl:with-param name="spanclass">secondary_author</xsl:with-param>
72
			<xsl:with-param name="label">Corporate Author (Coauthor)</xsl:with-param>
79
  </xsl:call-template>
73
			<xsl:with-param name="spanclass">corporate_coauthor</xsl:with-param>
80
74
		</xsl:call-template>
81
  <xsl:call-template name="tag_7xx">
75
		<xsl:call-template name="tag_7xx">
82
    <xsl:with-param name="tag">711</xsl:with-param>
76
			<xsl:with-param name="tag">712</xsl:with-param>
83
    <xsl:with-param name="label">Corporate Author (Coauthor)</xsl:with-param>
77
			<xsl:with-param name="label">Corporate Author (Secondary)</xsl:with-param>
84
    <xsl:with-param name="spanclass">corporate_coauthor</xsl:with-param>
78
			<xsl:with-param name="spanclass">corporate_secondary_author</xsl:with-param>
85
  </xsl:call-template>
79
		</xsl:call-template>
86
80
		<xsl:if test="marc:datafield[@tag=101]">
87
  <xsl:call-template name="tag_7xx">
81
			<span class="results_summary language">
88
    <xsl:with-param name="tag">712</xsl:with-param>
82
				<span class="label">Language: </span>
89
    <xsl:with-param name="label">Corporate Author (Secondary)</xsl:with-param>
83
				<xsl:for-each select="marc:datafield[@tag=101]">
90
    <xsl:with-param name="spanclass">corporate_secondary_author</xsl:with-param>
84
					<xsl:for-each select="marc:subfield">
91
  </xsl:call-template>
85
						<xsl:choose>
92
86
							<xsl:when test="@code='b'">of intermediate text, </xsl:when>
93
  <xsl:if test="marc:datafield[@tag=101]">
87
							<xsl:when test="@code='c'">of original work, </xsl:when>
94
    <span class="results_summary language">
88
							<xsl:when test="@code='d'">of summary, </xsl:when>
95
      <span class="label">Language: </span>
89
							<xsl:when test="@code='e'">of contents page, </xsl:when>
96
      <xsl:for-each select="marc:datafield[@tag=101]">
90
							<xsl:when test="@code='f'">of title page, </xsl:when>
97
        <xsl:for-each select="marc:subfield">
91
							<xsl:when test="@code='g'">of title proper, </xsl:when>
98
          <xsl:choose>
92
							<xsl:when test="@code='h'">of libretto, </xsl:when>
99
            <xsl:when test="@code='b'">of intermediate text, </xsl:when>
93
							<xsl:when test="@code='i'">of accompanying material, </xsl:when>
100
            <xsl:when test="@code='c'">of original work, </xsl:when>
94
							<xsl:when test="@code='j'">of subtitles, </xsl:when>
101
            <xsl:when test="@code='d'">of summary, </xsl:when>
95
						</xsl:choose>
102
            <xsl:when test="@code='e'">of contents page, </xsl:when>
96
						<xsl:value-of select="text()"/>
103
            <xsl:when test="@code='f'">of title page, </xsl:when>
97
						<xsl:choose>
104
            <xsl:when test="@code='g'">of title proper, </xsl:when>
98
							<xsl:when test="position()=last()">
105
            <xsl:when test="@code='h'">of libretto, </xsl:when>
99
								<xsl:text>.</xsl:text>
106
            <xsl:when test="@code='i'">of accompanying material, </xsl:when>
100
							</xsl:when>
107
            <xsl:when test="@code='j'">of subtitles, </xsl:when>
101
							<xsl:otherwise>
108
          </xsl:choose>
102
								<xsl:text> ; </xsl:text>
109
          <xsl:value-of select="text()"/>
103
							</xsl:otherwise>
110
          <xsl:choose>
104
						</xsl:choose>
111
            <xsl:when test="position()=last()">
105
					</xsl:for-each>
112
              <xsl:text>.</xsl:text>
106
				</xsl:for-each>
113
            </xsl:when>
107
			</span>
114
            <xsl:otherwise>
108
		</xsl:if>
115
              <xsl:text> ; </xsl:text>
109
		<xsl:if test="marc:datafield[@tag=102]">
116
            </xsl:otherwise>
110
			<span class="results_summary country">
117
          </xsl:choose>
111
				<span class="label">Country: </span>
118
        </xsl:for-each>
112
				<xsl:for-each select="marc:datafield[@tag=102]">
119
      </xsl:for-each>
113
					<xsl:for-each select="marc:subfield">
120
    </span>
114
						<xsl:value-of select="text()"/>
121
  </xsl:if>
115
						<xsl:choose>
122
116
							<xsl:when test="position()=last()">
123
  <xsl:if test="marc:datafield[@tag=102]">
117
								<xsl:text>.</xsl:text>
124
    <span class="results_summary country">
118
							</xsl:when>
125
      <span class="label">Country: </span>
119
							<xsl:otherwise>
126
      <xsl:for-each select="marc:datafield[@tag=102]">
120
								<xsl:text>, </xsl:text>
127
        <xsl:for-each select="marc:subfield">
121
							</xsl:otherwise>
128
          <xsl:value-of select="text()"/>
122
						</xsl:choose>
129
          <xsl:choose>
123
					</xsl:for-each>
130
            <xsl:when test="position()=last()">
124
				</xsl:for-each>
131
              <xsl:text>.</xsl:text>
125
			</span>
132
            </xsl:when>
126
		</xsl:if>
133
              <xsl:otherwise><xsl:text>, </xsl:text>
127
134
            </xsl:otherwise>
128
        <xsl:if test="(marc:datafield[@tag=214] or marc:datafield[@tag=210])">
135
          </xsl:choose>
129
        	<xsl:choose>
136
        </xsl:for-each>
130
        		<xsl:when test="(marc:datafield[@tag=214] and  marc:datafield[@tag=210])">
137
      </xsl:for-each>
131
        			<xsl:call-template name="tag_214" />
138
    </span>
132
        		</xsl:when>
139
  </xsl:if>
133
        		<xsl:when test="(marc:datafield[@tag=214])">
140
134
        			<xsl:call-template name="tag_214" />
141
  <xsl:call-template name="tag_210" />
135
        		</xsl:when>
142
136
        		<xsl:when test="(marc:datafield[@tag=210])">
143
  <xsl:call-template name="tag_215" />
137
        			<xsl:call-template name="tag_210" />
144
138
        		</xsl:when>
145
  <xsl:if test="marc:controlfield[@tag=009]">
139
        	</xsl:choose>
146
    <span class="results_summary tag_009">
147
      <span class="label">Tag 009: </span>
148
      <xsl:value-of select="marc:controlfield[@tag=009]"/>
149
    </span>
150
  </xsl:if>
151
152
  <!-- Build ISBN -->
153
  <xsl:if test="marc:datafield[@tag=010]/marc:subfield[@code='a']">
154
    <span class="results_summary isbn">
155
      <span class="label">ISBN: </span>
156
      <xsl:for-each select="marc:datafield[@tag=010]/marc:subfield[@code='a']">
157
        <span property="isbn">
158
          <xsl:value-of select="."/>
159
          <xsl:choose>
160
            <xsl:when test="position()=last()">
161
              <xsl:text>.</xsl:text>
162
            </xsl:when>
163
            <xsl:otherwise>
164
              <xsl:text>; </xsl:text>
165
            </xsl:otherwise>
166
          </xsl:choose>
167
        </span>
168
      </xsl:for-each>
169
    </span>
170
  </xsl:if>
171
172
  <!-- Build ISSN -->
173
  <xsl:if test="marc:datafield[@tag=011]/marc:subfield[@code='a']">
174
    <span class="results_summary issn">
175
      <span class="label">ISSN: </span>
176
      <xsl:for-each select="marc:datafield[@tag=011]/marc:subfield[@code='a']">
177
        <span property="issn">
178
          <xsl:value-of select="."/>
179
          <xsl:choose>
180
            <xsl:when test="position()=last()">
181
              <xsl:text>.</xsl:text>
182
            </xsl:when>
183
            <xsl:otherwise>
184
              <xsl:text>; </xsl:text>
185
            </xsl:otherwise>
186
          </xsl:choose>
187
        </span>
188
      </xsl:for-each>
189
    </span>
190
  </xsl:if>
191
192
  <xsl:call-template name="tag_title">
193
    <xsl:with-param name="tag">225</xsl:with-param>
194
    <xsl:with-param name="label">Series</xsl:with-param>
195
    <xsl:with-param name="spanclass">series</xsl:with-param>
196
  </xsl:call-template>
197
198
  <xsl:if test="marc:datafield[@tag=676]">
199
    <span class="results_summary dewey">
200
      <span class="label">Dewey: </span>
201
      <xsl:for-each select="marc:datafield[@tag=676]">
202
        <xsl:value-of select="marc:subfield[@code='a']"/>
203
        <xsl:if test="marc:subfield[@code='v']">
204
          <xsl:text>, </xsl:text>
205
          <xsl:value-of select="marc:subfield[@code='v']"/>
206
        </xsl:if>
207
        <xsl:if test="marc:subfield[@code='z']">
208
          <xsl:text>, </xsl:text>
209
          <xsl:value-of select="marc:subfield[@code='z']"/>
210
        </xsl:if>
140
        </xsl:if>
211
        <xsl:if test="not (position()=last())">
212
          <xsl:text> ; </xsl:text>
213
        </xsl:if>
214
      </xsl:for-each>
215
    </span>
216
  </xsl:if>
217
141
218
  <xsl:if test="marc:datafield[@tag=686]">
142
		<xsl:call-template name="tag_215" />
219
    <span class="results_summary classification">
143
		<xsl:if test="marc:controlfield[@tag=009]">
220
      <span class="label">Classification: </span>
144
			<span class="results_summary tag_009">
221
      <xsl:for-each select="marc:datafield[@tag=686]">
145
				<span class="label">Tag 009: </span>
222
        <xsl:value-of select="marc:subfield[@code='a']"/>
146
				<xsl:value-of select="marc:controlfield[@tag=009]"/>
223
        <xsl:if test="marc:subfield[@code='b']">
147
			</span>
224
          <xsl:text>, </xsl:text>
148
		</xsl:if>
225
          <xsl:value-of select="marc:subfield[@code='b']"/>
149
		<!-- Build ISBN -->
226
        </xsl:if>
150
		<xsl:if test="marc:datafield[@tag=010]/marc:subfield[@code='a']">
227
        <xsl:if test="marc:subfield[@code='c']">
151
			<span class="results_summary isbn">
228
          <xsl:text>, </xsl:text>
152
				<span class="label">ISBN: </span>
229
          <xsl:value-of select="marc:subfield[@code='c']"/>
153
				<xsl:for-each select="marc:datafield[@tag=010]/marc:subfield[@code='a']">
230
        </xsl:if>
154
					<span property="isbn">
231
        <xsl:if test="not (position()=last())"><xsl:text> ; </xsl:text></xsl:if>
155
						<xsl:value-of select="."/>
232
      </xsl:for-each>
156
						<xsl:choose>
233
    </span>
157
							<xsl:when test="position()=last()">
234
  </xsl:if>
158
								<xsl:text>.</xsl:text>
235
159
							</xsl:when>
236
  <xsl:if test="marc:datafield[@tag=327]">
160
							<xsl:otherwise>
237
    <span class="results_summary contents">
161
								<xsl:text>; </xsl:text>
238
      <span class="label">Contents note: </span>
162
							</xsl:otherwise>
239
      <xsl:for-each select="marc:datafield[@tag=327]">
163
						</xsl:choose>
240
        <xsl:call-template name="chopPunctuation">
164
					</span>
241
          <xsl:with-param name="chopString">
165
				</xsl:for-each>
242
            <xsl:call-template name="subfieldSelect">
166
			</span>
243
                <xsl:with-param name="codes">abcdjpvxyz</xsl:with-param>
167
		</xsl:if>
244
                <xsl:with-param name="subdivCodes">jpxyz</xsl:with-param>
168
		<!-- Build ISSN -->
245
                <xsl:with-param name="subdivDelimiter">-- </xsl:with-param>
169
		<xsl:if test="marc:datafield[@tag=011]/marc:subfield[@code='a']">
246
            </xsl:call-template>
170
			<span class="results_summary issn">
247
          </xsl:with-param>
171
				<span class="label">ISSN: </span>
248
        </xsl:call-template>
172
				<xsl:for-each select="marc:datafield[@tag=011]/marc:subfield[@code='a']">
249
      </xsl:for-each>
173
					<span property="issn">
250
    </span>
174
						<xsl:value-of select="."/>
251
  </xsl:if>
175
						<xsl:choose>
252
176
							<xsl:when test="position()=last()">
253
  <xsl:if test="marc:datafield[@tag=330]">
177
								<xsl:text>.</xsl:text>
254
    <span class="results_summary abstract">
178
							</xsl:when>
255
      <span class="label">Abstract: </span>
179
							<xsl:otherwise>
256
      <xsl:for-each select="marc:datafield[@tag=330]">
180
								<xsl:text>; </xsl:text>
257
        <xsl:value-of select="marc:subfield[@code='a']"/>
181
							</xsl:otherwise>
258
        <xsl:choose>
182
						</xsl:choose>
259
          <xsl:when test="position()=last()">
183
					</span>
260
            <xsl:text>.</xsl:text>
184
				</xsl:for-each>
261
          </xsl:when>
185
			</span>
262
          <xsl:otherwise>
186
		</xsl:if>
263
            <xsl:text>; </xsl:text>
187
		<xsl:call-template name="tag_title">
264
          </xsl:otherwise>
188
			<xsl:with-param name="tag">225</xsl:with-param>
265
        </xsl:choose>
189
			<xsl:with-param name="label">Series</xsl:with-param>
266
      </xsl:for-each>
190
			<xsl:with-param name="spanclass">series</xsl:with-param>
267
    </span>
191
		</xsl:call-template>
268
  </xsl:if>
192
		<xsl:if test="marc:datafield[@tag=676]">
269
193
			<span class="results_summary dewey">
270
  <xsl:if test="marc:datafield[@tag=317]">
194
				<span class="label">Dewey: </span>
271
    <span class="results_summary provenance">
195
				<xsl:for-each select="marc:datafield[@tag=676]">
272
      <span class="label">Provenance note: </span>
196
					<xsl:value-of select="marc:subfield[@code='a']"/>
273
      <xsl:for-each select="marc:datafield[@tag=317]">
197
					<xsl:if test="marc:subfield[@code='v']">
274
          <xsl:value-of select="marc:subfield[@code='a']"/>
198
						<xsl:text>, </xsl:text>
275
      </xsl:for-each>
199
						<xsl:value-of select="marc:subfield[@code='v']"/>
276
    </span>
200
					</xsl:if>
277
  </xsl:if>
201
					<xsl:if test="marc:subfield[@code='z']">
278
202
						<xsl:text>, </xsl:text>
279
  <xsl:if test="marc:datafield[@tag=320]">
203
						<xsl:value-of select="marc:subfield[@code='z']"/>
280
    <span class="results_summary bibliography">
204
					</xsl:if>
281
      <span class="label">Bibliography: </span>
205
					<xsl:if test="not (position()=last())">
282
      <xsl:for-each select="marc:datafield[@tag=320]">
206
						<xsl:text> ; </xsl:text>
283
        <xsl:value-of select="marc:subfield[@code='a']"/>
207
					</xsl:if>
284
        <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
208
				</xsl:for-each>
285
      </xsl:for-each>
209
			</span>
286
    </span>
210
		</xsl:if>
287
  </xsl:if>
211
		<xsl:if test="marc:datafield[@tag=686]">
288
212
			<span class="results_summary classification">
289
  <xsl:if test="marc:datafield[@tag=328]">
213
				<span class="label">Classification: </span>
290
    <span class="results_summary thesis">
214
				<xsl:for-each select="marc:datafield[@tag=686]">
291
      <span class="label">Thesis: </span>
215
					<xsl:value-of select="marc:subfield[@code='a']"/>
292
      <xsl:for-each select="marc:datafield[@tag=328]">
216
					<xsl:if test="marc:subfield[@code='b']">
293
        <xsl:value-of select="marc:subfield[@code='a']"/>
217
						<xsl:text>, </xsl:text>
294
        <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
218
						<xsl:value-of select="marc:subfield[@code='b']"/>
295
      </xsl:for-each>
219
					</xsl:if>
296
    </span>
220
					<xsl:if test="marc:subfield[@code='c']">
297
  </xsl:if>
221
						<xsl:text>, </xsl:text>
298
222
						<xsl:value-of select="marc:subfield[@code='c']"/>
299
  <xsl:if test="marc:datafield[@tag=333]">
223
					</xsl:if>
300
    <span class="results_summary audience">
224
					<xsl:if test="not (position()=last())">
301
      <span class="label">Audience: </span>
225
						<xsl:text> ; </xsl:text>
302
      <xsl:for-each select="marc:datafield[@tag=333]">
226
					</xsl:if>
303
        <xsl:value-of select="marc:subfield[@code='a']"/>
227
				</xsl:for-each>
304
        <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
228
			</span>
305
      </xsl:for-each>
229
		</xsl:if>
306
    </span>
230
		<xsl:if test="marc:datafield[@tag=327]">
307
  </xsl:if>
231
			<span class="results_summary contents">
308
232
				<span class="label">Contents note: </span>
309
  <xsl:if test="marc:datafield[@tag=955]">
233
				<xsl:for-each select="marc:datafield[@tag=327]">
310
    <span class="results_summary sudoc_serial_history">
234
					<xsl:call-template name="chopPunctuation">
311
      <span class="label">SUDOC serial history: </span>
235
						<xsl:with-param name="chopString">
312
      <xsl:for-each select="marc:datafield[@tag=955]">
236
							<xsl:call-template name="subfieldSelect">
313
        <xsl:value-of select="marc:subfield[@code='9']"/>:
237
								<xsl:with-param name="codes">abcdjpvxyz</xsl:with-param>
314
        <xsl:value-of select="marc:subfield[@code='r']"/>
238
								<xsl:with-param name="subdivCodes">jpxyz</xsl:with-param>
315
        <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
239
								<xsl:with-param name="subdivDelimiter">-- </xsl:with-param>
316
      </xsl:for-each>
240
							</xsl:call-template>
317
    </span>
241
						</xsl:with-param>
318
  </xsl:if>
242
					</xsl:call-template>
319
243
				</xsl:for-each>
320
  <xsl:call-template name="tag_subject">
244
			</span>
321
    <xsl:with-param name="tag">600</xsl:with-param>
245
		</xsl:if>
322
    <xsl:with-param name="label">Subject - Personal Name</xsl:with-param>
246
		<xsl:if test="marc:datafield[@tag=330]">
323
  </xsl:call-template>
247
			<span class="results_summary abstract">
324
248
				<span class="label">Abstract: </span>
325
  <xsl:call-template name="tag_subject">
249
				<xsl:for-each select="marc:datafield[@tag=330]">
326
    <xsl:with-param name="tag">601</xsl:with-param>
250
					<xsl:value-of select="marc:subfield[@code='a']"/>
327
    <xsl:with-param name="label">Subject - Corporate Author</xsl:with-param>
251
					<xsl:choose>
328
  </xsl:call-template>
252
						<xsl:when test="position()=last()">
329
253
							<xsl:text>.</xsl:text>
330
  <xsl:call-template name="tag_subject">
254
						</xsl:when>
331
    <xsl:with-param name="tag">602</xsl:with-param>
255
						<xsl:otherwise>
332
    <xsl:with-param name="label">Subject - Family</xsl:with-param>
256
							<xsl:text>; </xsl:text>
333
  </xsl:call-template>
257
						</xsl:otherwise>
334
258
					</xsl:choose>
335
  <xsl:call-template name="tag_subject">
259
				</xsl:for-each>
336
    <xsl:with-param name="tag">604</xsl:with-param>
260
			</span>
337
    <xsl:with-param name="label">Subject - Author/Title</xsl:with-param>
261
		</xsl:if>
338
  </xsl:call-template>
262
		<xsl:if test="marc:datafield[@tag=317]">
339
263
			<span class="results_summary provenance">
340
  <xsl:call-template name="tag_subject">
264
				<span class="label">Provenance note: </span>
341
    <xsl:with-param name="tag">606</xsl:with-param>
265
				<xsl:for-each select="marc:datafield[@tag=317]">
342
    <xsl:with-param name="label">Subject - Topical Name</xsl:with-param>
266
					<xsl:value-of select="marc:subfield[@code='a']"/>
343
  </xsl:call-template>
267
				</xsl:for-each>
344
268
			</span>
345
  <xsl:call-template name="tag_subject">
269
		</xsl:if>
346
    <xsl:with-param name="tag">607</xsl:with-param>
270
		<xsl:if test="marc:datafield[@tag=320]">
347
    <xsl:with-param name="label">Subject - Geographical Name</xsl:with-param>
271
			<span class="results_summary bibliography">
348
  </xsl:call-template>
272
				<span class="label">Bibliography: </span>
349
273
				<xsl:for-each select="marc:datafield[@tag=320]">
350
  <xsl:call-template name="tag_subject">
274
					<xsl:value-of select="marc:subfield[@code='a']"/>
351
    <xsl:with-param name="tag">608</xsl:with-param>
275
					<xsl:choose>
352
    <xsl:with-param name="label">Subject - Form</xsl:with-param>
276
						<xsl:when test="position()=last()">
353
  </xsl:call-template>
277
							<xsl:text>.</xsl:text>
354
278
						</xsl:when>
355
  <xsl:call-template name="tag_subject">
279
						<xsl:otherwise>
356
    <xsl:with-param name="tag">610</xsl:with-param>
280
							<xsl:text>; </xsl:text>
357
    <xsl:with-param name="label">Subject</xsl:with-param>
281
						</xsl:otherwise>
358
  </xsl:call-template>
282
					</xsl:choose>
359
283
				</xsl:for-each>
360
  <xsl:call-template name="tag_subject">
284
			</span>
361
    <xsl:with-param name="tag">615</xsl:with-param>
285
		</xsl:if>
362
    <xsl:with-param name="label">Subject Category</xsl:with-param>
286
		<xsl:if test="marc:datafield[@tag=328]">
363
  </xsl:call-template>
287
			<span class="results_summary thesis">
364
288
				<span class="label">Thesis: </span>
365
  <xsl:call-template name="tag_subject">
289
				<xsl:for-each select="marc:datafield[@tag=328]">
366
    <xsl:with-param name="tag">616</xsl:with-param>
290
					<xsl:value-of select="marc:subfield[@code='a']"/>
367
    <xsl:with-param name="label">Trademark</xsl:with-param>
291
					<xsl:choose>
368
  </xsl:call-template>
292
						<xsl:when test="position()=last()">
369
293
							<xsl:text>.</xsl:text>
370
  <xsl:if test="marc:datafield[@tag=856]">
294
						</xsl:when>
371
    <span class="results_summary online_resources">
295
						<xsl:otherwise>
372
      <span class="label">Online Resources:</span>
296
							<xsl:text>; </xsl:text>
373
      <xsl:for-each select="marc:datafield[@tag=856]">
297
						</xsl:otherwise>
374
        <xsl:variable name="SubqText"><xsl:value-of select="marc:subfield[@code='q']"/></xsl:variable>
298
					</xsl:choose>
375
        <a>
299
				</xsl:for-each>
376
          <xsl:attribute name="href">
300
			</span>
377
            <xsl:value-of select="marc:subfield[@code='u']"/>
301
		</xsl:if>
378
          </xsl:attribute>
302
		<xsl:if test="marc:datafield[@tag=333]">
379
          <xsl:choose>
303
			<span class="results_summary audience">
380
            <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')">
304
				<span class="label">Audience: </span>
381
              <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>
305
				<xsl:for-each select="marc:datafield[@tag=333]">
382
            </xsl:when>
306
					<xsl:value-of select="marc:subfield[@code='a']"/>
383
            <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']">
307
					<xsl:choose>
384
              <xsl:call-template name="subfieldSelect">
308
						<xsl:when test="position()=last()">
385
                <xsl:with-param name="codes">y3z</xsl:with-param>
309
							<xsl:text>.</xsl:text>
386
              </xsl:call-template>
310
						</xsl:when>
387
            </xsl:when>
311
						<xsl:otherwise>
388
            <xsl:when test="not(marc:subfield[@code='y']) and not(marc:subfield[@code='3']) and not(marc:subfield[@code='z'])">
312
							<xsl:text>; </xsl:text>
313
						</xsl:otherwise>
314
					</xsl:choose>
315
				</xsl:for-each>
316
			</span>
317
		</xsl:if>
318
		<xsl:if test="marc:datafield[@tag=955]">
319
			<span class="results_summary sudoc_serial_history">
320
				<span class="label">SUDOC serial history: </span>
321
				<xsl:for-each select="marc:datafield[@tag=955]">
322
					<xsl:value-of select="marc:subfield[@code='9']"/>:
323
324
					<xsl:value-of select="marc:subfield[@code='r']"/>
325
					<xsl:choose>
326
						<xsl:when test="position()=last()">
327
							<xsl:text>.</xsl:text>
328
						</xsl:when>
329
						<xsl:otherwise>
330
							<xsl:text>; </xsl:text>
331
						</xsl:otherwise>
332
					</xsl:choose>
333
				</xsl:for-each>
334
			</span>
335
		</xsl:if>
336
		<xsl:call-template name="tag_subject">
337
			<xsl:with-param name="tag">600</xsl:with-param>
338
			<xsl:with-param name="label">Subject - Personal Name</xsl:with-param>
339
		</xsl:call-template>
340
		<xsl:call-template name="tag_subject">
341
			<xsl:with-param name="tag">601</xsl:with-param>
342
			<xsl:with-param name="label">Subject - Corporate Author</xsl:with-param>
343
		</xsl:call-template>
344
		<xsl:call-template name="tag_subject">
345
			<xsl:with-param name="tag">602</xsl:with-param>
346
			<xsl:with-param name="label">Subject - Family</xsl:with-param>
347
		</xsl:call-template>
348
		<xsl:call-template name="tag_subject">
349
			<xsl:with-param name="tag">604</xsl:with-param>
350
			<xsl:with-param name="label">Subject - Author/Title</xsl:with-param>
351
		</xsl:call-template>
352
		<xsl:call-template name="tag_subject">
353
			<xsl:with-param name="tag">606</xsl:with-param>
354
			<xsl:with-param name="label">Subject - Topical Name</xsl:with-param>
355
		</xsl:call-template>
356
		<xsl:call-template name="tag_subject">
357
			<xsl:with-param name="tag">607</xsl:with-param>
358
			<xsl:with-param name="label">Subject - Geographical Name</xsl:with-param>
359
		</xsl:call-template>
360
		<xsl:call-template name="tag_subject">
361
			<xsl:with-param name="tag">608</xsl:with-param>
362
			<xsl:with-param name="label">Subject - Form</xsl:with-param>
363
		</xsl:call-template>
364
		<xsl:call-template name="tag_subject">
365
			<xsl:with-param name="tag">610</xsl:with-param>
366
			<xsl:with-param name="label">Subject</xsl:with-param>
367
		</xsl:call-template>
368
		<xsl:call-template name="tag_subject">
369
			<xsl:with-param name="tag">615</xsl:with-param>
370
			<xsl:with-param name="label">Subject Category</xsl:with-param>
371
		</xsl:call-template>
372
		<xsl:call-template name="tag_subject">
373
			<xsl:with-param name="tag">616</xsl:with-param>
374
			<xsl:with-param name="label">Trademark</xsl:with-param>
375
		</xsl:call-template>
376
		<xsl:if test="marc:datafield[@tag=856]">
377
			<span class="results_summary online_resources">
378
				<span class="label">Online Resources:</span>
379
				<xsl:for-each select="marc:datafield[@tag=856]">
380
					<xsl:variable name="SubqText">
381
						<xsl:value-of select="marc:subfield[@code='q']"/>
382
					</xsl:variable>
383
					<a>
384
						<xsl:attribute name="href">
385
							<xsl:value-of select="marc:subfield[@code='u']"/>
386
						</xsl:attribute>
387
						<xsl:choose>
388
							<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')">
389
								<xsl:element name="img">
390
									<xsl:attribute name="src">
391
										<xsl:value-of select="marc:subfield[@code='u']"/>
392
									</xsl:attribute>
393
									<xsl:attribute name="alt">
394
										<xsl:value-of select="marc:subfield[@code='y']"/>
395
									</xsl:attribute>
396
									<xsl:attribute name="height">100</xsl:attribute>
397
								</xsl:element>
398
								<xsl:text></xsl:text>
399
							</xsl:when>
400
							<xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']">
401
								<xsl:call-template name="subfieldSelect">
402
									<xsl:with-param name="codes">y3z</xsl:with-param>
403
								</xsl:call-template>
404
							</xsl:when>
405
							<xsl:when test="not(marc:subfield[@code='y']) and not(marc:subfield[@code='3']) and not(marc:subfield[@code='z'])">
389
              Click here to access online
406
              Click here to access online
390
            </xsl:when>
407
            </xsl:when>
391
          </xsl:choose>
408
						</xsl:choose>
392
        </a>
409
					</a>
393
        <xsl:choose>
410
					<xsl:choose>
394
          <xsl:when test="position()=last()"></xsl:when>
411
						<xsl:when test="position()=last()"></xsl:when>
395
          <xsl:otherwise> | </xsl:otherwise>
412
						<xsl:otherwise> | </xsl:otherwise>
396
        </xsl:choose>
413
					</xsl:choose>
397
      </xsl:for-each>
414
				</xsl:for-each>
398
    </span>
415
			</span>
399
  </xsl:if>
416
		</xsl:if>
400
</xsl:template>
417
	</xsl:template>
401
418
	<xsl:template name="nameABCDQ">
402
    <xsl:template name="nameABCDQ">
419
		<xsl:call-template name="chopPunctuation">
403
            <xsl:call-template name="chopPunctuation">
420
			<xsl:with-param name="chopString">
404
                <xsl:with-param name="chopString">
421
				<xsl:call-template name="subfieldSelect">
405
                    <xsl:call-template name="subfieldSelect">
422
					<xsl:with-param name="codes">aq</xsl:with-param>
406
                        <xsl:with-param name="codes">aq</xsl:with-param>
423
				</xsl:call-template>
407
                    </xsl:call-template>
424
			</xsl:with-param>
408
                </xsl:with-param>
425
			<xsl:with-param name="punctuation">
409
                <xsl:with-param name="punctuation">
426
				<xsl:text>:,;/ </xsl:text>
410
                    <xsl:text>:,;/ </xsl:text>
427
			</xsl:with-param>
411
                </xsl:with-param>
428
		</xsl:call-template>
412
            </xsl:call-template>
429
		<xsl:call-template name="termsOfAddress"/>
413
        <xsl:call-template name="termsOfAddress"/>
430
	</xsl:template>
414
    </xsl:template>
431
	<xsl:template name="nameABCDN">
415
432
		<xsl:for-each select="marc:subfield[@code='a']">
416
    <xsl:template name="nameABCDN">
433
			<xsl:call-template name="chopPunctuation">
417
        <xsl:for-each select="marc:subfield[@code='a']">
434
				<xsl:with-param name="chopString" select="."/>
418
                <xsl:call-template name="chopPunctuation">
435
			</xsl:call-template>
419
                    <xsl:with-param name="chopString" select="."/>
436
		</xsl:for-each>
420
                </xsl:call-template>
437
		<xsl:for-each select="marc:subfield[@code='b']">
421
        </xsl:for-each>
438
			<xsl:value-of select="."/>
422
        <xsl:for-each select="marc:subfield[@code='b']">
439
		</xsl:for-each>
423
                <xsl:value-of select="."/>
440
		<xsl:if test="marc:subfield[@code='c'] or marc:subfield[@code='d'] or marc:subfield[@code='n']">
424
        </xsl:for-each>
441
			<xsl:call-template name="subfieldSelect">
425
        <xsl:if test="marc:subfield[@code='c'] or marc:subfield[@code='d'] or marc:subfield[@code='n']">
442
				<xsl:with-param name="codes">cdn</xsl:with-param>
426
                <xsl:call-template name="subfieldSelect">
443
			</xsl:call-template>
427
                    <xsl:with-param name="codes">cdn</xsl:with-param>
444
		</xsl:if>
428
                </xsl:call-template>
445
	</xsl:template>
429
        </xsl:if>
446
	<xsl:template name="nameACDEQ">
430
    </xsl:template>
447
		<xsl:call-template name="subfieldSelect">
431
448
			<xsl:with-param name="codes">acdeq</xsl:with-param>
432
    <xsl:template name="nameACDEQ">
449
		</xsl:call-template>
433
            <xsl:call-template name="subfieldSelect">
450
	</xsl:template>
434
                <xsl:with-param name="codes">acdeq</xsl:with-param>
451
	<xsl:template name="termsOfAddress">
435
            </xsl:call-template>
452
		<xsl:if test="marc:subfield[@code='b' or @code='c']">
436
    </xsl:template>
453
			<xsl:call-template name="chopPunctuation">
437
    <xsl:template name="termsOfAddress">
454
				<xsl:with-param name="chopString">
438
        <xsl:if test="marc:subfield[@code='b' or @code='c']">
455
					<xsl:call-template name="subfieldSelect">
439
            <xsl:call-template name="chopPunctuation">
456
						<xsl:with-param name="codes">bc</xsl:with-param>
440
                <xsl:with-param name="chopString">
457
					</xsl:call-template>
441
                    <xsl:call-template name="subfieldSelect">
458
				</xsl:with-param>
442
                        <xsl:with-param name="codes">bc</xsl:with-param>
459
			</xsl:call-template>
443
                    </xsl:call-template>
460
		</xsl:if>
444
                </xsl:with-param>
461
	</xsl:template>
445
            </xsl:call-template>
462
	<xsl:template name="part">
446
        </xsl:if>
463
		<xsl:variable name="partNumber">
447
    </xsl:template>
464
			<xsl:call-template name="specialSubfieldSelect">
448
465
				<xsl:with-param name="axis">n</xsl:with-param>
449
    <xsl:template name="part">
466
				<xsl:with-param name="anyCodes">n</xsl:with-param>
450
        <xsl:variable name="partNumber">
467
				<xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
451
            <xsl:call-template name="specialSubfieldSelect">
468
			</xsl:call-template>
452
                <xsl:with-param name="axis">n</xsl:with-param>
469
		</xsl:variable>
453
                <xsl:with-param name="anyCodes">n</xsl:with-param>
470
		<xsl:variable name="partName">
454
                <xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
471
			<xsl:call-template name="specialSubfieldSelect">
455
            </xsl:call-template>
472
				<xsl:with-param name="axis">p</xsl:with-param>
456
        </xsl:variable>
473
				<xsl:with-param name="anyCodes">p</xsl:with-param>
457
        <xsl:variable name="partName">
474
				<xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
458
            <xsl:call-template name="specialSubfieldSelect">
475
			</xsl:call-template>
459
                <xsl:with-param name="axis">p</xsl:with-param>
476
		</xsl:variable>
460
                <xsl:with-param name="anyCodes">p</xsl:with-param>
477
		<xsl:if test="string-length(normalize-space($partNumber))">
461
                <xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
478
			<xsl:call-template name="chopPunctuation">
462
            </xsl:call-template>
479
				<xsl:with-param name="chopString" select="$partNumber"/>
463
        </xsl:variable>
480
			</xsl:call-template>
464
        <xsl:if test="string-length(normalize-space($partNumber))">
481
		</xsl:if>
465
                <xsl:call-template name="chopPunctuation">
482
		<xsl:if test="string-length(normalize-space($partName))">
466
                    <xsl:with-param name="chopString" select="$partNumber"/>
483
			<xsl:call-template name="chopPunctuation">
467
                </xsl:call-template>
484
				<xsl:with-param name="chopString" select="$partName"/>
468
        </xsl:if>
485
			</xsl:call-template>
469
        <xsl:if test="string-length(normalize-space($partName))">
486
		</xsl:if>
470
                <xsl:call-template name="chopPunctuation">
487
	</xsl:template>
471
                    <xsl:with-param name="chopString" select="$partName"/>
488
	<xsl:template name="specialSubfieldSelect">
472
                </xsl:call-template>
489
		<xsl:param name="anyCodes"/>
473
        </xsl:if>
490
		<xsl:param name="axis"/>
474
    </xsl:template>
491
		<xsl:param name="beforeCodes"/>
475
492
		<xsl:param name="afterCodes"/>
476
    <xsl:template name="specialSubfieldSelect">
493
		<xsl:variable name="str">
477
        <xsl:param name="anyCodes"/>
494
			<xsl:for-each select="marc:subfield">
478
        <xsl:param name="axis"/>
495
				<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])">
479
        <xsl:param name="beforeCodes"/>
496
					<xsl:value-of select="text()"/>
480
        <xsl:param name="afterCodes"/>
497
					<xsl:text></xsl:text>
481
        <xsl:variable name="str">
498
				</xsl:if>
482
            <xsl:for-each select="marc:subfield">
499
			</xsl:for-each>
483
                <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])">
500
		</xsl:variable>
484
                    <xsl:value-of select="text()"/>
501
		<xsl:value-of select="substring($str,1,string-length($str)-1)"/>
485
                    <xsl:text> </xsl:text>
502
	</xsl:template>
486
                </xsl:if>
487
            </xsl:for-each>
488
        </xsl:variable>
489
        <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
490
    </xsl:template>
491
492
</xsl:stylesheet>
503
</xsl:stylesheet>
(-)a/koha-tmpl/intranet-tmpl/prog/en/xslt/UNIMARCslim2intranetResults.xsl (-74 / +65 lines)
Lines 1-81 Link Here
1
<?xml version="1.0" encoding="UTF-8"?>
1
<?xml version="1.0" encoding="UTF-8"?>
2
3
<!DOCTYPE stylesheet>
2
<!DOCTYPE stylesheet>
4
5
<!-- $Id: MARC21slim2DC.xsl,v 1.1 2003/01/06 08:20:27 adam Exp $ -->
3
<!-- $Id: MARC21slim2DC.xsl,v 1.1 2003/01/06 08:20:27 adam Exp $ -->
6
<xsl:stylesheet version="1.0"
4
<xsl:stylesheet version="1.0"
7
  xmlns:marc="http://www.loc.gov/MARC21/slim"
5
	xmlns:marc="http://www.loc.gov/MARC21/slim"
8
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
6
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
9
  xmlns:str="http://exslt.org/strings"
7
	xmlns:str="http://exslt.org/strings"
10
  exclude-result-prefixes="marc str">
8
  exclude-result-prefixes="marc str">
11
9
	<xsl:import href="UNIMARCslimUtils.xsl"/>
12
<xsl:import href="UNIMARCslimUtils.xsl"/>
10
	<xsl:output method = "html" indent="yes" omit-xml-declaration = "yes" encoding="UTF-8"/>
13
<xsl:output method = "html" indent="yes" omit-xml-declaration = "yes" encoding="UTF-8"/>
11
	<xsl:template match="/">
14
12
		<xsl:apply-templates/>
15
<xsl:template match="/">
13
	</xsl:template>
16
  <xsl:apply-templates/>
14
	<xsl:template match="marc:record">
17
</xsl:template>
15
		<xsl:variable name="IntranetBiblioDefaultView" select="marc:sysprefs/marc:syspref[@name='IntranetBiblioDefaultView']"/>
18
16
		<xsl:variable name="leader" select="marc:leader"/>
19
<xsl:template match="marc:record">
17
		<xsl:variable name="leader6" select="substring($leader,7,1)"/>
20
  <xsl:variable name="IntranetBiblioDefaultView" select="marc:sysprefs/marc:syspref[@name='IntranetBiblioDefaultView']"/>
18
		<xsl:variable name="leader7" select="substring($leader,8,1)"/>
21
  <xsl:variable name="leader" select="marc:leader"/>
19
		<xsl:variable name="biblionumber" select="marc:controlfield[@tag=001]"/>
22
  <xsl:variable name="leader6" select="substring($leader,7,1)"/>
20
		<xsl:variable name="isbn" select="marc:datafield[@tag=010]/marc:subfield[@code='a']"/>
23
  <xsl:variable name="leader7" select="substring($leader,8,1)"/>
21
		<xsl:if test="marc:datafield[@tag=200]">
24
  <xsl:variable name="biblionumber" select="marc:controlfield[@tag=001]"/>
22
			<xsl:for-each select="marc:datafield[@tag=200]">
25
  <xsl:variable name="isbn" select="marc:datafield[@tag=010]/marc:subfield[@code='a']"/>
23
				<a>
26
24
					<xsl:attribute name="href">
27
  <xsl:if test="marc:datafield[@tag=200]">
25
						<xsl:call-template name="buildBiblioDefaultViewURL">
28
    <xsl:for-each select="marc:datafield[@tag=200]">
26
							<xsl:with-param name="IntranetBiblioDefaultView">
29
      <a>
27
								<xsl:value-of select="$IntranetBiblioDefaultView"/>
30
        <xsl:attribute name="href">
28
							</xsl:with-param>
31
          <xsl:call-template name="buildBiblioDefaultViewURL">
29
						</xsl:call-template>
32
            <xsl:with-param name="IntranetBiblioDefaultView">
30
						<xsl:value-of select="str:encode-uri($biblionumber, true())"/>
33
              <xsl:value-of select="$IntranetBiblioDefaultView"/>
31
					</xsl:attribute>
34
            </xsl:with-param>
32
					<xsl:attribute name="class">title</xsl:attribute>
35
          </xsl:call-template>
33
					<xsl:variable name="title" select="marc:subfield[@code='a']"/>
36
          <xsl:value-of select="str:encode-uri($biblionumber, true())"/>
34
					<xsl:variable name="ntitle"
37
        </xsl:attribute>
38
        <xsl:attribute name="class">title</xsl:attribute>
39
40
        <xsl:variable name="title" select="marc:subfield[@code='a']"/>
41
        <xsl:variable name="ntitle"
42
            select="translate($title, '&#x0098;&#x009C;&#xC29C;&#xC29B;&#xC298;&#xC288;&#xC289;','')"/>
35
            select="translate($title, '&#x0098;&#x009C;&#xC29C;&#xC29B;&#xC298;&#xC288;&#xC289;','')"/>
43
        <xsl:value-of select="$ntitle" />
36
					<xsl:value-of select="$ntitle" />
44
      </a>
37
				</a>
45
      <xsl:if test="marc:subfield[@code='e']">
38
				<xsl:if test="marc:subfield[@code='e']">
46
        <xsl:text> : </xsl:text>
39
					<xsl:text> : </xsl:text>
47
        <xsl:value-of select="marc:subfield[@code='e']"/>
40
					<xsl:value-of select="marc:subfield[@code='e']"/>
48
      </xsl:if>
41
				</xsl:if>
49
      <xsl:if test="marc:subfield[@code='b']">
42
				<xsl:if test="marc:subfield[@code='b']">
50
        <xsl:text> [</xsl:text>
43
					<xsl:text> [</xsl:text>
51
        <xsl:value-of select="marc:subfield[@code='b']"/>
44
					<xsl:value-of select="marc:subfield[@code='b']"/>
52
        <xsl:text>]</xsl:text>
45
					<xsl:text>]</xsl:text>
53
      </xsl:if>
46
				</xsl:if>
54
      <xsl:if test="marc:subfield[@code='h']">
47
				<xsl:if test="marc:subfield[@code='h']">
55
        <xsl:text> : </xsl:text>
48
					<xsl:text> : </xsl:text>
56
        <xsl:value-of select="marc:subfield[@code='h']"/>
49
					<xsl:value-of select="marc:subfield[@code='h']"/>
57
      </xsl:if>
50
				</xsl:if>
58
      <xsl:if test="marc:subfield[@code='i']">
51
				<xsl:if test="marc:subfield[@code='i']">
59
        <xsl:text> : </xsl:text>
52
					<xsl:text> : </xsl:text>
60
        <xsl:value-of select="marc:subfield[@code='i']"/>
53
					<xsl:value-of select="marc:subfield[@code='i']"/>
61
      </xsl:if>
54
				</xsl:if>
62
      <xsl:if test="marc:subfield[@code='f']">
55
				<xsl:if test="marc:subfield[@code='f']">
63
        <xsl:text> / </xsl:text>
56
					<xsl:text> / </xsl:text>
64
        <xsl:value-of select="marc:subfield[@code='f']"/>
57
					<xsl:value-of select="marc:subfield[@code='f']"/>
65
      </xsl:if>
58
				</xsl:if>
66
      <xsl:if test="marc:subfield[@code='g']">
59
				<xsl:if test="marc:subfield[@code='g']">
67
        <xsl:text> ; </xsl:text>
60
					<xsl:text> ; </xsl:text>
68
        <xsl:value-of select="marc:subfield[@code='g']"/>
61
					<xsl:value-of select="marc:subfield[@code='g']"/>
69
      </xsl:if>
62
				</xsl:if>
70
      <xsl:text> </xsl:text>
63
				<xsl:text></xsl:text>
71
    </xsl:for-each>
64
			</xsl:for-each>
72
  </xsl:if>
65
		</xsl:if>
73
66
		<xsl:call-template name="tag_4xx" />
74
  <xsl:call-template name="tag_4xx" />
67
		<xsl:if test="marc:datafield[@tag=210 or @tag=214]">
75
68
			<xsl:call-template name="tag_210-214" />
76
  <xsl:call-template name="tag_210" />
69
		</xsl:if>
77
70
		<xsl:call-template name="tag_215" />
78
  <xsl:call-template name="tag_215" />
71
	</xsl:template>
79
80
</xsl:template>
81
</xsl:stylesheet>
72
</xsl:stylesheet>
(-)a/koha-tmpl/intranet-tmpl/prog/en/xslt/UNIMARCslimUtils.xsl (-306 / +620 lines)
Lines 1-135 Link Here
1
<?xml version='1.0'?>
1
<?xml version='1.0'?>
2
3
<!DOCTYPE stylesheet>
2
<!DOCTYPE stylesheet>
4
5
<xsl:stylesheet version="1.0"
3
<xsl:stylesheet version="1.0"
6
  xmlns:marc="http://www.loc.gov/MARC21/slim"
4
	xmlns:marc="http://www.loc.gov/MARC21/slim"
7
  xmlns:items="http://www.koha-community.org/items"
5
	xmlns:items="http://www.koha-community.org/items"
8
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
6
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
9
  xmlns:str="http://exslt.org/strings"
7
	xmlns:str="http://exslt.org/strings"
10
  exclude-result-prefixes="marc items str">
8
  exclude-result-prefixes="marc items str">
9
	<xsl:template name="datafield">
10
		<xsl:param name="tag"/>
11
		<xsl:param name="ind1">
12
			<xsl:text></xsl:text>
13
		</xsl:param>
14
		<xsl:param name="ind2">
15
			<xsl:text></xsl:text>
16
		</xsl:param>
17
		<xsl:param name="subfields"/>
18
		<xsl:element name="datafield">
19
			<xsl:attribute name="tag">
20
				<xsl:value-of select="$tag"/>
21
			</xsl:attribute>
22
			<xsl:attribute name="ind1">
23
				<xsl:value-of select="$ind1"/>
24
			</xsl:attribute>
25
			<xsl:attribute name="ind2">
26
				<xsl:value-of select="$ind2"/>
27
			</xsl:attribute>
28
			<xsl:copy-of select="$subfields"/>
29
		</xsl:element>
30
	</xsl:template>
31
	<xsl:template name="tag_210">
32
		<span class="results_summary publication">
33
			<span class="label">Publication: </span>
34
			<xsl:for-each select="marc:datafield[@tag=210]">
35
				<span>
36
					<xsl:call-template name="addClassRtl" />
37
					<xsl:for-each select="marc:subfield">
38
						<xsl:choose>
39
							<xsl:when test="@code='c' or @code='g'">
40
								<xsl:if test="position()>1">
41
									<xsl:text> : </xsl:text>
42
								</xsl:if>
43
								<xsl:value-of select="."/>
44
							</xsl:when>
45
							<xsl:otherwise>
46
								<xsl:if test="position()>1">
47
									<xsl:text>, </xsl:text>
48
								</xsl:if>
49
								<xsl:value-of select="."/>
50
							</xsl:otherwise>
51
						</xsl:choose>
52
					</xsl:for-each>
53
					<xsl:if test="not (position() = last())">
54
						<xsl:text> • </xsl:text>
55
					</xsl:if>
56
				</span>
57
			</xsl:for-each>
58
		</span>
59
	</xsl:template>
60
	<xsl:template name="tag_214">
61
		<xsl:for-each select="marc:datafield[@tag=214]">
62
			<xsl:sort select="@ind2" data-type="number" />
63
			<span class="results_summary publication">
64
				<span class="label">
65
					<xsl:choose>
66
						<xsl:when test="@ind2=1">Production:
67
     </xsl:when>
68
						<xsl:when test="@ind2=2">Distribution:
69
     </xsl:when>
70
						<xsl:when test="@ind2=3">Manufacture:
71
     </xsl:when>
72
						<xsl:when test="@ind2=4">
73
							<xsl:choose>
74
								<xsl:when test="substring(marc:subfield[@code='d'],1,1)='C'">Copyright date:
75
     </xsl:when>
76
								<xsl:when test="substring(marc:subfield[@code='d'],1,1)='P'">Protection date:
77
     </xsl:when>
78
								<xsl:otherwise>Copyright date / protection date:
79
     </xsl:otherwise>
80
							</xsl:choose>
81
						</xsl:when>
82
						<xsl:otherwise>Publication:
83
     </xsl:otherwise>
84
					</xsl:choose>
85
				</span>
86
				<span>
87
					<xsl:call-template name="addClassRtl" />
88
					<xsl:for-each select="marc:subfield">
89
						<xsl:choose>
90
							<xsl:when test="@code='a'">
91
								<xsl:value-of select="."/>
92
								<xsl:if test="position() != last()">
93
									<xsl:text>: </xsl:text>
94
								</xsl:if>
95
							</xsl:when>
96
							<xsl:when test="@code='b'">
97
								<xsl:value-of select="."/>
98
								<xsl:if test="not(position()=1)">
99
									<xsl:text>, </xsl:text>
100
								</xsl:if>
101
							</xsl:when>
102
							<xsl:when test="@code='c'">
103
								<a>
104
									<xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?idx=pb&amp;q=<xsl:value-of select="."/>
105
									</xsl:attribute>
106
									<xsl:attribute name="title"> Search for publisher "<xsl:value-of select="."/>
107
										<xsl:text>"</xsl:text>
108
									</xsl:attribute>
109
									<xsl:value-of select="."/>
110
								</a>
111
							</xsl:when>
112
							<xsl:when test="@code='d'">
113
								<xsl:if test="not(position()=1)">
114
									<xsl:text>, </xsl:text>
115
								</xsl:if>
116
								<xsl:choose>
117
									<xsl:when test="substring(.,1,1)='C'">
118
										<xsl:value-of select="substring(.,2)"/>
119
									</xsl:when>
120
									<xsl:when test="substring(.,1,1)='P'">
121
										<xsl:value-of select="substring(.,2)"/>
122
									</xsl:when>
123
									<xsl:otherwise>
124
										<xsl:value-of select="."/>
125
									</xsl:otherwise>
126
								</xsl:choose>
127
							</xsl:when>
128
						</xsl:choose>
129
					</xsl:for-each>
130
				</span>
131
			</span>
132
		</xsl:for-each>
133
	</xsl:template>
134
	<xsl:template name="tag_210-214">
135
		<span class="results_summary publication">
136
			<xsl:if test="marc:datafield[@tag=210 or @tag=214]">
137
				<xsl:choose>
138
					<xsl:when test="marc:datafield[@tag=210 and @tag=214]">
139
						<xsl:for-each select="marc:datafield[@tag=214]">
140
							<xsl:if test="not (position() = 1)">
141
								<br/>
142
							</xsl:if>
143
							<span class="label">
144
								<xsl:choose>
145
									<xsl:when test="@ind2=1">Production:
146
							</xsl:when>
147
									<xsl:when test="@ind2=2">Distribution:
148
							</xsl:when>
149
									<xsl:when test="@ind2=3">Manufacture:
150
							</xsl:when>
151
									<xsl:when test="@ind2=4">
152
										<xsl:choose>
153
											<xsl:when test="substring(marc:subfield[@code='d'],1,1)='C'">Copyright date:
154
							</xsl:when>
155
											<xsl:when test="substring(marc:subfield[@code='d'],1,1)='P'">Protection date:
156
							</xsl:when>
157
											<xsl:otherwise>Copyright date / protection date:
158
							</xsl:otherwise>
159
										</xsl:choose>
160
									</xsl:when>
161
									<xsl:otherwise>Publication:
162
							</xsl:otherwise>
163
								</xsl:choose>
164
							</span>
165
							<span class="valeur">
166
								<xsl:call-template name="addClassRtl" />
167
								<xsl:for-each select="marc:subfield">
168
									<xsl:choose>
169
										<xsl:when test="@code='a'">
170
											<xsl:value-of select="."/>
171
											<xsl:if test="position() != last()">
172
												<xsl:text>: </xsl:text>
173
											</xsl:if>
174
										</xsl:when>
175
										<xsl:when test="@code='b'">
176
											<xsl:value-of select="."/>
177
											<xsl:if test="position() != last()">
178
												<xsl:text>, </xsl:text>
179
											</xsl:if>
180
										</xsl:when>
181
										<xsl:when test="@code='c' or @code='g'">
182
											<a>
183
												<xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?idx=pb&amp;q=<xsl:value-of select="."/>
184
												</xsl:attribute>
185
												<xsl:attribute name="title"> Search for publisher "<xsl:value-of select="."/>
186
													<xsl:text>"</xsl:text>
187
												</xsl:attribute>
188
												<xsl:value-of select="."/>
189
											</a>
190
											<xsl:if test="position() != last()">
191
												<xsl:text>, </xsl:text>
192
											</xsl:if>
193
										</xsl:when>
194
										<xsl:when test="@code='d'">
195
											<xsl:value-of select="."/>
196
											<xsl:if test="position() != last()">
197
												<xsl:text>, </xsl:text>
198
											</xsl:if>
199
										</xsl:when>
200
									</xsl:choose>
201
								</xsl:for-each>
202
							</span>
203
						</xsl:for-each>
204
					</xsl:when>
205
					<xsl:when test="marc:datafield[@tag=214]">
206
						<xsl:for-each select="marc:datafield[@tag=214]">
207
							<xsl:if test="not (position() = 1)">
208
								<br/>
209
							</xsl:if>
210
							<span class="label">
211
								<xsl:choose>
212
									<xsl:when test="@ind2=1">Production:
213
							</xsl:when>
214
									<xsl:when test="@ind2=2">Distribution:
215
							</xsl:when>
216
									<xsl:when test="@ind2=3">Manufacture:
217
							</xsl:when>
218
									<xsl:when test="@ind2=4">
219
										<xsl:choose>
220
											<xsl:when test="substring(marc:subfield[@code='d'],1,1)='C'">Copyright date:
221
							</xsl:when>
222
											<xsl:when test="substring(marc:subfield[@code='d'],1,1)='P'">Protection date:
223
							</xsl:when>
224
											<xsl:otherwise>Copyright date / protection date:
225
							</xsl:otherwise>
226
										</xsl:choose>
227
									</xsl:when>
228
									<xsl:otherwise>Publication:
229
							</xsl:otherwise>
230
								</xsl:choose>
231
							</span>
232
							<span class="valeur">
233
								<xsl:call-template name="addClassRtl" />
234
								<xsl:for-each select="marc:subfield">
235
									<xsl:choose>
236
										<xsl:when test="@code='a'">
237
											<xsl:value-of select="."/>
238
											<xsl:if test="position() != last()">
239
												<xsl:text>: </xsl:text>
240
											</xsl:if>
241
										</xsl:when>
242
										<xsl:when test="@code='b'">
243
											<xsl:value-of select="."/>
244
											<xsl:if test="position() != last()">
245
												<xsl:text>, </xsl:text>
246
											</xsl:if>
247
										</xsl:when>
248
										<xsl:when test="@code='c' or @code='g'">
249
											<a>
250
												<xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?idx=pb&amp;q=<xsl:value-of select="."/>
251
												</xsl:attribute>
252
												<xsl:attribute name="title"> Search for publisher "<xsl:value-of select="."/>
253
													<xsl:text>"</xsl:text>
254
												</xsl:attribute>
255
												<xsl:value-of select="."/>
256
											</a>
257
											<xsl:if test="position() != last()">
258
												<xsl:text>, </xsl:text>
259
											</xsl:if>
260
										</xsl:when>
261
										<xsl:when test="@code='d'">
262
											<xsl:value-of select="."/>
263
											<xsl:if test="position() != last()">
264
												<xsl:text>, </xsl:text>
265
											</xsl:if>
266
										</xsl:when>
267
									</xsl:choose>
268
								</xsl:for-each>
269
							</span>
270
						</xsl:for-each>
271
					</xsl:when>
272
					<xsl:when test="marc:datafield[@tag=210]">
273
						<xsl:for-each select="marc:datafield[@tag=210]">
274
							<xsl:if test="not (position() = 1)">
275
								<br/>
276
							</xsl:if>
277
							<span class="label">Publication: </span>
278
							<span class="valeur">
279
								<xsl:call-template name="addClassRtl" />
280
								<xsl:for-each select="marc:subfield">
281
									<xsl:choose>
282
										<xsl:when test="@code='a'">
283
											<xsl:value-of select="."/>
284
											<xsl:if test="position() != last()">
285
												<xsl:text>: </xsl:text>
286
											</xsl:if>
287
										</xsl:when>
288
										<xsl:when test="@code='b'">
289
											<xsl:value-of select="."/>
290
											<xsl:if test="position() != last()">
291
												<xsl:text>, </xsl:text>
292
											</xsl:if>
293
										</xsl:when>
294
										<xsl:when test="@code='c' or @code='g'">
295
											<a>
296
												<xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?idx=pb&amp;q=<xsl:value-of select="."/>
297
												</xsl:attribute>
298
												<xsl:attribute name="title"> Search for publisher "<xsl:value-of select="."/>
299
													<xsl:text>"</xsl:text>
300
												</xsl:attribute>
301
												<xsl:value-of select="."/>
302
											</a>
303
											<xsl:if test="position() != last()">
304
												<xsl:text>, </xsl:text>
305
											</xsl:if>
306
										</xsl:when>
307
										<xsl:when test="@code='d'">
308
											<xsl:value-of select="."/>
309
											<xsl:if test="position() != last()">
310
												<xsl:text>, </xsl:text>
311
											</xsl:if>
312
										</xsl:when>
313
									</xsl:choose>
314
								</xsl:for-each>
315
							</span>
316
						</xsl:for-each>
317
					</xsl:when>
318
				</xsl:choose>
319
			</xsl:if>
320
		</span>
321
	</xsl:template>
322
	<xsl:template name="tag_215">
323
		<xsl:for-each select="marc:datafield[@tag=215]">
324
			<span class="results_summary description">
325
				<span class="label">Description: </span>
326
				<xsl:if test="marc:subfield[@code='a']">
327
					<xsl:value-of select="marc:subfield[@code='a']"/>
328
				</xsl:if>
329
				<xsl:if test="marc:subfield[@code='c']"> :
330
331
332
333
334
335
336
337
					<xsl:value-of select="marc:subfield[@code='c']"/>
338
				</xsl:if>
339
				<xsl:if test="marc:subfield[@code='d']"> ;
340
341
342
343
344
345
346
347
					<xsl:value-of select="marc:subfield[@code='d']"/>
348
				</xsl:if>
349
				<xsl:if test="marc:subfield[@code='e']"> +
350
351
352
353
11
354
12
  <xsl:template name="datafield">
13
    <xsl:param name="tag"/>
14
    <xsl:param name="ind1"><xsl:text> </xsl:text></xsl:param>
15
    <xsl:param name="ind2"><xsl:text> </xsl:text></xsl:param>
16
    <xsl:param name="subfields"/>
17
    <xsl:element name="datafield">
18
      <xsl:attribute name="tag">
19
        <xsl:value-of select="$tag"/>
20
      </xsl:attribute>
21
      <xsl:attribute name="ind1">
22
        <xsl:value-of select="$ind1"/>
23
      </xsl:attribute>
24
      <xsl:attribute name="ind2">
25
       <xsl:value-of select="$ind2"/>
26
         </xsl:attribute>
27
       <xsl:copy-of select="$subfields"/>
28
    </xsl:element>
29
  </xsl:template>
30
31
  <xsl:template name="tag_210">
32
    <span class="results_summary publication">
33
      <span class="label">Publication: </span>
34
      <xsl:for-each select="marc:datafield[@tag=210]">
35
        <span>
36
          <xsl:call-template name="addClassRtl" />
37
          <xsl:for-each select="marc:subfield">
38
            <xsl:choose>
39
              <xsl:when test="@code='c' or @code='g'">
40
                <xsl:if test="position()>1">
41
                  <xsl:text> : </xsl:text>
42
                </xsl:if>
43
                <xsl:value-of select="."/>
44
              </xsl:when>
45
              <xsl:otherwise>
46
                <xsl:if test="position()>1">
47
                  <xsl:text>, </xsl:text>
48
                </xsl:if>
49
                <xsl:value-of select="."/>
50
              </xsl:otherwise>
51
            </xsl:choose>
52
          </xsl:for-each>
53
          <xsl:if test="not (position() = last())">
54
            <xsl:text> • </xsl:text>
55
          </xsl:if>
56
        </span>
57
      </xsl:for-each>
58
    </span>
59
  </xsl:template>
60
61
  <xsl:template name="tag_215">
62
    <xsl:for-each select="marc:datafield[@tag=215]">
63
      <span class="results_summary description">
64
        <span class="label">Description: </span>
65
        <xsl:if test="marc:subfield[@code='a']">
66
          <xsl:value-of select="marc:subfield[@code='a']"/>
67
        </xsl:if>
68
        <xsl:if test="marc:subfield[@code='c']"> :
69
          <xsl:value-of select="marc:subfield[@code='c']"/>
70
        </xsl:if>
71
        <xsl:if test="marc:subfield[@code='d']"> ;
72
          <xsl:value-of select="marc:subfield[@code='d']"/>
73
        </xsl:if>
74
        <xsl:if test="marc:subfield[@code='e']"> +
75
          <xsl:value-of select="marc:subfield[@code='e']"/>
76
        </xsl:if>
77
      </span>
78
    </xsl:for-each>
79
  </xsl:template>
80
355
356
357
					<xsl:value-of select="marc:subfield[@code='e']"/>
358
				</xsl:if>
359
			</span>
360
		</xsl:for-each>
361
	</xsl:template>
81
	<xsl:template name="tag_4xx">
362
	<xsl:template name="tag_4xx">
82
    <xsl:for-each select="marc:datafield[@tag=464 or @tag=461]">
363
		<xsl:for-each select="marc:datafield[@tag=464 or @tag=461]">
83
      <span class="results_summary linked_with">
364
			<span class="results_summary linked_with">
84
        <span class="label">Linked with: </span>
365
				<span class="label">Linked with: </span>
85
        <span class="value">
366
				<span class="value">
86
          <xsl:call-template name="addClassRtl" />
367
					<xsl:call-template name="addClassRtl" />
87
          <xsl:if test="marc:subfield[@code='t']">
368
					<xsl:if test="marc:subfield[@code='t']">
88
            <xsl:value-of select="marc:subfield[@code='t']"/>
369
						<xsl:value-of select="marc:subfield[@code='t']"/>
89
          </xsl:if>
370
					</xsl:if>
90
          <xsl:if test="marc:subfield[@code='e']"> :
371
					<xsl:if test="marc:subfield[@code='e']"> :
91
            <xsl:value-of select="marc:subfield[@code='e']"/>
372
92
          </xsl:if>
373
93
          <xsl:if test="marc:subfield[@code='f']"> /
374
94
            <xsl:value-of select="marc:subfield[@code='f']"/>
375
95
          </xsl:if>
376
96
          <xsl:if test="marc:subfield[@code='v']">,
377
97
            <xsl:value-of select="marc:subfield[@code='v']"/>
378
98
          </xsl:if>
379
						<xsl:value-of select="marc:subfield[@code='e']"/>
99
        </span>
380
					</xsl:if>
100
      </span>
381
					<xsl:if test="marc:subfield[@code='f']"> /
101
    </xsl:for-each>
382
102
  </xsl:template>
383
384
385
386
387
103
388
389
						<xsl:value-of select="marc:subfield[@code='f']"/>
390
					</xsl:if>
391
					<xsl:if test="marc:subfield[@code='v']">,
392
393
394
395
396
397
398
399
						<xsl:value-of select="marc:subfield[@code='v']"/>
400
					</xsl:if>
401
				</span>
402
			</span>
403
		</xsl:for-each>
404
	</xsl:template>
104
	<xsl:template name="subfieldSelect">
405
	<xsl:template name="subfieldSelect">
105
		<xsl:param name="codes"/>
406
		<xsl:param name="codes"/>
106
		<xsl:param name="delimeter"><xsl:text> </xsl:text></xsl:param>
407
		<xsl:param name="delimeter">
408
			<xsl:text></xsl:text>
409
		</xsl:param>
107
		<xsl:param name="subdivCodes"/>
410
		<xsl:param name="subdivCodes"/>
108
		<xsl:param name="subdivDelimiter"/>
411
		<xsl:param name="subdivDelimiter"/>
109
    <xsl:param name="urlencode"/>
412
		<xsl:param name="urlencode"/>
110
		<xsl:variable name="str">
413
		<xsl:variable name="str">
111
			<xsl:for-each select="marc:subfield">
414
			<xsl:for-each select="marc:subfield">
112
				<xsl:if test="contains($codes, @code)">
415
				<xsl:if test="contains($codes, @code)">
113
                    <xsl:if test="contains($subdivCodes, @code)">
416
					<xsl:if test="contains($subdivCodes, @code)">
114
                        <xsl:value-of select="$subdivDelimiter"/>
417
						<xsl:value-of select="$subdivDelimiter"/>
115
                    </xsl:if>
418
					</xsl:if>
116
					<xsl:value-of select="text()"/><xsl:value-of select="$delimeter"/>
419
					<xsl:value-of select="text()"/>
420
					<xsl:value-of select="$delimeter"/>
117
				</xsl:if>
421
				</xsl:if>
118
			</xsl:for-each>
422
			</xsl:for-each>
119
		</xsl:variable>
423
		</xsl:variable>
120
    <xsl:choose>
424
		<xsl:choose>
121
      <xsl:when test="$urlencode=1">
425
			<xsl:when test="$urlencode=1">
122
        <xsl:value-of select="str:encode-uri(substring($str,1,string-length($str)-string-length($delimeter)), true())"/>
426
				<xsl:value-of select="str:encode-uri(substring($str,1,string-length($str)-string-length($delimeter)), true())"/>
123
      </xsl:when>
427
			</xsl:when>
124
      <xsl:otherwise>
428
			<xsl:otherwise>
125
        <xsl:value-of select="substring($str,1,string-length($str)-string-length($delimeter))"/>
429
				<xsl:value-of select="substring($str,1,string-length($str)-string-length($delimeter))"/>
126
      </xsl:otherwise>
430
			</xsl:otherwise>
127
    </xsl:choose>
431
		</xsl:choose>
128
	</xsl:template>
432
	</xsl:template>
129
130
	<xsl:template name="buildSpaces">
433
	<xsl:template name="buildSpaces">
131
		<xsl:param name="spaces"/>
434
		<xsl:param name="spaces"/>
132
		<xsl:param name="char"><xsl:text> </xsl:text></xsl:param>
435
		<xsl:param name="char">
436
			<xsl:text></xsl:text>
437
		</xsl:param>
133
		<xsl:if test="$spaces>0">
438
		<xsl:if test="$spaces>0">
134
			<xsl:value-of select="$char"/>
439
			<xsl:value-of select="$char"/>
135
			<xsl:call-template name="buildSpaces">
440
			<xsl:call-template name="buildSpaces">
Lines 138-173 Link Here
138
			</xsl:call-template>
443
			</xsl:call-template>
139
		</xsl:if>
444
		</xsl:if>
140
	</xsl:template>
445
	</xsl:template>
141
446
	<xsl:template name="buildBiblioDefaultViewURL">
142
  <xsl:template name="buildBiblioDefaultViewURL">
447
		<xsl:param name="IntranetBiblioDefaultView"/>
143
      <xsl:param name="IntranetBiblioDefaultView"/>
448
		<xsl:choose>
144
      <xsl:choose>
449
			<xsl:when test="$IntranetBiblioDefaultView='normal'">
145
          <xsl:when test="$IntranetBiblioDefaultView='normal'">
450
				<xsl:text>/cgi-bin/koha/catalogue/detail.pl?biblionumber=</xsl:text>
146
              <xsl:text>/cgi-bin/koha/catalogue/detail.pl?biblionumber=</xsl:text>
451
			</xsl:when>
147
          </xsl:when>
452
			<xsl:when test="$IntranetBiblioDefaultView='isbd'">
148
          <xsl:when test="$IntranetBiblioDefaultView='isbd'">
453
				<xsl:text>/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=</xsl:text>
149
              <xsl:text>/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=</xsl:text>
454
			</xsl:when>
150
          </xsl:when>
455
			<xsl:when test="$IntranetBiblioDefaultView='labeled_marc'">
151
          <xsl:when test="$IntranetBiblioDefaultView='labeled_marc'">
456
				<xsl:text>/cgi-bin/koha/catalogue/labeledMARCdetail.pl?biblionumber=</xsl:text>
152
              <xsl:text>/cgi-bin/koha/catalogue/labeledMARCdetail.pl?biblionumber=</xsl:text>
457
			</xsl:when>
153
          </xsl:when>
458
			<xsl:when test="$IntranetBiblioDefaultView='marc'">
154
          <xsl:when test="$IntranetBiblioDefaultView='marc'">
459
				<xsl:text>/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=</xsl:text>
155
              <xsl:text>/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=</xsl:text>
460
			</xsl:when>
156
          </xsl:when>
461
			<xsl:otherwise>
157
          <xsl:otherwise>
462
				<xsl:text>/cgi-bin/koha/catalogue/detail.pl?biblionumber=</xsl:text>
158
              <xsl:text>/cgi-bin/koha/catalogue/detail.pl?biblionumber=</xsl:text>
463
			</xsl:otherwise>
159
          </xsl:otherwise>
464
		</xsl:choose>
160
      </xsl:choose>
465
	</xsl:template>
161
  </xsl:template>
162
163
	<xsl:template name="chopSpecialCharacters">
466
	<xsl:template name="chopSpecialCharacters">
164
        <xsl:param name="title" />
467
		<xsl:param name="title" />
165
        <xsl:variable name="ntitle"
468
		<xsl:variable name="ntitle"
166
             select="translate($title, '&#x0098;&#x009C;&#xC29C;&#xC29B;&#xC298;&#xC288;&#xC289;','')"/>
469
             select="translate($title, '&#x0098;&#x009C;&#xC29C;&#xC29B;&#xC298;&#xC288;&#xC289;','')"/>
167
        <xsl:value-of select="$ntitle" />
470
		<xsl:value-of select="$ntitle" />
168
    </xsl:template>
471
	</xsl:template>
169
170
171
	<xsl:template name="chopPunctuation">
472
	<xsl:template name="chopPunctuation">
172
		<xsl:param name="chopString"/>
473
		<xsl:param name="chopString"/>
173
		<xsl:variable name="length" select="string-length($chopString)"/>
474
		<xsl:variable name="length" select="string-length($chopString)"/>
Lines 179-353 Link Here
179
				</xsl:call-template>
480
				</xsl:call-template>
180
			</xsl:when>
481
			</xsl:when>
181
			<xsl:when test="not($chopString)"/>
482
			<xsl:when test="not($chopString)"/>
182
			<xsl:otherwise><xsl:value-of select="$chopString"/></xsl:otherwise>
483
			<xsl:otherwise>
484
				<xsl:value-of select="$chopString"/>
485
			</xsl:otherwise>
183
		</xsl:choose>
486
		</xsl:choose>
184
    <xsl:text> </xsl:text>
487
		<xsl:text></xsl:text>
185
	</xsl:template>
488
	</xsl:template>
186
187
	<xsl:template name="addClassRtl">
489
	<xsl:template name="addClassRtl">
188
    <xsl:variable name="lang" select="marc:subfield[@code='7']" />
490
		<xsl:variable name="lang" select="marc:subfield[@code='7']" />
189
    <xsl:if test="$lang = 'ha' or $lang = 'Hebrew' or $lang = 'fa' or $lang = 'Arabe'">
491
		<xsl:if test="$lang = 'ha' or $lang = 'Hebrew' or $lang = 'fa' or $lang = 'Arabe'">
190
      <xsl:attribute name="class">rtl</xsl:attribute>
492
			<xsl:attribute name="class">rtl</xsl:attribute>
191
    </xsl:if>
493
		</xsl:if>
192
  </xsl:template>
494
	</xsl:template>
193
495
	<xsl:template name="tag_title">
194
  <xsl:template name="tag_title">
496
		<xsl:param name="tag" />
195
    <xsl:param name="tag" />
497
		<xsl:param name="label" />
196
    <xsl:param name="label" />
498
		<xsl:param name="spanclass" />
197
    <xsl:param name="spanclass" />
499
		<xsl:if test="marc:datafield[@tag=$tag]">
198
    <xsl:if test="marc:datafield[@tag=$tag]">
500
			<span class="results_summary {$spanclass}">
199
      <span class="results_summary {$spanclass}">
501
				<span class="label">
200
        <span class="label">
502
					<xsl:value-of select="$label"/>
201
          <xsl:value-of select="$label"/>
503
					<xsl:text>: </xsl:text>
202
          <xsl:text>: </xsl:text>
504
				</span>
203
        </span>
505
				<xsl:for-each select="marc:datafield[@tag=$tag]">
204
        <xsl:for-each select="marc:datafield[@tag=$tag]">
506
					<xsl:value-of select="marc:subfield[@code='a']" />
205
          <xsl:value-of select="marc:subfield[@code='a']" />
507
					<xsl:if test="marc:subfield[@code='d']">
206
          <xsl:if test="marc:subfield[@code='d']">
508
						<xsl:text> : </xsl:text>
207
            <xsl:text> : </xsl:text>
509
						<xsl:value-of select="marc:subfield[@code='e']"/>
208
            <xsl:value-of select="marc:subfield[@code='e']"/>
510
					</xsl:if>
209
          </xsl:if>
511
					<xsl:if test="marc:subfield[@code='e']">
210
          <xsl:if test="marc:subfield[@code='e']">
512
						<xsl:for-each select="marc:subfield[@code='e']">
211
            <xsl:for-each select="marc:subfield[@code='e']">
513
							<xsl:text></xsl:text>
212
              <xsl:text> </xsl:text>
514
							<xsl:value-of select="."/>
213
              <xsl:value-of select="."/>
515
						</xsl:for-each>
214
            </xsl:for-each>
516
					</xsl:if>
215
          </xsl:if>
517
					<xsl:if test="marc:subfield[@code='f']">
216
          <xsl:if test="marc:subfield[@code='f']">
518
						<xsl:text> / </xsl:text>
217
            <xsl:text> / </xsl:text>
519
						<xsl:value-of select="marc:subfield[@code='f']"/>
218
            <xsl:value-of select="marc:subfield[@code='f']"/>
520
					</xsl:if>
219
          </xsl:if>
521
					<xsl:if test="marc:subfield[@code='h']">
220
          <xsl:if test="marc:subfield[@code='h']">
522
						<xsl:text>, </xsl:text>
221
            <xsl:text>, </xsl:text>
523
						<xsl:value-of select="marc:subfield[@code='h']"/>
222
            <xsl:value-of select="marc:subfield[@code='h']"/>
524
					</xsl:if>
223
          </xsl:if>
525
					<xsl:if test="marc:subfield[@code='i']">
224
          <xsl:if test="marc:subfield[@code='i']">
526
						<xsl:text>, </xsl:text>
225
            <xsl:text>, </xsl:text>
527
						<xsl:value-of select="marc:subfield[@code='i']"/>
226
            <xsl:value-of select="marc:subfield[@code='i']"/>
528
					</xsl:if>
227
          </xsl:if>
529
					<xsl:if test="marc:subfield[@code='v']">
228
          <xsl:if test="marc:subfield[@code='v']">
530
						<xsl:text>, </xsl:text>
229
            <xsl:text>, </xsl:text>
531
						<xsl:value-of select="marc:subfield[@code='v']"/>
230
            <xsl:value-of select="marc:subfield[@code='v']"/>
532
					</xsl:if>
231
          </xsl:if>
533
					<xsl:if test="marc:subfield[@code='x']">
232
          <xsl:if test="marc:subfield[@code='x']">
534
						<xsl:text>, </xsl:text>
233
            <xsl:text>, </xsl:text>
535
						<xsl:value-of select="marc:subfield[@code='x']"/>
234
            <xsl:value-of select="marc:subfield[@code='x']"/>
536
					</xsl:if>
235
          </xsl:if>
537
					<xsl:if test="marc:subfield[@code='z']">
236
          <xsl:if test="marc:subfield[@code='z']">
538
						<xsl:text>, </xsl:text>
237
            <xsl:text>, </xsl:text>
539
						<xsl:value-of select="marc:subfield[@code='z']"/>
238
            <xsl:value-of select="marc:subfield[@code='z']"/>
540
					</xsl:if>
239
          </xsl:if>
541
				</xsl:for-each>
240
        </xsl:for-each>
542
			</span>
241
      </span>
543
		</xsl:if>
242
    </xsl:if>
544
	</xsl:template>
243
  </xsl:template>
545
	<xsl:template name="tag_subject">
244
546
		<xsl:param name="tag" />
245
  <xsl:template name="tag_subject">
547
		<xsl:param name="label" />
246
    <xsl:param name="tag" />
548
		<xsl:param name="spanclass"/>
247
    <xsl:param name="label" />
549
		<xsl:if test="marc:datafield[@tag=$tag]">
248
    <xsl:param name="spanclass"/>
550
			<span class="results_summary subjects {$spanclass}">
249
    <xsl:if test="marc:datafield[@tag=$tag]">
551
				<span class="label">
250
      <span class="results_summary subjects {$spanclass}">
552
					<xsl:value-of select="$label"/>
251
        <span class="label">
553
					<xsl:text>: </xsl:text>
252
          <xsl:value-of select="$label"/>
554
				</span>
253
          <xsl:text>: </xsl:text>
555
				<xsl:for-each select="marc:datafield[@tag=$tag]">
254
        </span>
556
					<a>
255
        <xsl:for-each select="marc:datafield[@tag=$tag]">
557
						<xsl:choose>
256
          <a>
558
							<xsl:when test="marc:subfield[@code=9]">
257
            <xsl:choose>
559
								<xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=an:
258
              <xsl:when test="marc:subfield[@code=9]">
560
259
                <xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=an:<xsl:value-of select="str:encode-uri(marc:subfield[@code=9], true())"/></xsl:attribute>
561
260
              </xsl:when>
562
261
              <xsl:otherwise>
563
262
                <xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=su:<xsl:value-of select="str:encode-uri(marc:subfield[@code='a'], true())"/></xsl:attribute>
263
              </xsl:otherwise>
264
            </xsl:choose>
265
            <xsl:call-template name="chopPunctuation">
266
              <xsl:with-param name="chopString">
267
                <xsl:call-template name="subfieldSelect">
268
                    <xsl:with-param name="codes">abcdjptvxyz</xsl:with-param>
269
                    <xsl:with-param name="subdivCodes">jpxyz</xsl:with-param>
270
                    <xsl:with-param name="subdivDelimiter">-- </xsl:with-param>
271
                </xsl:call-template>
272
              </xsl:with-param>
273
            </xsl:call-template>
274
          </a>
275
          <xsl:if test="not (position()=last())">
276
            <xsl:text> | </xsl:text>
277
          </xsl:if>
278
        </xsl:for-each>
279
      </span>
280
    </xsl:if>
281
  </xsl:template>
282
283
  <xsl:template name="tag_7xx">
284
    <xsl:param name="tag" />
285
    <xsl:param name="label" />
286
    <xsl:param name="spanclass" />
287
    <xsl:if test="marc:datafield[@tag=$tag]">
288
      <span class="results_summary author {$spanclass}">
289
        <span class="label">
290
          <xsl:value-of select="$label" />
291
          <xsl:text>: </xsl:text>
292
        </span>
293
        <span class="value">
294
          <xsl:for-each select="marc:datafield[@tag=$tag]">
295
            <xsl:call-template name="addClassRtl" />
296
            <a>
297
              <xsl:choose>
298
                <xsl:when test="marc:subfield[@code=9]">
299
                  <xsl:attribute name="href">
300
                    <xsl:text>/cgi-bin/koha/catalogue/search.pl?q=an:</xsl:text>
301
                    <xsl:value-of select="str:encode-uri(marc:subfield[@code=9], true())"/>
302
                  </xsl:attribute>
303
                </xsl:when>
304
                <xsl:otherwise>
305
                    <xsl:attribute name="href">
306
                      <xsl:text>/cgi-bin/koha/catalogue/search.pl?q=au:</xsl:text>
307
                      <xsl:value-of select="str:encode-uri(marc:subfield[@code='a'], true())"/>
308
                      <xsl:text>%20</xsl:text>
309
                      <xsl:value-of select="str:encode-uri(marc:subfield[@code='b'], true())"/>
310
                  </xsl:attribute>
311
                </xsl:otherwise>
312
              </xsl:choose>
313
              <xsl:if test="marc:subfield[@code='a']">
314
                <xsl:value-of select="marc:subfield[@code='a']"/>
315
              </xsl:if>
316
              <xsl:if test="marc:subfield[@code='b']">
317
                <xsl:text>, </xsl:text>
318
                <xsl:value-of select="marc:subfield[@code='b']"/>
319
              </xsl:if>
320
              <xsl:if test="marc:subfield[@code='c']">
321
                <xsl:text>, </xsl:text>
322
                <xsl:value-of select="marc:subfield[@code='c']"/>
323
              </xsl:if>
324
              <xsl:if test="marc:subfield[@code='d']">
325
                <xsl:text> </xsl:text>
326
                <xsl:value-of select="marc:subfield[@code='d']"/>
327
              </xsl:if>
328
              <xsl:if test="marc:subfield[@code='f']">
329
                <span dir="ltr">
330
                <xsl:text> (</xsl:text>
331
                <xsl:value-of select="marc:subfield[@code='f']"/>
332
                <xsl:text>)</xsl:text>
333
                </span>
334
              </xsl:if>
335
              <xsl:if test="marc:subfield[@code='g']">
336
                <xsl:text> </xsl:text>
337
                <xsl:value-of select="marc:subfield[@code='g']"/>
338
              </xsl:if>
339
              <xsl:if test="marc:subfield[@code='p']">
340
                <xsl:text> </xsl:text>
341
                <xsl:value-of select="marc:subfield[@code='p']"/>
342
              </xsl:if>
343
            </a>
344
            <xsl:if test="not (position() = last())">
345
              <xsl:text> ; </xsl:text>
346
            </xsl:if>
347
          </xsl:for-each>
348
        </span>
349
      </span>
350
    </xsl:if>
351
  </xsl:template>
352
564
565
566
									<xsl:value-of select="str:encode-uri(marc:subfield[@code=9], true())"/>
567
								</xsl:attribute>
568
							</xsl:when>
569
							<xsl:otherwise>
570
								<xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=su:
571
572
573
574
575
576
577
									<xsl:value-of select="str:encode-uri(marc:subfield[@code='a'], true())"/>
578
								</xsl:attribute>
579
							</xsl:otherwise>
580
						</xsl:choose>
581
						<xsl:call-template name="chopPunctuation">
582
							<xsl:with-param name="chopString">
583
								<xsl:call-template name="subfieldSelect">
584
									<xsl:with-param name="codes">abcdjptvxyz</xsl:with-param>
585
									<xsl:with-param name="subdivCodes">jpxyz</xsl:with-param>
586
									<xsl:with-param name="subdivDelimiter">-- </xsl:with-param>
587
								</xsl:call-template>
588
							</xsl:with-param>
589
						</xsl:call-template>
590
					</a>
591
					<xsl:if test="not (position()=last())">
592
						<xsl:text> | </xsl:text>
593
					</xsl:if>
594
				</xsl:for-each>
595
			</span>
596
		</xsl:if>
597
	</xsl:template>
598
	<xsl:template name="tag_7xx">
599
		<xsl:param name="tag" />
600
		<xsl:param name="label" />
601
		<xsl:param name="spanclass" />
602
		<xsl:if test="marc:datafield[@tag=$tag]">
603
			<span class="results_summary author {$spanclass}">
604
				<span class="label">
605
					<xsl:value-of select="$label" />
606
					<xsl:text>: </xsl:text>
607
				</span>
608
				<span class="value">
609
					<xsl:for-each select="marc:datafield[@tag=$tag]">
610
						<xsl:call-template name="addClassRtl" />
611
						<a>
612
							<xsl:choose>
613
								<xsl:when test="marc:subfield[@code=9]">
614
									<xsl:attribute name="href">
615
										<xsl:text>/cgi-bin/koha/catalogue/search.pl?q=an:</xsl:text>
616
										<xsl:value-of select="str:encode-uri(marc:subfield[@code=9], true())"/>
617
									</xsl:attribute>
618
								</xsl:when>
619
								<xsl:otherwise>
620
									<xsl:attribute name="href">
621
										<xsl:text>/cgi-bin/koha/catalogue/search.pl?q=au:</xsl:text>
622
										<xsl:value-of select="str:encode-uri(marc:subfield[@code='a'], true())"/>
623
										<xsl:text>%20</xsl:text>
624
										<xsl:value-of select="str:encode-uri(marc:subfield[@code='b'], true())"/>
625
									</xsl:attribute>
626
								</xsl:otherwise>
627
							</xsl:choose>
628
							<xsl:if test="marc:subfield[@code='a']">
629
								<xsl:value-of select="marc:subfield[@code='a']"/>
630
							</xsl:if>
631
							<xsl:if test="marc:subfield[@code='b']">
632
								<xsl:text>, </xsl:text>
633
								<xsl:value-of select="marc:subfield[@code='b']"/>
634
							</xsl:if>
635
							<xsl:if test="marc:subfield[@code='c']">
636
								<xsl:text>, </xsl:text>
637
								<xsl:value-of select="marc:subfield[@code='c']"/>
638
							</xsl:if>
639
							<xsl:if test="marc:subfield[@code='d']">
640
								<xsl:text></xsl:text>
641
								<xsl:value-of select="marc:subfield[@code='d']"/>
642
							</xsl:if>
643
							<xsl:if test="marc:subfield[@code='f']">
644
								<span dir="ltr">
645
									<xsl:text> (</xsl:text>
646
									<xsl:value-of select="marc:subfield[@code='f']"/>
647
									<xsl:text>)</xsl:text>
648
								</span>
649
							</xsl:if>
650
							<xsl:if test="marc:subfield[@code='g']">
651
								<xsl:text></xsl:text>
652
								<xsl:value-of select="marc:subfield[@code='g']"/>
653
							</xsl:if>
654
							<xsl:if test="marc:subfield[@code='p']">
655
								<xsl:text></xsl:text>
656
								<xsl:value-of select="marc:subfield[@code='p']"/>
657
							</xsl:if>
658
						</a>
659
						<xsl:if test="not (position() = last())">
660
							<xsl:text> ; </xsl:text>
661
						</xsl:if>
662
					</xsl:for-each>
663
				</span>
664
			</span>
665
		</xsl:if>
666
	</xsl:template>
353
</xsl:stylesheet>
667
</xsl:stylesheet>
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/UNIMARCslim2OPACDetail.xsl (-1 / +13 lines)
Lines 186-192 Link Here
186
    <xsl:with-param name="spanclass">edition</xsl:with-param>
186
    <xsl:with-param name="spanclass">edition</xsl:with-param>
187
  </xsl:call-template>
187
  </xsl:call-template>
188
188
189
  <xsl:call-template name="tag_210" />
189
  <xsl:if test="(marc:datafield[@tag=214] or marc:datafield[@tag=210])">
190
    <xsl:choose>
191
        <xsl:when test="(marc:datafield[@tag=214] and  marc:datafield[@tag=210])">
192
            <xsl:call-template name="tag_214" />
193
        </xsl:when>
194
        <xsl:when test="(marc:datafield[@tag=214])">
195
            <xsl:call-template name="tag_214" />
196
        </xsl:when>
197
        <xsl:when test="(marc:datafield[@tag=210])">
198
            <xsl:call-template name="tag_210" />
199
        </xsl:when>
200
    </xsl:choose>
201
  </xsl:if>
190
202
191
  <xsl:call-template name="tag_215" />
203
  <xsl:call-template name="tag_215" />
192
204
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/UNIMARCslim2OPACResults.xsl (-1 / +3 lines)
Lines 151-157 Link Here
151
    <xsl:with-param name="spanclass">piece_analytic_level</xsl:with-param>
151
    <xsl:with-param name="spanclass">piece_analytic_level</xsl:with-param>
152
  </xsl:call-template>
152
  </xsl:call-template>
153
153
154
  <xsl:call-template name="tag_210" />
154
  <xsl:if test="marc:datafield[@tag=210 or @tag=214]">
155
      <xsl:call-template name="tag_210-214" />
156
  </xsl:if>
155
157
156
  <xsl:call-template name="tag_215" />
158
  <xsl:call-template name="tag_215" />
157
159
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/UNIMARCslimUtils.xsl (-1 / +264 lines)
Lines 219-224 Link Here
219
    </span>
219
    </span>
220
  </xsl:template>
220
  </xsl:template>
221
221
222
  <xsl:template name="tag_210-214">
223
      <span class="results_summary publication">
224
          <xsl:if test="marc:datafield[@tag=210 or @tag=214]">
225
              <xsl:choose>
226
                  <xsl:when test="marc:datafield[@tag=210 and @tag=214]">
227
                      <xsl:for-each select="marc:datafield[@tag=214]">
228
                          <xsl:if test="not (position() = 1)">
229
                              <br/>
230
                          </xsl:if>
231
                          <span class="label">
232
                              <xsl:choose>
233
                                  <xsl:when test="@ind2=1">Production:
234
                          </xsl:when>
235
                                  <xsl:when test="@ind2=2">Distribution:
236
                          </xsl:when>
237
                                  <xsl:when test="@ind2=3">Manufacture:
238
                          </xsl:when>
239
                                  <xsl:when test="@ind2=4">
240
                                      <xsl:choose>
241
                                          <xsl:when test="substring(marc:subfield[@code='d'],1,1)='C'">Copyright date:
242
                          </xsl:when>
243
                                          <xsl:when test="substring(marc:subfield[@code='d'],1,1)='P'">Protection date:
244
                          </xsl:when>
245
                                          <xsl:otherwise>Copyright date / protection date:
246
                          </xsl:otherwise>
247
                                      </xsl:choose>
248
                                  </xsl:when>
249
                                  <xsl:otherwise>Publication:
250
                          </xsl:otherwise>
251
                              </xsl:choose>
252
                          </span>
253
                          <span class="valeur">
254
                              <xsl:call-template name="addClassRtl" />
255
                              <xsl:for-each select="marc:subfield">
256
                                  <xsl:choose>
257
                                      <xsl:when test="@code='a'">
258
                                          <xsl:value-of select="."/>
259
                                          <xsl:if test="position() != last()">
260
                                              <xsl:text>: </xsl:text>
261
                                          </xsl:if>
262
                                      </xsl:when>
263
                                      <xsl:when test="@code='b'">
264
                                          <xsl:value-of select="."/>
265
                                          <xsl:if test="position() != last()">
266
                                              <xsl:text>, </xsl:text>
267
                                          </xsl:if>
268
                                      </xsl:when>
269
                                      <xsl:when test="@code='c' or @code='g'">
270
                                          <a>
271
                                              <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?idx=pb&amp;q=<xsl:value-of select="."/>
272
                                              </xsl:attribute>
273
                                              <xsl:attribute name="title"> Search for publisher "<xsl:value-of select="."/>
274
                                                  <xsl:text>"</xsl:text>
275
                                              </xsl:attribute>
276
                                              <xsl:value-of select="."/>
277
                                          </a>
278
                                          <xsl:if test="position() != last()">
279
                                              <xsl:text>, </xsl:text>
280
                                          </xsl:if>
281
                                      </xsl:when>
282
                                      <xsl:when test="@code='d'">
283
                                          <xsl:value-of select="."/>
284
                                          <xsl:if test="position() != last()">
285
                                              <xsl:text>, </xsl:text>
286
                                          </xsl:if>
287
                                      </xsl:when>
288
                                  </xsl:choose>
289
                              </xsl:for-each>
290
                          </span>
291
                      </xsl:for-each>
292
                  </xsl:when>
293
                  <xsl:when test="marc:datafield[@tag=214]">
294
                      <xsl:for-each select="marc:datafield[@tag=214]">
295
                          <xsl:if test="not (position() = 1)">
296
                              <br/>
297
                          </xsl:if>
298
                          <span class="label">
299
                              <xsl:choose>
300
                                  <xsl:when test="@ind2=1">Production:
301
                          </xsl:when>
302
                                  <xsl:when test="@ind2=2">Distribution:
303
                          </xsl:when>
304
                                  <xsl:when test="@ind2=3">Manufacture:
305
                          </xsl:when>
306
                                  <xsl:when test="@ind2=4">
307
                                      <xsl:choose>
308
                                          <xsl:when test="substring(marc:subfield[@code='d'],1,1)='C'">Copyright date:
309
                          </xsl:when>
310
                                          <xsl:when test="substring(marc:subfield[@code='d'],1,1)='P'">Protection date:
311
                          </xsl:when>
312
                                          <xsl:otherwise>Copyright date / protection date:
313
                          </xsl:otherwise>
314
                                      </xsl:choose>
315
                                  </xsl:when>
316
                                  <xsl:otherwise>Publication:
317
                          </xsl:otherwise>
318
                              </xsl:choose>
319
                          </span>
320
                          <span class="valeur">
321
                              <xsl:call-template name="addClassRtl" />
322
                              <xsl:for-each select="marc:subfield">
323
                                  <xsl:choose>
324
                                      <xsl:when test="@code='a'">
325
                                          <xsl:value-of select="."/>
326
                                          <xsl:if test="position() != last()">
327
                                              <xsl:text>: </xsl:text>
328
                                          </xsl:if>
329
                                      </xsl:when>
330
                                      <xsl:when test="@code='b'">
331
                                          <xsl:value-of select="."/>
332
                                          <xsl:if test="position() != last()">
333
                                              <xsl:text>, </xsl:text>
334
                                          </xsl:if>
335
                                      </xsl:when>
336
                                      <xsl:when test="@code='c' or @code='g'">
337
                                          <a>
338
                                              <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?idx=pb&amp;q=<xsl:value-of select="."/>
339
                                              </xsl:attribute>
340
                                              <xsl:attribute name="title"> Search for publisher "<xsl:value-of select="."/>
341
                                                  <xsl:text>"</xsl:text>
342
                                              </xsl:attribute>
343
                                              <xsl:value-of select="."/>
344
                                          </a>
345
                                          <xsl:if test="position() != last()">
346
                                              <xsl:text>, </xsl:text>
347
                                          </xsl:if>
348
                                      </xsl:when>
349
                                      <xsl:when test="@code='d'">
350
                                          <xsl:value-of select="."/>
351
                                          <xsl:if test="position() != last()">
352
                                              <xsl:text>, </xsl:text>
353
                                          </xsl:if>
354
                                      </xsl:when>
355
                                  </xsl:choose>
356
                              </xsl:for-each>
357
                          </span>
358
                      </xsl:for-each>
359
                  </xsl:when>
360
                  <xsl:when test="marc:datafield[@tag=210]">
361
                      <xsl:for-each select="marc:datafield[@tag=210]">
362
                          <xsl:if test="not (position() = 1)">
363
                              <br/>
364
                          </xsl:if>
365
                          <span class="label">Publication: </span>
366
                          <span class="valeur">
367
                              <xsl:call-template name="addClassRtl" />
368
                              <xsl:for-each select="marc:subfield">
369
                                  <xsl:choose>
370
                                      <xsl:when test="@code='a'">
371
                                          <xsl:value-of select="."/>
372
                                          <xsl:if test="position() != last()">
373
                                              <xsl:text>: </xsl:text>
374
                                          </xsl:if>
375
                                      </xsl:when>
376
                                      <xsl:when test="@code='b'">
377
                                          <xsl:value-of select="."/>
378
                                          <xsl:if test="position() != last()">
379
                                              <xsl:text>, </xsl:text>
380
                                          </xsl:if>
381
                                      </xsl:when>
382
                                      <xsl:when test="@code='c' or @code='g'">
383
                                          <a>
384
                                              <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?idx=pb&amp;q=<xsl:value-of select="."/>
385
                                              </xsl:attribute>
386
                                              <xsl:attribute name="title"> Search for publisher "<xsl:value-of select="."/>
387
                                                  <xsl:text>"</xsl:text>
388
                                              </xsl:attribute>
389
                                              <xsl:value-of select="."/>
390
                                          </a>
391
                                          <xsl:if test="position() != last()">
392
                                              <xsl:text>, </xsl:text>
393
                                          </xsl:if>
394
                                      </xsl:when>
395
                                      <xsl:when test="@code='d'">
396
                                          <xsl:value-of select="."/>
397
                                          <xsl:if test="position() != last()">
398
                                              <xsl:text>, </xsl:text>
399
                                          </xsl:if>
400
                                      </xsl:when>
401
                                  </xsl:choose>
402
                              </xsl:for-each>
403
                          </span>
404
                      </xsl:for-each>
405
                  </xsl:when>
406
              </xsl:choose>
407
          </xsl:if>
408
      </span>
409
  </xsl:template>
410
411
  <xsl:template name="tag_214">
412
      <xsl:for-each select="marc:datafield[@tag=214]">
413
          <xsl:sort select="@ind2" data-type="number" />
414
          <span class="results_summary publication">
415
              <span class="label">
416
                  <xsl:choose>
417
                      <xsl:when test="@ind2=1">Production:
418
   </xsl:when>
419
                      <xsl:when test="@ind2=2">Distribution:
420
   </xsl:when>
421
                      <xsl:when test="@ind2=3">Manufacture:
422
   </xsl:when>
423
                      <xsl:when test="@ind2=4">
424
                          <xsl:choose>
425
                              <xsl:when test="substring(marc:subfield[@code='d'],1,1)='C'">Copyright date:
426
   </xsl:when>
427
                              <xsl:when test="substring(marc:subfield[@code='d'],1,1)='P'">Protection date:
428
   </xsl:when>
429
                              <xsl:otherwise>Copyright date / protection date:
430
   </xsl:otherwise>
431
                          </xsl:choose>
432
                      </xsl:when>
433
                      <xsl:otherwise>Publication:
434
   </xsl:otherwise>
435
                  </xsl:choose>
436
              </span>
437
              <span>
438
                  <xsl:call-template name="addClassRtl" />
439
                  <xsl:for-each select="marc:subfield">
440
                      <xsl:choose>
441
                          <xsl:when test="@code='a'">
442
                              <xsl:value-of select="."/>
443
                              <xsl:if test="position() != last()">
444
                                  <xsl:text>: </xsl:text>
445
                              </xsl:if>
446
                          </xsl:when>
447
                          <xsl:when test="@code='b'">
448
                              <xsl:value-of select="."/>
449
                              <xsl:if test="not(position()=1)">
450
                                  <xsl:text>, </xsl:text>
451
                              </xsl:if>
452
                          </xsl:when>
453
                          <xsl:when test="@code='c'">
454
                              <a>
455
                                  <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?idx=pb&amp;q=<xsl:value-of select="."/>
456
                                  </xsl:attribute>
457
                                  <xsl:attribute name="title"> Search for publisher "<xsl:value-of select="."/>
458
                                      <xsl:text>"</xsl:text>
459
                                  </xsl:attribute>
460
                                  <xsl:value-of select="."/>
461
                              </a>
462
                          </xsl:when>
463
                          <xsl:when test="@code='d'">
464
                              <xsl:if test="not(position()=1)">
465
                                  <xsl:text>, </xsl:text>
466
                              </xsl:if>
467
                              <xsl:choose>
468
                                  <xsl:when test="substring(.,1,1)='C'">
469
                                      <xsl:value-of select="substring(.,2)"/>
470
                                  </xsl:when>
471
                                  <xsl:when test="substring(.,1,1)='P'">
472
                                      <xsl:value-of select="substring(.,2)"/>
473
                                  </xsl:when>
474
                                  <xsl:otherwise>
475
                                      <xsl:value-of select="."/>
476
                                  </xsl:otherwise>
477
                              </xsl:choose>
478
                          </xsl:when>
479
                      </xsl:choose>
480
                  </xsl:for-each>
481
              </span>
482
          </span>
483
      </xsl:for-each>
484
  </xsl:template>
485
222
  <xsl:template name="tag_215">
486
  <xsl:template name="tag_215">
223
    <xsl:for-each select="marc:datafield[@tag=215]">
487
    <xsl:for-each select="marc:datafield[@tag=215]">
224
      <span class="results_summary description">
488
      <span class="results_summary description">
225
- 

Return to bug 30430