From 4d900218b683637f0aa566c521172a787462f3bb Mon Sep 17 00:00:00 2001 From: Gregor Gawol <gawol@ub.uni-leipzig.de> Date: Thu, 29 Sep 2016 14:16:30 +0200 Subject: [PATCH] refs #8055: * add setting to suppress generic URLs for EBL records --- local/config/vufind/config.ini | 9 +++++++- local/dev/config/vufind/config.ini.sample | 1 + .../finc/RecordDriver/SolrMarcFincTrait.php | 23 ++++++++++++++++++- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/local/config/vufind/config.ini b/local/config/vufind/config.ini index 9e12d592142..48e79522906 100644 --- a/local/config/vufind/config.ini +++ b/local/config/vufind/config.ini @@ -1523,11 +1523,18 @@ remove[] = "gndmusic" ; Please note: Service if only available with configuration of [LinksRewrite] ; section. Use equal defined pattern below for ebl[pattern] and ebl[method] = ; resolveEblLink to call specific link resolver of EBL with authentication and -; persmision logic. +; permission logic. ;[Ebl] ;pattern = "namespace of uri" ;secret_key = "secret key provided by supplier" +; This setting defines a string that is used to identify Ebl-records by checking Marc +; 912a against it (see also https://intern.finc.info/issues/8055). This allows to +; suppress generic URLs found in Marc of Ebl records. +; Note: this requires to fully enable the [LinksRewrite] and [Ebl] sections including +; all settings otherwise the Ebl plugin might throw exceptions. +;product_sigel = "ZDB-89-EBL" + ; Section of rewriting of urls of marc field $856 using regular expression or ; through injection of self-declared method. Rewrite options here are not really ; fit to resolve by bare linkresolver logic or openurl processing. diff --git a/local/dev/config/vufind/config.ini.sample b/local/dev/config/vufind/config.ini.sample index c15aeaac4a8..48798f4e39c 100644 --- a/local/dev/config/vufind/config.ini.sample +++ b/local/dev/config/vufind/config.ini.sample @@ -67,6 +67,7 @@ showStyleBasedIcons = true [Ebl] pattern = "leip.eblib.com" secret_key = "SecretKey" +product_sigel = "ZDB-89-EBL" [LinksRewrite] ; Personalized rewriting of Open Urls. diff --git a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php index 027c4d88fc9..48eda402438 100644 --- a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php +++ b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php @@ -122,7 +122,7 @@ trait SolrMarcFincTrait if (true === in_array($isil, $this->isil)) { $isISIL = true; } - } else { + } else if (!$this->_isEBLRecord()) { $isISIL = true; } @@ -160,6 +160,27 @@ trait SolrMarcFincTrait return $retVal; } + /** + * Checks if the record is an EBL record (as defined in config.ini section + * [Ebl]->product_sigel) + * + * @return bool + * @link https://intern.finc.info/issues/8055 + */ + private function _isEBLRecord() + { + $value = $this->getFirstFieldValue('912', ['a']); + + if (isset($this->mainConfig->Ebl->product_sigel)) { + if (preg_match( + '/'.addslashes($this->mainConfig->Ebl->product_sigel).'/', $value + )) { + return true; + } + } + return false; + } + /** * Method to return the order information stored in fullrecord * LocalMarcFieldOfLibrary $m -- GitLab