diff --git a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php index de44b3070922eaa627f8a9181cea4dae2bc7a8aa..fa4375a70a1e118106b27e8b8bcc352ea378dd7d 100644 --- a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php +++ b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php @@ -295,8 +295,10 @@ trait SolrMarcFincTrait */ public function getIndexOfGermanPrints() { - // define a false indicator - $lookfor_indicator = '8'; + // if IND1 === 8 we have an unspecified type of number + // if IND1 === 7 the "Source of number or code" is specified in subfield $2 + // however, we don't need to check that since we have a begins-with check on the field's data + $lookfor_indicators = ['7','8']; $retval = []; $fields = $this->getMarcRecord()->getFields('024'); @@ -305,11 +307,11 @@ trait SolrMarcFincTrait } foreach ($fields as $field) { // ->getIndicator(position) - $subjectrow = $field->getIndicator('1'); - if ($subjectrow == $lookfor_indicator) { + if (in_array($field->getIndicator('1'),$lookfor_indicators)) { if ($subfield = $field->getSubfield('a')) { - if (preg_match('/^VD/i', $subfield->getData()) > 0) { - $retval[] = $subfield->getData(); + $data = $subfield->getData(); + if (stripos($data,'VD') === 0) { + $retval[] = $data; } } }