From 2acb54f6840ebff4e9e8eafffe6a6efebe10f941 Mon Sep 17 00:00:00 2001 From: Viola Elsenhans <elsenhans@ub.uni-leipzig.de> Date: Thu, 15 Sep 2016 16:58:37 +0200 Subject: [PATCH] refs #7924: * add config setting marc local field for gfzk * add LocalSubject by marc subfield q --- local/config/vufind/config.ini | 3 ++- .../finc/RecordDriver/SolrMarcFincTrait.php | 25 +++++++++++++++++++ .../RecordDriver/SolrMarc/core.phtml | 13 ++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) diff --git a/local/config/vufind/config.ini b/local/config/vufind/config.ini index d3d88eb97e5..9e12d592142 100644 --- a/local/config/vufind/config.ini +++ b/local/config/vufind/config.ini @@ -1504,10 +1504,11 @@ localMarcFieldOfLibraryMapping[] = "hgb:979" localMarcFieldOfLibraryMapping[] = "skd:983" localMarcFieldOfLibraryMapping[] = "slub:984" localMarcFieldOfLibraryMapping[] = "bas:985" +localMarcFieldOfLibraryMapping[] = "gfzk:986" ; Namespace to select the correct library specific Marc field from the ; localMarcFieldOfLibraryMapping -;localMarcFieldOfLibraryNamespace = "ubl" +localMarcFieldOfLibraryNamespace = "gfzk" ; In this section you can define strings to be used as filter for removing certain ; subjects from Marc records (used in getAllSubjectHeadings()). diff --git a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php index e99a9141928..0bb43b286bb 100644 --- a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php +++ b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php @@ -842,6 +842,31 @@ trait SolrMarcFincTrait } return []; } + + /** + * Return a local access number for call number. + * Marc field depends on library e.g. 986 for GfzK. + * Seems to be very extraordinary special case. + * + * @return array + * @access protected + * @link https://intern.finc.info/issues/7924 + */ + public function getLocalSubject() + { + $retval = []; + + $fields = $this->getMarcRecord()->getFields($this->getLocalMarcFieldOfLibrary()); + if (!$fields) { + return null; + } + foreach ($fields as $key => $field) { + if ($q = $field->getSubfield('q')) { + $retval[$key] = $q->getData(); + } + } + return $retval; + } /** * Get all local class subjects. First realization for HGB. diff --git a/themes/finc/templates/RecordDriver/SolrMarc/core.phtml b/themes/finc/templates/RecordDriver/SolrMarc/core.phtml index ce2a86f7511..687c5131607 100644 --- a/themes/finc/templates/RecordDriver/SolrMarc/core.phtml +++ b/themes/finc/templates/RecordDriver/SolrMarc/core.phtml @@ -323,6 +323,19 @@ if($loggedin = $this->auth()->isLoggedIn()) { </td> </tr> <? endif; ?> + + <? $subjects = $this->driver->getLocalSubject(); if (!empty($subjects)): ?> + <tr> + <th><?=$this->transEsc('Subjects')?>: </th> + <td> + <? $i = 0; foreach ($subjects as $field): ?> + <?=($i++ == 0) ? '' : ', '?> + <a title="<?=$this->escapeHtmlAttr($field)?>" href="<?=$this->record($this->driver)->getLink('subject', $field)?>" rel="nofollow"><?=trim($this->escapeHtml($field))?></a> + <? endforeach; ?> + </td> + </tr> + <? endif; ?> + </table> <?/* End Main Details */?> </div> -- GitLab