diff --git a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php index 84838f47913e106156487e6a4de4131fe8c965f8..fa58355507807d2ebeedad5bda6718257c4ece80 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) {