diff --git a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php index 2eef855a23ea2d97e3485ddf9c223be80773802a..aa72a4340fa8b1203c356cddfeac37bd3533b39e 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 + ]; } } }