From 43f68c19ca13965c15adc2d69fde434ccf494988 Mon Sep 17 00:00:00 2001
From: Robert Lange <robert.lange@uni-leipzig.de>
Date: Wed, 1 Dec 2021 21:39:56 +0100
Subject: [PATCH] refs #20266 [finc] add specific method for additional titles
 (Marc 249a) in SolrMarcFincTrait

* add template for multiple lines with horizontal rows in one table data
* add css classes for more detailed margins
* add translations for aditional titles, TODO: remove from de_15 and rk_le
---
 local/languages/de.ini                        |  3 +++
 local/languages/en.ini                        |  3 +++
 .../finc/RecordDriver/SolrMarcFincTrait.php   | 20 +++++++++++++++++++
 themes/finc/scss/compiled.scss                | 12 +++++++++++
 .../DefaultRecord/data-multiline.phtml        |  7 +++++++
 5 files changed, 45 insertions(+)
 create mode 100644 themes/finc/templates/RecordDriver/DefaultRecord/data-multiline.phtml

diff --git a/local/languages/de.ini b/local/languages/de.ini
index 6428ea95682..bf138d11610 100644
--- a/local/languages/de.ini
+++ b/local/languages/de.ini
@@ -2081,3 +2081,6 @@ Unknown Electronic = "Titel ist beim Resolver-Service nicht bekannt"
 title_wrapper = "%%pageTitle%% %%titleSeparator%% %%siteTitle%%"
 
 load_tab_content_hint = "Klicken Sie hier, um den Inhalt der Registerkarte zu laden."
+
+; #20266
+Additional Titles = "Weitere Titel"
diff --git a/local/languages/en.ini b/local/languages/en.ini
index f1aa7b7cf47..b3d25fe3f7e 100644
--- a/local/languages/en.ini
+++ b/local/languages/en.ini
@@ -2168,3 +2168,6 @@ Unknown Electronic = "Record is unknown to the resolver service"
 title_wrapper = "%%pageTitle%% %%titleSeparator%% %%siteTitle%%"
 
 load_tab_content_hint = "Click to load tab content."
+
+; #20266
+Additional Titles = "Additional Titles"
\ 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 ba947ac8b20..fd921067791 100644
--- a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php
+++ b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php
@@ -572,6 +572,26 @@ trait SolrMarcFincTrait
         return count($array) ? array_pop($array) : '';
     }
 
+    /**
+     * Get an array of title details with information from MARC field 249a.
+     *
+     * @return array
+     */
+    public function getTitleDetails249a()
+    {
+        $titleDetails = [];
+
+        if ($field = $this->getMarcRecord()->getField('249')) {
+            if ($subfields = $field->getSubfields('a')) {
+                foreach ($subfields as $subfield) {
+                    $titleDetails[] = $subfield->getData();
+                }
+            }
+        }
+
+        return array_unique($titleDetails);
+    }
+
     /**
      * Get an array of title detail lines with original notations combining
      * information from MARC field 245 and linked content in 880.
diff --git a/themes/finc/scss/compiled.scss b/themes/finc/scss/compiled.scss
index 7b324eb9c67..63d611713d1 100644
--- a/themes/finc/scss/compiled.scss
+++ b/themes/finc/scss/compiled.scss
@@ -1265,11 +1265,23 @@ table.collapse.in {
   margin-top: ($grid-gutter-width / 2);
 }
 
+.margin-t-half {
+  margin-top: ($grid-gutter-width / 4);
+}
+
 ////// NO margin bottom
 .no-margin-btm {
   margin-bottom: 0;
 }
 
+.margin-btm {
+  margin-bottom: ($grid-gutter-width / 2);
+}
+
+.margin-btm-half {
+  margin-bottom: ($grid-gutter-width / 4);
+}
+
 ////// NO margin left
 .no-margin-l {
   margin-left: 0;
diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/data-multiline.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/data-multiline.phtml
new file mode 100644
index 00000000000..0e1ea678530
--- /dev/null
+++ b/themes/finc/templates/RecordDriver/DefaultRecord/data-multiline.phtml
@@ -0,0 +1,7 @@
+<!-- finc: RecordDriver - DefaultRecord - data-multiline -->
+<?php if (is_array($data)): ?>
+  <?=implode('<hr class="margin-t-half margin-btm-half" />', $data) ?>
+<?php else: ?>
+  <?= $data ?>
+<?php endif; ?>
+<!-- finc: RecordDriver - DefaultRecord - data-multiline - END -->
-- 
GitLab