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

(-)a/koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss (-21 lines)
Lines 5159-5182 div .suggestion_note { Link Here
5159
    text-align: left;
5159
    text-align: left;
5160
}
5160
}
5161
*/
5161
*/
5162
// Repeatable fields display (Bug 30148)
5163
.resource_list {
5164
    display: inline-block;
5165
    margin: 0;
5166
    padding-left: 0;
5167
5168
    li {
5169
        display: inline-block;
5170
        white-space: nowrap;
5171
5172
        &::after {
5173
            content: " | ";
5174
        }
5175
5176
        &:last-child {
5177
            &::after {
5178
                content: "";
5179
            }
5180
        }
5181
    }
5182
}
(-)a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl (-76 / +80 lines)
Lines 15-20 Link Here
15
            <xsl:apply-templates/>
15
            <xsl:apply-templates/>
16
    </xsl:template>
16
    </xsl:template>
17
17
18
18
    <xsl:template match="marc:record">
19
    <xsl:template match="marc:record">
19
20
20
        <!-- Option: Display Alternate Graphic Representation (MARC 880)  -->
21
        <!-- Option: Display Alternate Graphic Representation (MARC 880)  -->
Lines 961-1043 Link Here
961
    </xsl:if>
962
    </xsl:if>
962
963
963
    <!-- Add links based on persistent identifiers Bug 38425 -->
964
    <!-- Add links based on persistent identifiers Bug 38425 -->
964
    <xsl:if test="marc:datafield[@tag=024]">
965
    <xsl:if test="marc:datafield[@tag=024]/marc:subfield[@code='2'][
966
            . = 'doi' or
967
            . = 'pmid' or
968
            . = 'pmc' or
969
            . = 'arxiv' or
970
            . = 'inspire' or
971
            . = 'openlibrary' or
972
            . = 'hdl'
973
        ]">
965
        <span class="results_summary pid_links">
974
        <span class="results_summary pid_links">
966
        <span class="label">External resource(s): </span>
975
                <!-- Process each pid type -->
967
        <ul class="resource_list">
976
                <xsl:call-template name="show-pid-link">
968
        <xsl:for-each select="marc:datafield[@tag=024]/marc:subfield[@code='2']">
977
                    <xsl:with-param name="type" select="'doi'"/>
969
            <xsl:choose>
978
                    <xsl:with-param name="label" select="'DOI: '"/>
970
                <xsl:when test=". = 'doi'">
979
                    <xsl:with-param name="url-prefix" select="'https://doi.org/'"/>
971
                    <li>
980
                </xsl:call-template>
972
                        <span class="label">doi:</span>
981
973
                        <xsl:for-each select="../marc:subfield[@code='a']">
982
                <xsl:call-template name="show-pid-link">
974
                            <a>
983
                    <xsl:with-param name="type" select="'pmid'"/>
975
                                <xsl:attribute name="href">https://doi.org/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute>
984
                    <xsl:with-param name="label" select="'PMID: '"/>
976
                                <xsl:value-of select="current()" />
985
                    <xsl:with-param name="url-prefix" select="'https://pubmed.ncbi.nlm.nih.gov/'"/>
977
                            </a>
986
                </xsl:call-template>
978
                        </xsl:for-each>
987
979
                    </li>
988
                <xsl:call-template name="show-pid-link">
980
                </xsl:when>
989
                    <xsl:with-param name="type" select="'pmc'"/>
981
                <xsl:when test=". = 'pmid'">
990
                    <xsl:with-param name="label" select="'PMC: '"/>
982
                    <li>
991
                    <xsl:with-param name="url-prefix" select="'https://pmc.ncbi.nlm.nih.gov/articles/'"/>
983
                        <span class="label">PMID: </span>
992
                </xsl:call-template>
984
                        <xsl:for-each select="../marc:subfield[@code='a']">
993
985
                            <a>
994
                <xsl:call-template name="show-pid-link">
986
                                <xsl:attribute name="href">https://pubmed.ncbi.nlm.nih.gov/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute>
995
                    <xsl:with-param name="type" select="'arxiv'"/>
987
                                <xsl:value-of select="current()" />
996
                    <xsl:with-param name="label" select="'arXiv: '"/>
988
                            </a>
997
                    <xsl:with-param name="url-prefix" select="'https://arxiv.org/abs/'"/>
989
                        </xsl:for-each>
998
                </xsl:call-template>
990
                    </li>
999
991
                </xsl:when>
1000
                <xsl:call-template name="show-pid-link">
992
                <xsl:when test=". = 'pmc'">
1001
                    <xsl:with-param name="type" select="'inspire'"/>
993
                    <li>
1002
                    <xsl:with-param name="label" select="'iNSPIRE: '"/>
994
                        <span class="label">PMCID: </span>
1003
                    <xsl:with-param name="url-prefix" select="'https://inspirehep.net/literature/'"/>
995
                        <xsl:for-each select="../marc:subfield[@code='a']">
1004
                </xsl:call-template>
996
                            <a>
1005
997
                                <xsl:attribute name="href">https://pmc.ncbi.nlm.nih.gov/articles/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute>
1006
                <xsl:call-template name="show-pid-link">
998
                                <xsl:value-of select="current()" />
1007
                    <xsl:with-param name="type" select="'openlibrary'"/>
999
                            </a>
1008
                    <xsl:with-param name="label" select="'Open Library: '"/>
1000
                        </xsl:for-each>
1009
                    <xsl:with-param name="url-prefix" select="'https://openlibrary.org/works/'"/>
1001
                    </li>
1010
                </xsl:call-template>
1002
                </xsl:when>
1011
1003
                <xsl:when test=". = 'arxiv'">
1012
                <xsl:call-template name="show-pid-link">
1004
                    <li>
1013
                    <xsl:with-param name="type" select="'hdl'"/>
1005
                        <!-- arXiv-ids are `arxiv:1234.5678` is redundant
1014
                    <xsl:with-param name="label" select="'Handle: '"/>
1006
                        <span class="label">arXiv:</span>
1015
                    <xsl:with-param name="url-prefix" select="'https://hdl.handle.net/'"/>
1007
                        -->
1016
                </xsl:call-template>
1008
                        <xsl:for-each select="../marc:subfield[@code='a']">
1009
                            <a>
1010
                                <xsl:attribute name="href">https://arxiv.org/abs/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute>
1011
                                <xsl:value-of select="current()" />
1012
                            </a>
1013
                        </xsl:for-each>
1014
                    </li>
1015
                </xsl:when>
1016
                <xsl:when test=". = 'inspire'">
1017
                    <li>
1018
                        <span class="label">inspire: </span>
1019
                        <xsl:for-each select="../marc:subfield[@code='a']">
1020
                            <a>
1021
                                <xsl:attribute name="href">https://inspirehep.net/literature/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute>
1022
                                <xsl:value-of select="current()" />
1023
                            </a>
1024
                        </xsl:for-each>
1025
                    </li>
1026
                </xsl:when>
1027
                <xsl:when test=". = 'openlibrary'">
1028
                    <li>
1029
                        <span class="label">OpenLibrary: </span>
1030
                        <xsl:for-each select="../marc:subfield[@code='a']">
1031
                            <a>
1032
                                <xsl:attribute name="href">https://openlibrary.org/works/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute>
1033
                                <xsl:value-of select="current()" />
1034
                            </a>
1035
                        </xsl:for-each>
1036
                    </li>
1037
                </xsl:when>
1038
            </xsl:choose>
1039
        </xsl:for-each>
1040
        </ul>
1041
        </span>
1017
        </span>
1042
    </xsl:if>
1018
    </xsl:if>
1043
1019
Lines 2024-2029 Link Here
2024
        </a>
2000
        </a>
2025
    </xsl:template>
2001
    </xsl:template>
2026
2002
2003
    <!-- Template for PID links, cf Bug 38425 -->
2004
    <xsl:template name="show-pid-link">
2005
        <xsl:param name="type"/>
2006
        <xsl:param name="label"/>
2007
        <xsl:param name="url-prefix"/>
2008
2009
        <xsl:variable name="values" select="marc:datafield[@tag=024]/marc:subfield[@code='2'][. = $type]/../marc:subfield[@code='a']"/>
2010
2011
        <xsl:if test="$values">
2012
            <span class="results_summary resource_list_{$type}">
2013
                <xsl:if test="$label">
2014
                    <span class="label">
2015
                        <xsl:value-of select="$label"/>
2016
                    </span>
2017
                </xsl:if>
2018
                <ul class="resource_list">
2019
                    <xsl:for-each select="$values">
2020
                        <li class="resource_{$type}">
2021
                            <a class="resource_link" href="{$url-prefix}{str:encode-uri(current(), true())}">
2022
                                <xsl:value-of select="current()"/>
2023
                            </a>
2024
                        </li>
2025
                    </xsl:for-each>
2026
                </ul>
2027
            </span>
2028
        </xsl:if>
2029
    </xsl:template>
2030
2027
    <!-- #1807 Strip unwanted parenthesis from subjects for searching -->
2031
    <!-- #1807 Strip unwanted parenthesis from subjects for searching -->
2028
    <xsl:template name="subfieldSelectSubject">
2032
    <xsl:template name="subfieldSelectSubject">
2029
        <xsl:param name="codes"/>
2033
        <xsl:param name="codes"/>
(-)a/koha-tmpl/intranet-tmpl/prog/en/xslt/UNIMARCslim2intranetDetail.xsl (-79 / +81 lines)
Lines 25-109 Link Here
25
  <xsl:variable name="AuthorLinkSortOrder" select="marc:sysprefs/marc:syspref[@name='AuthorLinkSortOrder']"/>
25
  <xsl:variable name="AuthorLinkSortOrder" select="marc:sysprefs/marc:syspref[@name='AuthorLinkSortOrder']"/>
26
26
27
  <!-- Add links based on persistent identifiers Bug 38425 -->
27
  <!-- Add links based on persistent identifiers Bug 38425 -->
28
  <xsl:if test="marc:datafield[@tag=017]">
28
    <xsl:if test="marc:datafield[@tag=017]/marc:subfield[@code='2'][
29
      <span class="results_summary pid_links">
29
            . = 'doi' or
30
      <span class="label">External resource(s): </span>
30
            . = 'pmid' or
31
      <ul class="resource_list">
31
            . = 'pmc' or
32
      <xsl:for-each select="marc:datafield[@tag=017]/marc:subfield[@code='2']">
32
            . = 'arxiv' or
33
          <xsl:choose>
33
            . = 'inspire' or
34
              <xsl:when test=". = 'doi'">
34
            . = 'openlibrary' or
35
                  <li>
35
            . = 'hdl'
36
                      <span class="label">doi:</span>
36
        ]">
37
                      <xsl:for-each select="../marc:subfield[@code='a']">
37
        <span class="results_summary pid_links">
38
                          <a>
38
                <!-- Process each pid type -->
39
                              <xsl:attribute name="href">https://doi.org/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute>
39
                <xsl:call-template name="show-pid-link">
40
                              <xsl:value-of select="current()" />
40
                    <xsl:with-param name="type" select="'doi'"/>
41
                          </a>
41
                    <xsl:with-param name="label" select="'DOI: '"/>
42
                      </xsl:for-each>
42
                    <xsl:with-param name="url-prefix" select="'https://doi.org/'"/>
43
                  </li>
43
                </xsl:call-template>
44
              </xsl:when>
44
45
              <xsl:when test=". = 'pmid'">
45
                <xsl:call-template name="show-pid-link">
46
                  <li>
46
                    <xsl:with-param name="type" select="'pmid'"/>
47
                      <span class="label">PMID: </span>
47
                    <xsl:with-param name="label" select="'PMID: '"/>
48
                      <xsl:for-each select="../marc:subfield[@code='a']">
48
                    <xsl:with-param name="url-prefix" select="'https://pubmed.ncbi.nlm.nih.gov/'"/>
49
                          <a>
49
                </xsl:call-template>
50
                              <xsl:attribute name="href">https://pubmed.ncbi.nlm.nih.gov/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute>
50
51
                              <xsl:value-of select="current()" />
51
                <xsl:call-template name="show-pid-link">
52
                          </a>
52
                    <xsl:with-param name="type" select="'pmc'"/>
53
                      </xsl:for-each>
53
                    <xsl:with-param name="label" select="'PMC: '"/>
54
                  </li>
54
                    <xsl:with-param name="url-prefix" select="'https://pmc.ncbi.nlm.nih.gov/articles/'"/>
55
              </xsl:when>
55
                </xsl:call-template>
56
              <xsl:when test=". = 'pmc'">
56
57
                  <li>
57
                <xsl:call-template name="show-pid-link">
58
                      <span class="label">PMCID: </span>
58
                    <xsl:with-param name="type" select="'arxiv'"/>
59
                      <xsl:for-each select="../marc:subfield[@code='a']">
59
                    <xsl:with-param name="label" select="'arXiv: '"/>
60
                          <a>
60
                    <xsl:with-param name="url-prefix" select="'https://arxiv.org/abs/'"/>
61
                              <xsl:attribute name="href">https://pmc.ncbi.nlm.nih.gov/articles/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute>
61
                </xsl:call-template>
62
                              <xsl:value-of select="current()" />
62
63
                          </a>
63
                <xsl:call-template name="show-pid-link">
64
                      </xsl:for-each>
64
                    <xsl:with-param name="type" select="'inspire'"/>
65
                  </li>
65
                    <xsl:with-param name="label" select="'iNSPIRE: '"/>
66
              </xsl:when>
66
                    <xsl:with-param name="url-prefix" select="'https://inspirehep.net/literature/'"/>
67
              <xsl:when test=". = 'arxiv'">
67
                </xsl:call-template>
68
                  <li>
68
69
                      <!-- arXiv-ids are `arxiv:1234.5678` is redundant
69
                <xsl:call-template name="show-pid-link">
70
                      <span class="label">arXiv:</span>
70
                    <xsl:with-param name="type" select="'openlibrary'"/>
71
                      -->
71
                    <xsl:with-param name="label" select="'Open Library: '"/>
72
                      <xsl:for-each select="../marc:subfield[@code='a']">
72
                    <xsl:with-param name="url-prefix" select="'https://openlibrary.org/works/'"/>
73
                          <a>
73
                </xsl:call-template>
74
                              <xsl:attribute name="href">https://arxiv.org/abs/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute>
74
75
                              <xsl:value-of select="current()" />
75
                <xsl:call-template name="show-pid-link">
76
                          </a>
76
                    <xsl:with-param name="type" select="'hdl'"/>
77
                      </xsl:for-each>
77
                    <xsl:with-param name="label" select="'Handle: '"/>
78
                  </li>
78
                    <xsl:with-param name="url-prefix" select="'https://hdl.handle.net/'"/>
79
              </xsl:when>
79
                </xsl:call-template>
80
              <xsl:when test=". = 'inspire'">
80
        </span>
81
                  <li>
81
    </xsl:if>
82
                      <span class="label">inspire: </span>
83
                      <xsl:for-each select="../marc:subfield[@code='a']">
84
                          <a>
85
                              <xsl:attribute name="href">https://inspirehep.net/literature/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute>
86
                              <xsl:value-of select="current()" />
87
                          </a>
88
                      </xsl:for-each>
89
                  </li>
90
              </xsl:when>
91
              <xsl:when test=". = 'openlibrary'">
92
                  <li>
93
                      <span class="label">OpenLibrary: </span>
94
                      <xsl:for-each select="../marc:subfield[@code='a']">
95
                          <a>
96
                              <xsl:attribute name="href">https://openlibrary.org/works/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute>
97
                              <xsl:value-of select="current()" />
98
                          </a>
99
                      </xsl:for-each>
100
                  </li>
101
              </xsl:when>
102
          </xsl:choose>
103
      </xsl:for-each>
104
      </ul>
105
      </span>
106
  </xsl:if>
107
82
108
  <xsl:if test="marc:datafield[@tag=200]">
83
  <xsl:if test="marc:datafield[@tag=200]">
109
    <xsl:for-each select="marc:datafield[@tag=200]">
84
    <xsl:for-each select="marc:datafield[@tag=200]">
Lines 589-592 Link Here
589
        <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
564
        <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
590
    </xsl:template>
565
    </xsl:template>
591
566
567
    <!-- Template for PID links, cf Bug 38425 -->
568
    <xsl:template name="show-pid-link">
569
        <xsl:param name="type"/>
570
        <xsl:param name="label"/>
571
        <xsl:param name="url-prefix"/>
572
573
        <xsl:variable name="values" select="marc:datafield[@tag=174]/marc:subfield[@code='2'][. = $type]/../marc:subfield[@code='a']"/>
574
575
        <xsl:if test="$values">
576
            <span class="results_summary resource_list_{$type}">
577
                <xsl:if test="$label">
578
                    <span class="label">
579
                        <xsl:value-of select="$label"/>
580
                    </span>
581
                </xsl:if>
582
                <ul class="resource_list">
583
                    <xsl:for-each select="$values">
584
                        <li class="resource_{$type}">
585
                            <a class="resource_link" href="{$url-prefix}{str:encode-uri(current(), true())}">
586
                                <xsl:value-of select="current()"/>
587
                            </a>
588
                        </li>
589
                    </xsl:for-each>
590
                </ul>
591
            </span>
592
        </xsl:if>
593
    </xsl:template>
592
</xsl:stylesheet>
594
</xsl:stylesheet>
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACDetail.xsl (-76 / +79 lines)
Lines 1064-1146 Link Here
1064
1064
1065
1065
1066
    <!-- Add links based on persistent identifiers Bug 38425 -->
1066
    <!-- Add links based on persistent identifiers Bug 38425 -->
1067
    <xsl:if test="marc:datafield[@tag=024]">
1067
    <xsl:if test="marc:datafield[@tag=024]/marc:subfield[@code='2'][
1068
            . = 'doi' or
1069
            . = 'pmid' or
1070
            . = 'pmc' or
1071
            . = 'arxiv' or
1072
            . = 'inspire' or
1073
            . = 'openlibrary' or
1074
            . = 'hdl'
1075
        ]">
1068
        <span class="results_summary pid_links">
1076
        <span class="results_summary pid_links">
1069
        <span class="label">External resource(s): </span>
1077
                <!-- Process each pid type -->
1070
        <ul class="resource_list">
1078
                <xsl:call-template name="show-pid-link">
1071
        <xsl:for-each select="marc:datafield[@tag=024]/marc:subfield[@code='2']">
1079
                    <xsl:with-param name="type" select="'doi'"/>
1072
            <xsl:choose>
1080
                    <xsl:with-param name="label" select="'DOI: '"/>
1073
                <xsl:when test=". = 'doi'">
1081
                    <xsl:with-param name="url-prefix" select="'https://doi.org/'"/>
1074
                    <li>
1082
                </xsl:call-template>
1075
                        <span class="label">doi:</span>
1083
1076
                        <xsl:for-each select="../marc:subfield[@code='a']">
1084
                <xsl:call-template name="show-pid-link">
1077
                            <a>
1085
                    <xsl:with-param name="type" select="'pmid'"/>
1078
                                <xsl:attribute name="href">https://doi.org/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute>
1086
                    <xsl:with-param name="label" select="'PMID: '"/>
1079
                                <xsl:value-of select="current()" />
1087
                    <xsl:with-param name="url-prefix" select="'https://pubmed.ncbi.nlm.nih.gov/'"/>
1080
                            </a>
1088
                </xsl:call-template>
1081
                        </xsl:for-each>
1089
1082
                    </li>
1090
                <xsl:call-template name="show-pid-link">
1083
                </xsl:when>
1091
                    <xsl:with-param name="type" select="'pmc'"/>
1084
                <xsl:when test=". = 'pmid'">
1092
                    <xsl:with-param name="label" select="'PMC: '"/>
1085
                    <li>
1093
                    <xsl:with-param name="url-prefix" select="'https://pmc.ncbi.nlm.nih.gov/articles/'"/>
1086
                        <span class="label">PMID: </span>
1094
                </xsl:call-template>
1087
                        <xsl:for-each select="../marc:subfield[@code='a']">
1095
1088
                            <a>
1096
                <xsl:call-template name="show-pid-link">
1089
                                <xsl:attribute name="href">https://pubmed.ncbi.nlm.nih.gov/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute>
1097
                    <xsl:with-param name="type" select="'arxiv'"/>
1090
                                <xsl:value-of select="current()" />
1098
                    <xsl:with-param name="label" select="'arXiv: '"/>
1091
                            </a>
1099
                    <xsl:with-param name="url-prefix" select="'https://arxiv.org/abs/'"/>
1092
                        </xsl:for-each>
1100
                </xsl:call-template>
1093
                    </li>
1101
1094
                </xsl:when>
1102
                <xsl:call-template name="show-pid-link">
1095
                <xsl:when test=". = 'pmc'">
1103
                    <xsl:with-param name="type" select="'inspire'"/>
1096
                    <li>
1104
                    <xsl:with-param name="label" select="'iNSPIRE: '"/>
1097
                        <span class="label">PMCID: </span>
1105
                    <xsl:with-param name="url-prefix" select="'https://inspirehep.net/literature/'"/>
1098
                        <xsl:for-each select="../marc:subfield[@code='a']">
1106
                </xsl:call-template>
1099
                            <a>
1107
1100
                                <xsl:attribute name="href">https://pmc.ncbi.nlm.nih.gov/articles/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute>
1108
                <xsl:call-template name="show-pid-link">
1101
                                <xsl:value-of select="current()" />
1109
                    <xsl:with-param name="type" select="'openlibrary'"/>
1102
                            </a>
1110
                    <xsl:with-param name="label" select="'Open Library: '"/>
1103
                        </xsl:for-each>
1111
                    <xsl:with-param name="url-prefix" select="'https://openlibrary.org/works/'"/>
1104
                    </li>
1112
                </xsl:call-template>
1105
                </xsl:when>
1113
1106
                <xsl:when test=". = 'arxiv'">
1114
                <xsl:call-template name="show-pid-link">
1107
                    <li>
1115
                    <xsl:with-param name="type" select="'hdl'"/>
1108
                        <!-- arXiv-ids are `arxiv:1234.5678` is redundant
1116
                    <xsl:with-param name="label" select="'Handle: '"/>
1109
                        <span class="label">arXiv:</span>
1117
                    <xsl:with-param name="url-prefix" select="'https://hdl.handle.net/'"/>
1110
                        -->
1118
                </xsl:call-template>
1111
                        <xsl:for-each select="../marc:subfield[@code='a']">
1112
                            <a>
1113
                                <xsl:attribute name="href">https://arxiv.org/abs/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute>
1114
                                <xsl:value-of select="current()" />
1115
                            </a>
1116
                        </xsl:for-each>
1117
                    </li>
1118
                </xsl:when>
1119
                <xsl:when test=". = 'inspire'">
1120
                    <li>
1121
                        <span class="label">inspire: </span>
1122
                        <xsl:for-each select="../marc:subfield[@code='a']">
1123
                            <a>
1124
                                <xsl:attribute name="href">https://inspirehep.net/literature/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute>
1125
                                <xsl:value-of select="current()" />
1126
                            </a>
1127
                        </xsl:for-each>
1128
                    </li>
1129
                </xsl:when>
1130
                <xsl:when test=". = 'openlibrary'">
1131
                    <li>
1132
                        <span class="label">OpenLibrary: </span>
1133
                        <xsl:for-each select="../marc:subfield[@code='a']">
1134
                            <a>
1135
                                <xsl:attribute name="href">https://openlibrary.org/works/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute>
1136
                                <xsl:value-of select="current()" />
1137
                            </a>
1138
                        </xsl:for-each>
1139
                    </li>
1140
                </xsl:when>
1141
            </xsl:choose>
1142
        </xsl:for-each>
1143
        </ul>
1144
        </span>
1119
        </span>
1145
    </xsl:if>
1120
    </xsl:if>
1146
1121
Lines 2289-2292 Link Here
2289
            </xsl:otherwise>
2264
            </xsl:otherwise>
2290
        </xsl:choose>
2265
        </xsl:choose>
2291
    </xsl:template>
2266
    </xsl:template>
2267
2268
    <!-- Template for PID links, cf Bug 38425 -->
2269
    <xsl:template name="show-pid-link">
2270
        <xsl:param name="type"/>
2271
        <xsl:param name="label"/>
2272
        <xsl:param name="url-prefix"/>
2273
2274
        <xsl:variable name="values" select="marc:datafield[@tag=024]/marc:subfield[@code='2'][. = $type]/../marc:subfield[@code='a']"/>
2275
2276
        <xsl:if test="$values">
2277
            <span class="results_summary resource_list_{$type}">
2278
                <xsl:if test="$label">
2279
                    <span class="label">
2280
                        <xsl:value-of select="$label"/>
2281
                    </span>
2282
                </xsl:if>
2283
                <ul class="resource_list">
2284
                    <xsl:for-each select="$values">
2285
                        <li class="resource_{$type}">
2286
                            <a class="resource_link" href="{$url-prefix}{str:encode-uri(current(), true())}">
2287
                                <xsl:value-of select="current()"/>
2288
                            </a>
2289
                        </li>
2290
                    </xsl:for-each>
2291
                </ul>
2292
            </span>
2293
        </xsl:if>
2294
    </xsl:template>
2292
</xsl:stylesheet>
2295
</xsl:stylesheet>
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/UNIMARCslim2OPACDetail.xsl (-80 / +84 lines)
Lines 27-111 Link Here
27
  <xsl:variable name="AuthorLinkSortOrder" select="marc:sysprefs/marc:syspref[@name='AuthorLinkSortOrder']"/>
27
  <xsl:variable name="AuthorLinkSortOrder" select="marc:sysprefs/marc:syspref[@name='AuthorLinkSortOrder']"/>
28
28
29
  <!-- Add links based on persistent identifiers Bug 38425 -->
29
  <!-- Add links based on persistent identifiers Bug 38425 -->
30
  <xsl:if test="marc:datafield[@tag=017]">
30
    <xsl:if test="marc:datafield[@tag=017]/marc:subfield[@code='2'][
31
      <span class="results_summary pid_links">
31
            . = 'doi' or
32
      <span class="label">External resource(s): </span>
32
            . = 'pmid' or
33
      <ul class="resource_list">
33
            . = 'pmc' or
34
      <xsl:for-each select="marc:datafield[@tag=017]/marc:subfield[@code='2']">
34
            . = 'arxiv' or
35
          <xsl:choose>
35
            . = 'inspire' or
36
              <xsl:when test=". = 'doi'">
36
            . = 'openlibrary' or
37
                  <li>
37
            . = 'hdl'
38
                      <span class="label">doi:</span>
38
        ]">
39
                      <xsl:for-each select="../marc:subfield[@code='a']">
39
        <span class="results_summary pid_links">
40
                          <a>
40
                <!-- Process each pid type -->
41
                              <xsl:attribute name="href">https://doi.org/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute>
41
                <xsl:call-template name="show-pid-link">
42
                              <xsl:value-of select="current()" />
42
                    <xsl:with-param name="type" select="'doi'"/>
43
                          </a>
43
                    <xsl:with-param name="label" select="'DOI: '"/>
44
                      </xsl:for-each>
44
                    <xsl:with-param name="url-prefix" select="'https://doi.org/'"/>
45
                  </li>
45
                </xsl:call-template>
46
              </xsl:when>
46
47
              <xsl:when test=". = 'pmid'">
47
                <xsl:call-template name="show-pid-link">
48
                  <li>
48
                    <xsl:with-param name="type" select="'pmid'"/>
49
                      <span class="label">PMID: </span>
49
                    <xsl:with-param name="label" select="'PMID: '"/>
50
                      <xsl:for-each select="../marc:subfield[@code='a']">
50
                    <xsl:with-param name="url-prefix" select="'https://pubmed.ncbi.nlm.nih.gov/'"/>
51
                          <a>
51
                </xsl:call-template>
52
                              <xsl:attribute name="href">https://pubmed.ncbi.nlm.nih.gov/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute>
52
53
                              <xsl:value-of select="current()" />
53
                <xsl:call-template name="show-pid-link">
54
                          </a>
54
                    <xsl:with-param name="type" select="'pmc'"/>
55
                      </xsl:for-each>
55
                    <xsl:with-param name="label" select="'PMC: '"/>
56
                  </li>
56
                    <xsl:with-param name="url-prefix" select="'https://pmc.ncbi.nlm.nih.gov/articles/'"/>
57
              </xsl:when>
57
                </xsl:call-template>
58
              <xsl:when test=". = 'pmc'">
58
59
                  <li>
59
                <xsl:call-template name="show-pid-link">
60
                      <span class="label">PMCID: </span>
60
                    <xsl:with-param name="type" select="'arxiv'"/>
61
                      <xsl:for-each select="../marc:subfield[@code='a']">
61
                    <xsl:with-param name="label" select="'arXiv: '"/>
62
                          <a>
62
                    <xsl:with-param name="url-prefix" select="'https://arxiv.org/abs/'"/>
63
                              <xsl:attribute name="href">https://pmc.ncbi.nlm.nih.gov/articles/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute>
63
                </xsl:call-template>
64
                              <xsl:value-of select="current()" />
64
65
                          </a>
65
                <xsl:call-template name="show-pid-link">
66
                      </xsl:for-each>
66
                    <xsl:with-param name="type" select="'inspire'"/>
67
                  </li>
67
                    <xsl:with-param name="label" select="'iNSPIRE: '"/>
68
              </xsl:when>
68
                    <xsl:with-param name="url-prefix" select="'https://inspirehep.net/literature/'"/>
69
              <xsl:when test=". = 'arxiv'">
69
                </xsl:call-template>
70
                  <li>
70
71
                      <!-- arXiv-ids are `arxiv:1234.5678` is redundant
71
                <xsl:call-template name="show-pid-link">
72
                      <span class="label">arXiv:</span>
72
                    <xsl:with-param name="type" select="'openlibrary'"/>
73
                      -->
73
                    <xsl:with-param name="label" select="'Open Library: '"/>
74
                      <xsl:for-each select="../marc:subfield[@code='a']">
74
                    <xsl:with-param name="url-prefix" select="'https://openlibrary.org/works/'"/>
75
                          <a>
75
                </xsl:call-template>
76
                              <xsl:attribute name="href">https://arxiv.org/abs/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute>
76
77
                              <xsl:value-of select="current()" />
77
                <xsl:call-template name="show-pid-link">
78
                          </a>
78
                    <xsl:with-param name="type" select="'hdl'"/>
79
                      </xsl:for-each>
79
                    <xsl:with-param name="label" select="'Handle: '"/>
80
                  </li>
80
                    <xsl:with-param name="url-prefix" select="'https://hdl.handle.net/'"/>
81
              </xsl:when>
81
                </xsl:call-template>
82
              <xsl:when test=". = 'inspire'">
82
        </span>
83
                  <li>
83
    </xsl:if>
84
                      <span class="label">inspire: </span>
84
85
                      <xsl:for-each select="../marc:subfield[@code='a']">
86
                          <a>
87
                              <xsl:attribute name="href">https://inspirehep.net/literature/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute>
88
                              <xsl:value-of select="current()" />
89
                          </a>
90
                      </xsl:for-each>
91
                  </li>
92
              </xsl:when>
93
              <xsl:when test=". = 'openlibrary'">
94
                  <li>
95
                      <span class="label">OpenLibrary: </span>
96
                      <xsl:for-each select="../marc:subfield[@code='a']">
97
                          <a>
98
                              <xsl:attribute name="href">https://openlibrary.org/works/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute>
99
                              <xsl:value-of select="current()" />
100
                          </a>
101
                      </xsl:for-each>
102
                  </li>
103
              </xsl:when>
104
          </xsl:choose>
105
      </xsl:for-each>
106
      </ul>
107
      </span>
108
  </xsl:if>
109
85
110
  <xsl:if test="marc:datafield[@tag=200]">
86
  <xsl:if test="marc:datafield[@tag=200]">
111
    <xsl:for-each select="marc:datafield[@tag=200]">
87
    <xsl:for-each select="marc:datafield[@tag=200]">
Lines 737-740 Link Here
737
        <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
713
        <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
738
    </xsl:template>
714
    </xsl:template>
739
715
716
    <!-- Template for PID links, cf Bug 38425 -->
717
    <xsl:template name="show-pid-link">
718
        <xsl:param name="type"/>
719
        <xsl:param name="label"/>
720
        <xsl:param name="url-prefix"/>
721
722
        <xsl:variable name="values" select="marc:datafield[@tag=017]/marc:subfield[@code='2'][. = $type]/../marc:subfield[@code='a']"/>
723
724
        <xsl:if test="$values">
725
            <span class="results_summary resource_list_{$type}">
726
                <xsl:if test="$label">
727
                    <span class="label">
728
                        <xsl:value-of select="$label"/>
729
                    </span>
730
                </xsl:if>
731
                <ul class="resource_list">
732
                    <xsl:for-each select="$values">
733
                        <li class="resource_{$type}">
734
                            <a class="resource_link" href="{$url-prefix}{str:encode-uri(current(), true())}">
735
                                <xsl:value-of select="current()"/>
736
                            </a>
737
                        </li>
738
                    </xsl:for-each>
739
                </ul>
740
            </span>
741
        </xsl:if>
742
    </xsl:template>
743
744
740
</xsl:stylesheet>
745
</xsl:stylesheet>
741
- 

Return to bug 38425