From 0ba6769c767640be9a2822322823283363358a23 Mon Sep 17 00:00:00 2001 From: Frank Morgner <morgnerf@ub.uni-leipzig.de> Date: Mon, 10 Sep 2018 11:26:55 +0200 Subject: [PATCH] refs #13831 * adds method getCartographicData at SolrMarcFincTrait for retrieval of marc21 subfields 255$a$c --- .../finc/RecordDriver/SolrMarcFincTrait.php | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php index b32373607b1..20c805c7a91 100644 --- a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php +++ b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php @@ -1915,6 +1915,34 @@ trait SolrMarcFincTrait return $this->getFirstFieldValue('245', ['n']); } + /** + * Get Cartographic Mathematical Data + * + * @return array Return multidimensional array with key of 'coordinates' + * and 'scale' + * @access public + */ + public function getCartographicData() { + + // internal vars + $retVal = []; + $i = 0; + // map of subfield to returning value key + $mapper = ['a' => 'scale', 'c' => 'coordinates']; + + $fields = $this->getMarcRecord()->getFields('255'); + foreach($fields as $f) { + foreach ($mapper as $subfield => $key) { + $sub = $f->getSubField($subfield); + if ($sub) { + $retVal[$i][$key] = $sub->getData(); + } + } + $i++; + } + return $retVal; + } + /** * Get an array of content notes. * -- GitLab