diff --git a/local/config/vufind/config.ini b/local/config/vufind/config.ini index 9e12d592142d1ecabe584f50dfa07f5674916f37..48e795229069a8a8dd894df4095b4624469db965 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 c15aeaac4a897fd69dc2b52ca15e8d687079dcad..48798f4e39c40f71bd37c0657adf7daeea488856 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 027c4d88fc9c94e5bc24d43b08396cb70bbd0f20..48eda402438e4243db0338bc0cdc923a25726239 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