From f11b664990d5bfe34518d2a5bf00d62778d3b9fa Mon Sep 17 00:00:00 2001 From: Alexander Purr <purr@ub.uni-leipzig.de> Date: Tue, 9 Jun 2020 14:45:28 +0200 Subject: [PATCH] refs #17372 [finc] get license information via marc 540 a) u) * add method * add template --- local/languages/de.ini | 2 ++ local/languages/en.ini | 2 ++ .../finc/RecordDriver/SolrMarcFincTrait.php | 20 +++++++++++++++++++ .../DefaultRecord/data-license.phtml | 5 +++++ 4 files changed, 29 insertions(+) create mode 100644 themes/finc/templates/RecordDriver/DefaultRecord/data-license.phtml diff --git a/local/languages/de.ini b/local/languages/de.ini index a666e2a1f8f..336804999db 100644 --- a/local/languages/de.ini +++ b/local/languages/de.ini @@ -1970,3 +1970,5 @@ Modal_description = "Sie befinden sich in einem Dialogfenster, das über dem Hau Skip to search = "Weiter zum Suchbereich" ; Overwrite, only in de.ini necessary: Search type = "Suchtyp" + +License = "Lizenz" \ No newline at end of file diff --git a/local/languages/en.ini b/local/languages/en.ini index b1e8dc69e1f..d8e6fdb85ca 100644 --- a/local/languages/en.ini +++ b/local/languages/en.ini @@ -2067,3 +2067,5 @@ Modal_description = "This is a dialog window which overlays the main content of ; #17598 Skip to search = "Skip to search" + +License = "License" \ No newline at end of file diff --git a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php index a5f7b43b378..a8e7c73152d 100644 --- a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php +++ b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php @@ -2361,4 +2361,24 @@ trait SolrMarcFincTrait } } } + + /** + * refs #17372 + * Determine license name and url + * Check for Marc 540 a) u) + * + * @return array|null + */ + public function getLicense() { + if ($field = $this->getMarcRecord()->getField('540')) { + $retval = []; + foreach (['name' => 'a', 'url' => 'u'] as $key => $sub_name) { + if ($line = $field->getSubfield($sub_name)) { + $retval[$key] = $line->getData(); + } + } + return $retval; + } + return null; + } } diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/data-license.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/data-license.phtml new file mode 100644 index 00000000000..d8230b72f63 --- /dev/null +++ b/themes/finc/templates/RecordDriver/DefaultRecord/data-license.phtml @@ -0,0 +1,5 @@ +<!-- finc: RecordDriver - DefaultRecord - data-license --> +<?php if (!empty($data) && is_array($data)): ?> + <?= $data['name'] ?> (<a href="<?= $data['url'] ?>"><?= $data['url'] ?></a>) +<?php endif; ?> +<!-- finc: RecordDriver - DefaultRecord - data-license - END --> \ No newline at end of file -- GitLab