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