Skip to content
Snippets Groups Projects
Commit 22891ec5 authored by André Lahmann's avatar André Lahmann
Browse files

refs #7063:

* cleaned finc-custom section in local config.ini
* implemented lazy loading of library specific Marc field in SolrMarcFincTrait
* enabled hierarchy-view globally
* disabled collections-view globally
parent 09c6a889
No related merge requests found
......@@ -44,7 +44,6 @@
; DE-Gla 1
;baseUrl = http://139.18.19.238:9080/daiatheca/daia/
;ilsIdentifier = "record_id"
;daiaIdPrefix = "DE-Gla1:ppn:"
;ilsIdentifier = "record_id"
;multiQuery = true
......
......@@ -4,7 +4,7 @@
; All - any record with is_hierarchy set
; Top - any record where is_hierarchy = hierarchy_top
; None - never link to the collection module
link_type = "Top"
link_type = "None"
[HierarchyTree]
; Are hierarchy trees visible? -- true or false (default false)
......
......@@ -1212,7 +1212,7 @@ HMACkey = mySuperSecretValue
; field of the Solr index.
driver = Default
; Should we display hierarchy trees? (default = false)
;showTree = true
showTree = true
; "Search within trees" can be disabled here if set to "false" (default = true)
search = true
; You can limit the number of search results highlighted when searching the tree;
......@@ -1318,22 +1318,38 @@ max_tag_length = 64
;isil[] = "DE-15-292"
;bik = "952000-4"
; This section contains all site related customization for finc
;[CustomSite]
; Combine more formats to one css class. If false first format entry will taken
; to display icon symbol
;combinedIcons = false
;namespace = ubl
; This section contains all index related customizations for finc
;[CustomIndex]
; Special settings to control single instances of libaries within one vufind
; installation.
;indexExtension = "de15" ; for solr index of hmt
[CustomIndex]
; The indexExtension allows to select library specific index fields (e.g.
; barcode_{indexExtension}, callnumber_{indexExtension}, format_{indexExtension}
; etc.).
;indexExtension = "de15"
; take general format field of Solr index. If false it takes the format fields
; with index extension defined above.
;generalFormats = true ;for ubl & htwk it should be true
; This mapping allows access to library specific Marc fields identified by the
; library namespace (defined in localMarcFieldOfLibraryNamespace)
localMarcFieldOfLibraryMapping[] = "ubl:969"
localMarcFieldOfLibraryMapping[] = "hmt:970"
localMarcFieldOfLibraryMapping[] = "che:971"
localMarcFieldOfLibraryMapping[] = "tuf:972"
localMarcFieldOfLibraryMapping[] = "htw:973"
localMarcFieldOfLibraryMapping[] = "htwk:974"
localMarcFieldOfLibraryMapping[] = "zwi:975"
localMarcFieldOfLibraryMapping[] = "zit:976"
localMarcFieldOfLibraryMapping[] = "hfm:977"
localMarcFieldOfLibraryMapping[] = "hfbk:978"
localMarcFieldOfLibraryMapping[] = "hgb:979"
localMarcFieldOfLibraryMapping[] = "skd:983"
localMarcFieldOfLibraryMapping[] = "slub:984"
localMarcFieldOfLibraryMapping[] = "bas:985"
; Namespace to select the correct library specific Marc field from the
; localMarcFieldOfLibraryMapping
;localMarcFieldOfLibraryNamespace = "ubl"
; This section configures the form for patrdon driven acquisition suggestions.
;[Acquisition]
; Email address to receive the acquisition suggestions
......
......@@ -77,6 +77,7 @@ class SolrMarcFinc extends SolrMarc
{
parent::__construct($mainConfig, $recordConfig, $searchSettings);
// get the isil set in InstitutionInfo in config.ini
if (isset($mainConfig->InstitutionInfo->isil)
&& count($mainConfig->InstitutionInfo->isil) > 0
) {
......@@ -85,26 +86,5 @@ class SolrMarcFinc extends SolrMarc
$this->debug('InstitutionInfo setting: isil is missing.');
}
if (isset($this->mainConfig->CustomSite->namespace)) {
// map for marc fields
$map = [
'che' => '971',
'hgb' => '979',
'hfbk' => '978',
'hfm' => '977',
'hmt' => '970',
'htw' => '973',
'htwk' => '974',
'tuf' => '972',
'ubl' => '969',
'zit' => '976',
'zwi' => '975',
];
$this->localMarcFieldOfLibrary
= isset($map[$this->mainConfig->CustomSite->namespace]) ?
$map[$this->mainConfig->CustomSite->namespace] : null;
} else {
$this->debug('Namespace setting for localMarcField is missing.');
}
}
}
\ No newline at end of file
......@@ -239,7 +239,7 @@ trait SolrMarcFincTrait
protected function getLocalGivenCallnumber()
{
$retval = [];
$arrSignatur = $this->getFieldArray($this->localMarcFieldOfLibrary, ['i']);
$arrSignatur = $this->getFieldArray($this->getLocalMarcFieldOfLibrary(), ['i']);
foreach ($arrSignatur as $signatur) {
foreach ($this->isil as $code) {
......@@ -427,8 +427,8 @@ trait SolrMarcFincTrait
*/
protected function getLocalAccessNumber()
{
if (null != $this->localMarcFieldOfLibrary) {
return $this->getFieldArray($this->localMarcFieldOfLibrary, ['o']);
if (null != $this->getLocalMarcFieldOfLibrary()) {
return $this->getFieldArray($this->getLocalMarcFieldOfLibrary(), ['o']);
}
return [];
}
......@@ -485,8 +485,8 @@ trait SolrMarcFincTrait
*/
public function getLocalFormat()
{
if (null != $this->localMarcFieldOfLibrary) {
if (count($localformat = $this->getFieldArray($this->localMarcFieldOfLibrary, ['c'])) > 0) {
if (null != $this->getLocalMarcFieldOfLibrary()) {
if (count($localformat = $this->getFieldArray($this->getLocalMarcFieldOfLibrary(), ['c'])) > 0) {
foreach ($localformat as &$line) {
if ($line != "") {
$line = trim('local_format_' . strtolower($line));
......@@ -499,6 +499,39 @@ trait SolrMarcFincTrait
return [];
}
/**
* Returns lazily the library specific Marc field configured by CustomIndex
* settings in config.ini
*
* @return mixed
* @link https://intern.finc.info/issues/7063
*/
protected function getLocalMarcFieldOfLibrary()
{
// return the library specific Marc field if its already set
if ($this->localMarcFieldOfLibrary != null) {
return $this->localMarcFieldOfLibrary;
}
// get the library specific Marc field configured by CustomIndex settings in
// config.ini
if (isset($this->mainConfig->CustomIndex->localMarcFieldOfLibraryNamespace)) {
$namespace = $this->mainConfig->CustomIndex->localMarcFieldOfLibraryNamespace;
if (isset($this->mainConfig->CustomIndex->localMarcFieldOfLibraryMapping)) {
foreach ($this->mainConfig->CustomIndex->localMarcFieldOfLibraryMapping as $mappingValue) {
list ($ns, $fn) = explode(':', $mappingValue);
if (trim($ns) == trim($namespace)) {
$this->localMarcFieldOfLibrary = $fn;
break;
}
}
}
} else {
$this->debug('Namespace setting for localMarcField is missing.');
}
return $this->localMarcFieldOfLibrary;
}
/**
* Return a local notice via an consortial defined field with subfield $k.
* Marc field depends on library e.g. 970 for HMT or 972 for TUBAF.
......@@ -509,8 +542,8 @@ trait SolrMarcFincTrait
*/
protected function getLocalNotice()
{
if (null != $this->localMarcFieldOfLibrary) {
return $this->getFieldArray($this->localMarcFieldOfLibrary, ['k']);
if (null != $this->getLocalMarcFieldOfLibrary()) {
return $this->getFieldArray($this->getLocalMarcFieldOfLibrary(), ['k']);
}
return [];
}
......@@ -669,8 +702,8 @@ trait SolrMarcFincTrait
*/
protected function getPurchaseInformation()
{
if (null != $this->localMarcFieldOfLibrary) {
if ($this->getFirstFieldValue($this->localMarcFieldOfLibrary, ['m']) == 'e') {
if (null != $this->getLocalMarcFieldOfLibrary()) {
if ($this->getFirstFieldValue($this->getLocalMarcFieldOfLibrary(), ['m']) == 'e') {
return true;
}
}
......@@ -702,9 +735,9 @@ trait SolrMarcFincTrait
protected function getUDKs()
{
$array = [];
if (null != $this->localMarcFieldOfLibrary) {
if (null != $this->getLocalMarcFieldOfLibrary()) {
$udk = $this->getMarcRecord()->getFields($this->localMarcFieldOfLibrary);
$udk = $this->getMarcRecord()->getFields($this->getLocalMarcFieldOfLibrary());
// if not return void value
if (!$udk) {
return $array;
......
......@@ -86,27 +86,5 @@ class SolrMarcRemoteFinc extends SolrMarcRemote
} else {
$this->debug('InstitutionInfo setting: isil is missing.');
}
if (isset($this->mainConfig->CustomSite->namespace)) {
// map for marc fields
$map = [
'che' => '971',
'hgb' => '979',
'hfbk' => '978',
'hfm' => '977',
'hmt' => '970',
'htw' => '973',
'htwk' => '974',
'tuf' => '972',
'ubl' => '969',
'zit' => '976',
'zwi' => '975',
];
$this->localMarcFieldOfLibrary
= isset($map[$this->mainConfig->CustomSite->namespace]) ?
$map[$this->mainConfig->CustomSite->namespace] : null;
} else {
$this->debug('Namespace setting for localMarcField is missing.');
}
}
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment