From 4e25eb883aa3acf60eff516239a006ea434a11cf Mon Sep 17 00:00:00 2001 From: Gregor Gawol <gawol@ub.uni-leipzig.de> Date: Thu, 25 Jun 2020 13:48:46 +0200 Subject: [PATCH] refs #15134 [master] marcfield 856 online information * set link label with config * retrieve subfield sequence y then n and then 3 * added indicators --- .../finc/RecordDriver/SolrMarcFincTrait.php | 38 ++++++++++++++++--- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php index 2eef855a23e..aa72a4340fa 100644 --- a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php +++ b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php @@ -116,18 +116,43 @@ trait SolrMarcFincTrait if ($address) { $address = $address->getData(); - $tmpArr = []; + //$tmpArr = []; // Is there a description? If not, just use the URL // itself. - foreach (['y', '3', 'z', 'x'] as $current) { + /*foreach (['y', '3', 'z', 'x'] as $current) { $desc = $url->getSubfield($current); if ($desc) { $desc = $desc->getData(); $tmpArr[] = $desc; } + }*/ + + $desc = false; + if ($url->getSubfield('y')) { + $desc = $url->getSubfield('y'); + } elseif ($url->getSubfield('n')) { + $desc = $url->getSubfield('n'); + } elseif ($url->getSubfield('3')) { + $desc = $url->getSubfield('3'); } - $tmpArr = array_unique($tmpArr); - $desc = implode(', ', $tmpArr); + + + if ($desc) { + $desc = $desc->getData(); + $desc = strlen($desc) > 3 ? + $desc : 'Online Information'; + + if (isset($this->mainConfig->UrlDesc->desc)) { + $tmpDesc = $this->mainConfig->UrlDesc->desc->toArray(); + if (in_array($desc, $tmpDesc)) { + $desc = 'Online Information'; + } + } + } else { + $desc = 'Online Information'; + } + //$tmpArr = array_unique($tmpArr); + //$desc = implode(', ', $tmpArr); // If no description take url as description // For 856[40] url denoting resource itself @@ -150,7 +175,10 @@ trait SolrMarcFincTrait $retVal ) ) { - $retVal[] = ['url' => $address, 'desc' => $desc]; + $retVal[] = [ + 'url' => $address, 'desc' => $desc, + 'indicators' => $indicator1.$indicator2 + ]; } } } -- GitLab