From f2b54249c42cb4ea6c487d1f97c8f87350c6f95a Mon Sep 17 00:00:00 2001
From: Gregor Gawol <gawol@ub.uni-leipzig.de>
Date: Fri, 19 Mar 2021 13:47:03 +0100
Subject: [PATCH] refs #17129 [master] display former titles * added method

---
 .../finc/RecordDriver/SolrMarcFincTrait.php   | 32 +++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php
index 84838f47913..fa583555078 100644
--- a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php
+++ b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php
@@ -1549,6 +1549,37 @@ trait SolrMarcFincTrait
         return $retval;
     }
 
+    /**
+     * Returns former title stored in Marc 247$a.
+     * Refs. #17129
+     *
+     * @return array|null
+     */
+    public function getFormerTitle()
+    {
+        $retval = [];
+
+        $fields = $this->getMarcRecord()->getFields('247');
+
+        if (!$fields) {
+            return null;
+        }
+        foreach ($fields as $field) {
+            $subfieldA = $field->getSubfield('a');
+            if ($subfieldA
+                && ($field->getIndicator('2') == 0)
+            ) {
+                $value = $subfieldA->getData();
+                if ($subfieldF = $field->getSubfield('f')) {
+                    $value = $value . ' (' . $subfieldF->getData() . ')';
+                }
+                $retval[] = $value;
+            }
+
+        }
+        return $retval;
+    }
+
     /**
      * Returns all notes.
      *
@@ -1558,6 +1589,7 @@ trait SolrMarcFincTrait
     {
         $notes = array_merge(
             (array)$this->getGeneralNotes(),
+            (array)$this->getFormerTitle(),
             (array)$this->getAdditionalNotes()
         );
         foreach ($notes as &$note) {
-- 
GitLab