Lines 8-13
Link Here
|
8 |
exclude-result-prefixes="marc items"> |
8 |
exclude-result-prefixes="marc items"> |
9 |
<xsl:import href="MARC21slimUtils.xsl"/> |
9 |
<xsl:import href="MARC21slimUtils.xsl"/> |
10 |
<xsl:output method = "html" indent="yes" omit-xml-declaration = "yes" encoding="UTF-8"/> |
10 |
<xsl:output method = "html" indent="yes" omit-xml-declaration = "yes" encoding="UTF-8"/> |
|
|
11 |
|
11 |
<xsl:template match="/"> |
12 |
<xsl:template match="/"> |
12 |
<xsl:apply-templates/> |
13 |
<xsl:apply-templates/> |
13 |
</xsl:template> |
14 |
</xsl:template> |
Lines 91-100
Link Here
|
91 |
</xsl:choose> |
92 |
</xsl:choose> |
92 |
</xsl:variable> |
93 |
</xsl:variable> |
93 |
|
94 |
|
|
|
95 |
<!-- Schema.org type --> |
96 |
<xsl:variable name="schemaOrgType"> |
97 |
<xsl:choose> |
98 |
<xsl:when test="$materialTypeLabel='Book'">Book</xsl:when> |
99 |
<xsl:when test="$materialTypeLabel='Map'">Map</xsl:when> |
100 |
<xsl:when test="$materialTypeLabel='Music'">MusicAlbum</xsl:when> |
101 |
<xsl:otherwise>CreativeWork</xsl:otherwise> |
102 |
</xsl:choose> |
103 |
</xsl:variable> |
104 |
|
105 |
<!-- Wrapper div for our schema.org object --> |
106 |
<xsl:element name="div"> |
107 |
<xsl:attribute name="class">record</xsl:attribute> |
108 |
<xsl:attribute name="vocab">http://schema.org/</xsl:attribute> |
109 |
<xsl:attribute name="typeof"><xsl:value-of select='$schemaOrgType' /> Product</xsl:attribute> |
110 |
<xsl:attribute name="resource">#record</xsl:attribute> |
111 |
|
94 |
<!-- Title Statement --> |
112 |
<!-- Title Statement --> |
95 |
<!-- Alternate Graphic Representation (MARC 880) --> |
113 |
<!-- Alternate Graphic Representation (MARC 880) --> |
96 |
<xsl:if test="$display880"> |
114 |
<xsl:if test="$display880"> |
97 |
<h1 class="title"> |
115 |
<h1 class="title" property="alternativeHeadline"> |
98 |
<xsl:call-template name="m880Select"> |
116 |
<xsl:call-template name="m880Select"> |
99 |
<xsl:with-param name="basetags">245</xsl:with-param> |
117 |
<xsl:with-param name="basetags">245</xsl:with-param> |
100 |
<xsl:with-param name="codes">abhfgknps</xsl:with-param> |
118 |
<xsl:with-param name="codes">abhfgknps</xsl:with-param> |
Lines 103-109
Link Here
|
103 |
</xsl:if> |
121 |
</xsl:if> |
104 |
|
122 |
|
105 |
<xsl:if test="marc:datafield[@tag=245]"> |
123 |
<xsl:if test="marc:datafield[@tag=245]"> |
106 |
<h1 class="title"> |
124 |
<h1 class="title" property="name"> |
107 |
<xsl:for-each select="marc:datafield[@tag=245]"> |
125 |
<xsl:for-each select="marc:datafield[@tag=245]"> |
108 |
<xsl:call-template name="subfieldSelect"> |
126 |
<xsl:call-template name="subfieldSelect"> |
109 |
<xsl:with-param name="codes">a</xsl:with-param> |
127 |
<xsl:with-param name="codes">a</xsl:with-param> |
Lines 141-147
Link Here
|
141 |
</xsl:if> |
159 |
</xsl:if> |
142 |
<xsl:choose> |
160 |
<xsl:choose> |
143 |
<xsl:when test="marc:datafield[@tag=100] or marc:datafield[@tag=110] or marc:datafield[@tag=111] or marc:datafield[@tag=700] or marc:datafield[@tag=710] or marc:datafield[@tag=711]"> |
161 |
<xsl:when test="marc:datafield[@tag=100] or marc:datafield[@tag=110] or marc:datafield[@tag=111] or marc:datafield[@tag=700] or marc:datafield[@tag=710] or marc:datafield[@tag=711]"> |
144 |
<h5 class="author">by |
162 |
<h5 class="author" property="author">by |
145 |
<xsl:call-template name="showAuthor"> |
163 |
<xsl:call-template name="showAuthor"> |
146 |
<xsl:with-param name="authorfield" select="marc:datafield[@tag=100 or @tag=110 or @tag=111 or @tag=700 or @tag=710 or @tag=711]"/> |
164 |
<xsl:with-param name="authorfield" select="marc:datafield[@tag=100 or @tag=110 or @tag=111 or @tag=700 or @tag=710 or @tag=711]"/> |
147 |
<xsl:with-param name="UseAuthoritiesForTracings" select="$UseAuthoritiesForTracings"/> |
165 |
<xsl:with-param name="UseAuthoritiesForTracings" select="$UseAuthoritiesForTracings"/> |
Lines 308-335
Link Here
|
308 |
<xsl:if test="marc:datafield[@tag=260]"> |
326 |
<xsl:if test="marc:datafield[@tag=260]"> |
309 |
<span class="results_summary publisher"><span class="label">Publisher: </span> |
327 |
<span class="results_summary publisher"><span class="label">Publisher: </span> |
310 |
<xsl:for-each select="marc:datafield[@tag=260]"> |
328 |
<xsl:for-each select="marc:datafield[@tag=260]"> |
|
|
329 |
<span property="publisher" typeof="Organization"> |
311 |
<xsl:if test="marc:subfield[@code='a']"> |
330 |
<xsl:if test="marc:subfield[@code='a']"> |
|
|
331 |
<span property="location"> |
312 |
<xsl:call-template name="subfieldSelect"> |
332 |
<xsl:call-template name="subfieldSelect"> |
313 |
<xsl:with-param name="codes">a</xsl:with-param> |
333 |
<xsl:with-param name="codes">a</xsl:with-param> |
314 |
</xsl:call-template> |
334 |
</xsl:call-template> |
|
|
335 |
</span> |
315 |
</xsl:if> |
336 |
</xsl:if> |
316 |
<xsl:text> </xsl:text> |
337 |
<xsl:text> </xsl:text> |
317 |
<xsl:if test="marc:subfield[@code='b']"> |
338 |
<xsl:if test="marc:subfield[@code='b']"> |
318 |
<a href="/cgi-bin/koha/opac-search.pl?q=pb:{marc:subfield[@code='b']}"> |
339 |
<a href="/cgi-bin/koha/opac-search.pl?q=pb:{marc:subfield[@code='b']}"> |
|
|
340 |
<span property="name"> |
319 |
<xsl:call-template name="subfieldSelect"> |
341 |
<xsl:call-template name="subfieldSelect"> |
320 |
<xsl:with-param name="codes">b</xsl:with-param> |
342 |
<xsl:with-param name="codes">b</xsl:with-param> |
321 |
</xsl:call-template> |
343 |
</xsl:call-template> |
|
|
344 |
</span> |
322 |
</a> |
345 |
</a> |
323 |
</xsl:if> |
346 |
</xsl:if> |
|
|
347 |
</span> |
324 |
<xsl:text> </xsl:text> |
348 |
<xsl:text> </xsl:text> |
325 |
<xsl:call-template name="chopPunctuation"> |
349 |
<xsl:if test="marc:subfield[@code='c' or @code='g']"> |
326 |
<xsl:with-param name="chopString"> |
350 |
<span property="datePublished"> |
327 |
<xsl:call-template name="subfieldSelect"> |
351 |
<xsl:call-template name="chopPunctuation"> |
328 |
<xsl:with-param name="codes">cg</xsl:with-param> |
352 |
<xsl:with-param name="chopString"> |
329 |
</xsl:call-template> |
353 |
<xsl:call-template name="subfieldSelect"> |
330 |
</xsl:with-param> |
354 |
<xsl:with-param name="codes">cg</xsl:with-param> |
331 |
</xsl:call-template> |
355 |
</xsl:call-template> |
332 |
<xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose> |
356 |
</xsl:with-param> |
|
|
357 |
</xsl:call-template> |
358 |
</span> |
359 |
</xsl:if> |
360 |
<xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose> |
333 |
</xsl:for-each> |
361 |
</xsl:for-each> |
334 |
</span> |
362 |
</span> |
335 |
</xsl:if> |
363 |
</xsl:if> |
Lines 347-352
Link Here
|
347 |
<xsl:if test="marc:datafield[@tag=250]"> |
375 |
<xsl:if test="marc:datafield[@tag=250]"> |
348 |
<span class="results_summary edition"><span class="label">Edition: </span> |
376 |
<span class="results_summary edition"><span class="label">Edition: </span> |
349 |
<xsl:for-each select="marc:datafield[@tag=250]"> |
377 |
<xsl:for-each select="marc:datafield[@tag=250]"> |
|
|
378 |
<span property="bookEdition"> |
350 |
<xsl:call-template name="chopPunctuation"> |
379 |
<xsl:call-template name="chopPunctuation"> |
351 |
<xsl:with-param name="chopString"> |
380 |
<xsl:with-param name="chopString"> |
352 |
<xsl:call-template name="subfieldSelect"> |
381 |
<xsl:call-template name="subfieldSelect"> |
Lines 354-359
Link Here
|
354 |
</xsl:call-template> |
383 |
</xsl:call-template> |
355 |
</xsl:with-param> |
384 |
</xsl:with-param> |
356 |
</xsl:call-template> |
385 |
</xsl:call-template> |
|
|
386 |
</span> |
357 |
<xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose> |
387 |
<xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose> |
358 |
</xsl:for-each> |
388 |
</xsl:for-each> |
359 |
</span> |
389 |
</span> |
Lines 372-377
Link Here
|
372 |
<xsl:if test="marc:datafield[@tag=300]"> |
402 |
<xsl:if test="marc:datafield[@tag=300]"> |
373 |
<span class="results_summary description"><span class="label">Description: </span> |
403 |
<span class="results_summary description"><span class="label">Description: </span> |
374 |
<xsl:for-each select="marc:datafield[@tag=300]"> |
404 |
<xsl:for-each select="marc:datafield[@tag=300]"> |
|
|
405 |
<span property="description"> |
375 |
<xsl:call-template name="chopPunctuation"> |
406 |
<xsl:call-template name="chopPunctuation"> |
376 |
<xsl:with-param name="chopString"> |
407 |
<xsl:with-param name="chopString"> |
377 |
<xsl:call-template name="subfieldSelect"> |
408 |
<xsl:call-template name="subfieldSelect"> |
Lines 379-384
Link Here
|
379 |
</xsl:call-template> |
410 |
</xsl:call-template> |
380 |
</xsl:with-param> |
411 |
</xsl:with-param> |
381 |
</xsl:call-template> |
412 |
</xsl:call-template> |
|
|
413 |
</span> |
382 |
<xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose> |
414 |
<xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose> |
383 |
</xsl:for-each> |
415 |
</xsl:for-each> |
384 |
</span> |
416 |
</span> |
Lines 387-395
Link Here
|
387 |
<xsl:if test="marc:datafield[@tag=020]"> |
419 |
<xsl:if test="marc:datafield[@tag=020]"> |
388 |
<span class="results_summary isbn"><span class="label">ISBN: </span> |
420 |
<span class="results_summary isbn"><span class="label">ISBN: </span> |
389 |
<xsl:for-each select="marc:datafield[@tag=020]"> |
421 |
<xsl:for-each select="marc:datafield[@tag=020]"> |
|
|
422 |
<span property="isbn"> |
390 |
<xsl:variable name="isbn" select="marc:subfield[@code='a']"/> |
423 |
<xsl:variable name="isbn" select="marc:subfield[@code='a']"/> |
391 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
424 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
392 |
<xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose> |
425 |
<xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose> |
|
|
426 |
</span> |
393 |
</xsl:for-each> |
427 |
</xsl:for-each> |
394 |
</span> |
428 |
</span> |
395 |
</xsl:if> |
429 |
</xsl:if> |
Lines 441-446
Link Here
|
441 |
<xsl:if test="marc:datafield[@tag=246]"> |
475 |
<xsl:if test="marc:datafield[@tag=246]"> |
442 |
<span class="results_summary other_title"><span class="label">Other title: </span> |
476 |
<span class="results_summary other_title"><span class="label">Other title: </span> |
443 |
<xsl:for-each select="marc:datafield[@tag=246]"> |
477 |
<xsl:for-each select="marc:datafield[@tag=246]"> |
|
|
478 |
<span property="alternativeHeadline"> |
444 |
<xsl:call-template name="chopPunctuation"> |
479 |
<xsl:call-template name="chopPunctuation"> |
445 |
<xsl:with-param name="chopString"> |
480 |
<xsl:with-param name="chopString"> |
446 |
<xsl:call-template name="subfieldSelect"> |
481 |
<xsl:call-template name="subfieldSelect"> |
Lines 448-453
Link Here
|
448 |
</xsl:call-template> |
483 |
</xsl:call-template> |
449 |
</xsl:with-param> |
484 |
</xsl:with-param> |
450 |
</xsl:call-template> |
485 |
</xsl:call-template> |
|
|
486 |
</span> |
451 |
<xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose> |
487 |
<xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose> |
452 |
</xsl:for-each> |
488 |
</xsl:for-each> |
453 |
</span> |
489 |
</span> |
Lines 457-462
Link Here
|
457 |
<xsl:if test="marc:datafield[@tag=242]"> |
493 |
<xsl:if test="marc:datafield[@tag=242]"> |
458 |
<span class="results_summary translated_title"><span class="label">Title translated: </span> |
494 |
<span class="results_summary translated_title"><span class="label">Title translated: </span> |
459 |
<xsl:for-each select="marc:datafield[@tag=242]"> |
495 |
<xsl:for-each select="marc:datafield[@tag=242]"> |
|
|
496 |
<span property="alternativeHeadline"> |
460 |
<xsl:call-template name="chopPunctuation"> |
497 |
<xsl:call-template name="chopPunctuation"> |
461 |
<xsl:with-param name="chopString"> |
498 |
<xsl:with-param name="chopString"> |
462 |
<xsl:call-template name="subfieldSelect"> |
499 |
<xsl:call-template name="subfieldSelect"> |
Lines 464-469
Link Here
|
464 |
</xsl:call-template> |
501 |
</xsl:call-template> |
465 |
</xsl:with-param> |
502 |
</xsl:with-param> |
466 |
</xsl:call-template> |
503 |
</xsl:call-template> |
|
|
504 |
</span> |
467 |
<xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose> |
505 |
<xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose> |
468 |
</xsl:for-each> |
506 |
</xsl:for-each> |
469 |
</span> |
507 |
</span> |
Lines 471-487
Link Here
|
471 |
|
509 |
|
472 |
<!-- Uniform Title Statement: Alternate Graphic Representation (MARC 880) --> |
510 |
<!-- Uniform Title Statement: Alternate Graphic Representation (MARC 880) --> |
473 |
<xsl:if test="$display880"> |
511 |
<xsl:if test="$display880"> |
|
|
512 |
<span property="alternativeHeadline"> |
474 |
<xsl:call-template name="m880Select"> |
513 |
<xsl:call-template name="m880Select"> |
475 |
<xsl:with-param name="basetags">130,240</xsl:with-param> |
514 |
<xsl:with-param name="basetags">130,240</xsl:with-param> |
476 |
<xsl:with-param name="codes">adfklmor</xsl:with-param> |
515 |
<xsl:with-param name="codes">adfklmor</xsl:with-param> |
477 |
<xsl:with-param name="class">results_summary uniform_title</xsl:with-param> |
516 |
<xsl:with-param name="class">results_summary uniform_title</xsl:with-param> |
478 |
<xsl:with-param name="label">Uniform titles: </xsl:with-param> |
517 |
<xsl:with-param name="label">Uniform titles: </xsl:with-param> |
479 |
</xsl:call-template> |
518 |
</xsl:call-template> |
|
|
519 |
</span> |
480 |
</xsl:if> |
520 |
</xsl:if> |
481 |
|
521 |
|
482 |
<xsl:if test="marc:datafield[@tag=130]|marc:datafield[@tag=240]|marc:datafield[@tag=730][@ind2!=2]"> |
522 |
<xsl:if test="marc:datafield[@tag=130]|marc:datafield[@tag=240]|marc:datafield[@tag=730][@ind2!=2]"> |
483 |
<span class="results_summary uniform_titles"><span class="label">Uniform titles: </span> |
523 |
<span class="results_summary uniform_titles"><span class="label">Uniform titles: </span> |
484 |
<xsl:for-each select="marc:datafield[@tag=130]|marc:datafield[@tag=240]|marc:datafield[@tag=730][@ind2!=2]"> |
524 |
<xsl:for-each select="marc:datafield[@tag=130]|marc:datafield[@tag=240]|marc:datafield[@tag=730][@ind2!=2]"> |
|
|
525 |
<span property="alternativeHeadline"> |
485 |
<xsl:variable name="str"> |
526 |
<xsl:variable name="str"> |
486 |
<xsl:for-each select="marc:subfield"> |
527 |
<xsl:for-each select="marc:subfield"> |
487 |
<xsl:if test="(contains('adfklmor',@code) and (not(../marc:subfield[@code='n' or @code='p']) or (following-sibling::marc:subfield[@code='n' or @code='p'])))"> |
528 |
<xsl:if test="(contains('adfklmor',@code) and (not(../marc:subfield[@code='n' or @code='p']) or (following-sibling::marc:subfield[@code='n' or @code='p'])))"> |
Lines 496-501
Link Here
|
496 |
|
537 |
|
497 |
</xsl:with-param> |
538 |
</xsl:with-param> |
498 |
</xsl:call-template> |
539 |
</xsl:call-template> |
|
|
540 |
</span> |
499 |
<xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose> |
541 |
<xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose> |
500 |
</xsl:for-each> |
542 |
</xsl:for-each> |
501 |
</span> |
543 |
</span> |
Lines 504-510
Link Here
|
504 |
<xsl:if test="marc:datafield[substring(@tag, 1, 1) = '6']"> |
546 |
<xsl:if test="marc:datafield[substring(@tag, 1, 1) = '6']"> |
505 |
<span class="results_summary subjects"><span class="label">Subject(s): </span> |
547 |
<span class="results_summary subjects"><span class="label">Subject(s): </span> |
506 |
<xsl:for-each select="marc:datafield[substring(@tag, 1, 1) = '6']"> |
548 |
<xsl:for-each select="marc:datafield[substring(@tag, 1, 1) = '6']"> |
507 |
<a> |
549 |
<a property="keywords"> |
508 |
<xsl:choose> |
550 |
<xsl:choose> |
509 |
<xsl:when test="marc:subfield[@code=9] and $UseAuthoritiesForTracings='1'"> |
551 |
<xsl:when test="marc:subfield[@code=9] and $UseAuthoritiesForTracings='1'"> |
510 |
<xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=an:<xsl:value-of select="marc:subfield[@code=9]"/></xsl:attribute> |
552 |
<xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=an:<xsl:value-of select="marc:subfield[@code=9]"/></xsl:attribute> |
Lines 552-558
Link Here
|
552 |
<span class="results_summary online_resources"><span class="label">Online resources: </span> |
594 |
<span class="results_summary online_resources"><span class="label">Online resources: </span> |
553 |
<xsl:for-each select="marc:datafield[@tag=856]"> |
595 |
<xsl:for-each select="marc:datafield[@tag=856]"> |
554 |
<xsl:variable name="SubqText"><xsl:value-of select="marc:subfield[@code='q']"/></xsl:variable> |
596 |
<xsl:variable name="SubqText"><xsl:value-of select="marc:subfield[@code='q']"/></xsl:variable> |
555 |
<a> |
597 |
<a property="url"> |
556 |
<xsl:choose> |
598 |
<xsl:choose> |
557 |
<xsl:when test="$OPACTrackClicks='track'"> |
599 |
<xsl:when test="$OPACTrackClicks='track'"> |
558 |
<xsl:attribute name="href">/cgi-bin/koha/tracklinks.pl?uri=<xsl:value-of select="marc:subfield[@code='u']"/>;biblionumber=<xsl:value-of select="$biblionumber"/></xsl:attribute> |
600 |
<xsl:attribute name="href">/cgi-bin/koha/tracklinks.pl?uri=<xsl:value-of select="marc:subfield[@code='u']"/>;biblionumber=<xsl:value-of select="$biblionumber"/></xsl:attribute> |
Lines 628-634
Link Here
|
628 |
</xsl:otherwise> |
670 |
</xsl:otherwise> |
629 |
</xsl:choose> |
671 |
</xsl:choose> |
630 |
</xsl:if> |
672 |
</xsl:if> |
631 |
<div class='contentblock'> |
673 |
<div class='contentblock' property='description'> |
632 |
<xsl:choose> |
674 |
<xsl:choose> |
633 |
<xsl:when test="@ind2=0"> |
675 |
<xsl:when test="@ind2=0"> |
634 |
<xsl:call-template name="subfieldSelectSpan"> |
676 |
<xsl:call-template name="subfieldSelectSpan"> |
Lines 939-944
Link Here
|
939 |
</xsl:for-each> |
981 |
</xsl:for-each> |
940 |
</xsl:if> |
982 |
</xsl:if> |
941 |
|
983 |
|
|
|
984 |
</xsl:element> |
942 |
</xsl:template> |
985 |
</xsl:template> |
943 |
|
986 |
|
944 |
<xsl:template name="showAuthor"> |
987 |
<xsl:template name="showAuthor"> |
945 |
- |
|
|