From f9736a3b1cd88895beb79c70ad4d77ec0631bca9 Mon Sep 17 00:00:00 2001 From: Alexander Purr <purr@ub.uni-leipzig.de> Date: Tue, 24 Mar 2020 17:20:29 +0100 Subject: [PATCH] refs #17176 [master] add get number of pages function to marc record driver --- .../finc/RecordDriver/SolrMarcFincTrait.php | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php index 4eae117cdcf..5a31c864025 100644 --- a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php +++ b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php @@ -2308,4 +2308,24 @@ trait SolrMarcFincTrait { return $this->getFieldArray('501'); } + + /** + * Get total number of record pages + * Reads MARC field 300|a + * + * @return int|null + */ + public function getNumberOfPages() + { + if ($data = $this->getMarcRecord()->getField('300')->getSubfield('a')->getData()) + { + // Grab first occurance of a number + preg_match('/([1-9]\d*)/', $data, $matches); + if ($page = $matches[0]) + { + return (int) $page; + } + } + return null; + } } -- GitLab