Bugzilla – Attachment 181975 Details for
Bug 38425
Add links to full texts based on identifiers
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 38425: Add external links based on PIDs (UNIMARC)
Bug-38425-Add-external-links-based-on-PIDs-UNIMARC.patch (text/plain), 10.93 KB, created by
Alexander Wagner
on 2025-05-06 13:55:21 UTC
(
hide
)
Description:
Bug 38425: Add external links based on PIDs (UNIMARC)
Filename:
MIME Type:
Creator:
Alexander Wagner
Created:
2025-05-06 13:55:21 UTC
Size:
10.93 KB
patch
obsolete
>From 71b5aab40f0edcfcef2c042128677ee175bb05c8 Mon Sep 17 00:00:00 2001 >From: Alexander Wagner <alexander.wagner@desy.de> >Date: Tue, 6 May 2025 13:45:55 +0000 >Subject: [PATCH] Bug 38425: Add external links based on PIDs (UNIMARC) > >Render some (common) identifiers field UNIMARC 017 as links to external >resources by evaluating `$2` and using the appropriate resolver URL. >Currently implemented values for `$2`: arXiv, doi, inspire, openlibrary, >pmc, pmid. The patch includes adds the class `resource_list` to the >intranet scss to be able to use the identical XSLT code as for the OPAC. > >Test plan: > >1. Open intranet interface and edit any record >2. Add PIDs to your records. For Marc21 use `024 7_` > for UNIMARC use `017 7_` with the following subfield layout: > - $2 doi $a 10.2147/CIA.S157877 > - $2 pmid $a 29942120 > - $2 pmc $a PMC6005330 > - $2 arxiv: $a arxiv:2411.05889 > - $2 inspire $a 2835154 > - $2 openlibrary $a OL27448W > (May be all or any combination. The values of $a would not matter, > the above just gives valid links to the external system in question.) >3. Check intranet detail display of the record: nothing appears >4. Check OPAC detail display of the record: nothing appears >5. Apply the patch >6. Check intranet detail display of the record. It now gives a new line: > External Resource(s): <here links to whatever was added in step 2) > The ids are clickable and lead to the external system >7. Check OPAC detail display of the record: > External Resource(s): <here links to whatever was added in step 2) > The ids are clickable and lead to the external system > >Sponsored-by: Deutsches Elektronen-Synchrotron DESY, Library >--- > .../en/xslt/UNIMARCslim2intranetDetail.xsl | 81 +++++++++++++++++++ > .../en/xslt/UNIMARCslim2OPACDetail.xsl | 81 +++++++++++++++++++ > 2 files changed, 162 insertions(+) > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/xslt/UNIMARCslim2intranetDetail.xsl b/koha-tmpl/intranet-tmpl/prog/en/xslt/UNIMARCslim2intranetDetail.xsl >index 982bea8b8b..be7e368fcb 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/xslt/UNIMARCslim2intranetDetail.xsl >+++ b/koha-tmpl/intranet-tmpl/prog/en/xslt/UNIMARCslim2intranetDetail.xsl >@@ -23,6 +23,87 @@ > <xsl:variable name="biblionumber" select="marc:controlfield[@tag=001]"/> > > >+ <!-- Add links based on persistent identifiers Bug 38425 --> >+ <xsl:if test="marc:datafield[@tag=017]"> >+ <span class="results_summary pid_links"> >+ <span class="label">External resource(s): </span> >+ <ul class="resource_list"> >+ <xsl:for-each select="marc:datafield[@tag=017]/marc:subfield[@code='2']"> >+ <xsl:choose> >+ <xsl:when test=". = 'doi'"> >+ <li> >+ <span class="label">doi:</span> >+ <xsl:for-each select="../marc:subfield[@code='a']"> >+ <a> >+ <xsl:attribute name="href">https://doi.org/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute> >+ <xsl:value-of select="current()" /> >+ </a> >+ </xsl:for-each> >+ </li> >+ </xsl:when> >+ <xsl:when test=". = 'pmid'"> >+ <li> >+ <span class="label">PMID: </span> >+ <xsl:for-each select="../marc:subfield[@code='a']"> >+ <a> >+ <xsl:attribute name="href">https://pubmed.ncbi.nlm.nih.gov/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute> >+ <xsl:value-of select="current()" /> >+ </a> >+ </xsl:for-each> >+ </li> >+ </xsl:when> >+ <xsl:when test=". = 'pmc'"> >+ <li> >+ <span class="label">PMCID: </span> >+ <xsl:for-each select="../marc:subfield[@code='a']"> >+ <a> >+ <xsl:attribute name="href">https://pmc.ncbi.nlm.nih.gov/articles/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute> >+ <xsl:value-of select="current()" /> >+ </a> >+ </xsl:for-each> >+ </li> >+ </xsl:when> >+ <xsl:when test=". = 'arxiv'"> >+ <li> >+ <!-- arXiv-ids are `arxiv:1234.5678` is redundant >+ <span class="label">arXiv:</span> >+ --> >+ <xsl:for-each select="../marc:subfield[@code='a']"> >+ <a> >+ <xsl:attribute name="href">https://arxiv.org/abs/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute> >+ <xsl:value-of select="current()" /> >+ </a> >+ </xsl:for-each> >+ </li> >+ </xsl:when> >+ <xsl:when test=". = 'inspire'"> >+ <li> >+ <span class="label">inspire: </span> >+ <xsl:for-each select="../marc:subfield[@code='a']"> >+ <a> >+ <xsl:attribute name="href">https://inspirehep.net/literature/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute> >+ <xsl:value-of select="current()" /> >+ </a> >+ </xsl:for-each> >+ </li> >+ </xsl:when> >+ <xsl:when test=". = 'openlibrary'"> >+ <li> >+ <span class="label">OpenLibrary: </span> >+ <xsl:for-each select="../marc:subfield[@code='a']"> >+ <a> >+ <xsl:attribute name="href">https://openlibrary.org/works/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute> >+ <xsl:value-of select="current()" /> >+ </a> >+ </xsl:for-each> >+ </li> >+ </xsl:when> >+ </xsl:choose> >+ </xsl:for-each> >+ </ul> >+ </span> >+ </xsl:if> >+ > <xsl:if test="marc:datafield[@tag=200]"> > <xsl:for-each select="marc:datafield[@tag=200]"> > <h1> >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/UNIMARCslim2OPACDetail.xsl b/koha-tmpl/opac-tmpl/bootstrap/en/xslt/UNIMARCslim2OPACDetail.xsl >index 0992550b1a..2e8233b1a4 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/UNIMARCslim2OPACDetail.xsl >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/xslt/UNIMARCslim2OPACDetail.xsl >@@ -24,6 +24,87 @@ > <xsl:variable name="URLLinkText" select="marc:sysprefs/marc:syspref[@name='URLLinkText']"/> > <xsl:variable name="ContentWarningField" select="marc:sysprefs/marc:syspref[@name='ContentWarningField']"/> > >+ <!-- Add links based on persistent identifiers Bug 38425 --> >+ <xsl:if test="marc:datafield[@tag=017]"> >+ <span class="results_summary pid_links"> >+ <span class="label">External resource(s): </span> >+ <ul class="resource_list"> >+ <xsl:for-each select="marc:datafield[@tag=017]/marc:subfield[@code='2']"> >+ <xsl:choose> >+ <xsl:when test=". = 'doi'"> >+ <li> >+ <span class="label">doi:</span> >+ <xsl:for-each select="../marc:subfield[@code='a']"> >+ <a> >+ <xsl:attribute name="href">https://doi.org/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute> >+ <xsl:value-of select="current()" /> >+ </a> >+ </xsl:for-each> >+ </li> >+ </xsl:when> >+ <xsl:when test=". = 'pmid'"> >+ <li> >+ <span class="label">PMID: </span> >+ <xsl:for-each select="../marc:subfield[@code='a']"> >+ <a> >+ <xsl:attribute name="href">https://pubmed.ncbi.nlm.nih.gov/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute> >+ <xsl:value-of select="current()" /> >+ </a> >+ </xsl:for-each> >+ </li> >+ </xsl:when> >+ <xsl:when test=". = 'pmc'"> >+ <li> >+ <span class="label">PMCID: </span> >+ <xsl:for-each select="../marc:subfield[@code='a']"> >+ <a> >+ <xsl:attribute name="href">https://pmc.ncbi.nlm.nih.gov/articles/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute> >+ <xsl:value-of select="current()" /> >+ </a> >+ </xsl:for-each> >+ </li> >+ </xsl:when> >+ <xsl:when test=". = 'arxiv'"> >+ <li> >+ <!-- arXiv-ids are `arxiv:1234.5678` is redundant >+ <span class="label">arXiv:</span> >+ --> >+ <xsl:for-each select="../marc:subfield[@code='a']"> >+ <a> >+ <xsl:attribute name="href">https://arxiv.org/abs/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute> >+ <xsl:value-of select="current()" /> >+ </a> >+ </xsl:for-each> >+ </li> >+ </xsl:when> >+ <xsl:when test=". = 'inspire'"> >+ <li> >+ <span class="label">inspire: </span> >+ <xsl:for-each select="../marc:subfield[@code='a']"> >+ <a> >+ <xsl:attribute name="href">https://inspirehep.net/literature/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute> >+ <xsl:value-of select="current()" /> >+ </a> >+ </xsl:for-each> >+ </li> >+ </xsl:when> >+ <xsl:when test=". = 'openlibrary'"> >+ <li> >+ <span class="label">OpenLibrary: </span> >+ <xsl:for-each select="../marc:subfield[@code='a']"> >+ <a> >+ <xsl:attribute name="href">https://openlibrary.org/works/<xsl:value-of select="str:encode-uri(current(), true())"/></xsl:attribute> >+ <xsl:value-of select="current()" /> >+ </a> >+ </xsl:for-each> >+ </li> >+ </xsl:when> >+ </xsl:choose> >+ </xsl:for-each> >+ </ul> >+ </span> >+ </xsl:if> >+ > <xsl:if test="marc:datafield[@tag=200]"> > <xsl:for-each select="marc:datafield[@tag=200]"> > <h2 class="title"> >-- >2.39.5
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 38425
:
174425
|
181900
|
181974
| 181975