diff --git a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php index 40b481986aa08dd0ab481261e1f8250a95a8dc6c..fb499209ebb4c3333a6ea0eede93fa1f250363a0 100644 --- a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php +++ b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php @@ -125,6 +125,14 @@ trait SolrMarcFincTrait '609' => ['a'] ]; + // access status mappings for subfield $7 + $accessStatusMapping = [ + '0' => 'Open', + '1' => 'Restricted', + 'u' => 'unspecified', + 'z' => 'Other' + ]; + foreach ($fieldsToCheck as $field => $subfields) { $urls = $this->getMarcRecord()->getFields($field); $resultsPerIndicator2 = []; @@ -172,10 +180,17 @@ trait SolrMarcFincTrait } } + $sub7 = $url->getSubfield("7"); + if ($sub7) { + $accessStatus = $sub7->getData(); + } + $resultsPerIndicator2[$indicator2][$isil][] = [ 'url' => $address, 'desc' => $desc, 'indicators' => $indicator1 . $indicator2, + 'accessStatus' => isset($accessStatus) + ? $accessStatusMapping[$accessStatus] : '', ]; } if ($field == '609') {