diff --git a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php index 4eae117cdcf4cb7c8a863e1532b3db40319be2af..5a31c8640253564d754439519d2492dc6db47f40 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; + } }