diff --git a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php index a88a11c759597a48ebffcb963b220fdbfbba0965..803e6d9aad71764e643146ef4d3a3406ac72ac4b 100644 --- a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php +++ b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php @@ -356,6 +356,32 @@ trait SolrMarcFincTrait return $retval; } + + /** + * Method reading MARC field 24 + * + * @return array + * @access public + */ + public function getOtherIdentifiers() + { + $fields = $this->getMarcRecord()->getFields('024'); + if (!$fields) { + return null; + } + foreach ($fields as $field) { + if ($subfield = $field->getSubfield('a')) { + $data = $subfield->getData(); + $type = 'unspecified'; + if ($field->getIndicator('1') == '7' && $sub2 = $field->getSubfield('2')) { + $type = $sub2->getData(); + } + $retval[$type][] = $data; + } + } + return $retval; + } + /** * Get an array of instrumentation notes taken from the local data * of the Petrucci music library subfield 590b diff --git a/module/finc/src/finc/View/Helper/Root/MultiDataFieldsTrait.php b/module/finc/src/finc/View/Helper/Root/MultiDataFieldsTrait.php index be5bd3f42ad61d9ce894e31b91c12c8514082404..b9536ccab15bf7871c05c89ade86a935039feb04 100644 --- a/module/finc/src/finc/View/Helper/Root/MultiDataFieldsTrait.php +++ b/module/finc/src/finc/View/Helper/Root/MultiDataFieldsTrait.php @@ -134,4 +134,25 @@ trait MultiDataFieldsTrait return $final; } + /** + * return render details for otherIdentifiers (MARC 024) data set + * @return callback + */ + public function otherIdentifiers($data, $options, $driver) + { + // Sort the data: + $final = []; + foreach ($data as $type => $values) { + $final[] = [ + 'label' => $type, + 'values' => $values, + 'options' => [ + 'pos' => $options['pos'], + 'renderType' => 'Simple', + ], + ]; + } + return $final; + } + }