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