diff --git a/module/finc/src/finc/RecordDriver/SolrDico.php b/module/finc/src/finc/RecordDriver/SolrDico.php index c18b6323c5f9d13acae3e22426ed6bc5b51dda0b..f534a67a14fc65bfef7d66058de4f478a8e9d589 100644 --- a/module/finc/src/finc/RecordDriver/SolrDico.php +++ b/module/finc/src/finc/RecordDriver/SolrDico.php @@ -124,7 +124,7 @@ class SolrDico extends SolrDefault * Returns the object'S licence information from the full record * @return array */ - public function getLicenceInfo() + public function getLicense() { $prefix = "object_rights_statement_"; $fields = [ diff --git a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php index c17bd5e99f6029bf368c46cdf01dccda9e2e53d8..c5ca36fcf7ea41d05ac033bde79e118a30388583 100644 --- a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php +++ b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php @@ -2476,16 +2476,20 @@ trait SolrMarcFincTrait * @return array|null */ public function getLicense() { - if ($field = $this->getMarcRecord()->getField('540')) { + $retval = null; + if ($licenses = $this->getMarcRecord()->getFields('540')) { $retval = []; - foreach (['name' => 'a', 'url' => 'u'] as $key => $sub_name) { - if ($line = $field->getSubfield($sub_name)) { - $retval[$key] = $line->getData(); + $i = 0; + foreach ($licenses as $license) { + foreach (['code' => 'a', 'url' => 'u', 'text' => 'f'] as $key => $sub_name) { + if ($line = $license->getSubfield($sub_name)) { + $retval[$i][$key] = $line->getData(); + } } + $i++; } - return $retval; } - return null; + return $retval; } /** diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/data-license.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/data-license.phtml deleted file mode 100644 index d8230b72f63ddea10fbed660a4fd7003156f60a2..0000000000000000000000000000000000000000 --- a/themes/finc/templates/RecordDriver/DefaultRecord/data-license.phtml +++ /dev/null @@ -1,5 +0,0 @@ -<!-- finc: RecordDriver - DefaultRecord - data-license --> -<?php if (!empty($data) && is_array($data)): ?> - <?= $data['name'] ?> (<a href="<?= $data['url'] ?>"><?= $data['url'] ?></a>) -<?php endif; ?> -<!-- finc: RecordDriver - DefaultRecord - data-license - END --> \ No newline at end of file diff --git a/themes/finc/templates/RecordDriver/SolrDico/data-license.phtml b/themes/finc/templates/RecordDriver/SolrDico/data-license.phtml new file mode 100644 index 0000000000000000000000000000000000000000..5cef1f3ac0db8b0faed390010fe4c9c930e2d2de --- /dev/null +++ b/themes/finc/templates/RecordDriver/SolrDico/data-license.phtml @@ -0,0 +1,17 @@ +<!-- finc: RecordDriver - SolrDico - data-license --> +<!-- in contrast to SolrMarc data-license.phtml, $data is an one-dimensional array and has an optional icon --> +<?php $label = $this->escapeHtml($data['code']) . " (" . $this->escapeHtml($data['text']) . ")"; ?> +<?php ob_start() ?> +<?=$label ?> +<?php if (isset($data['icon'])): ?> + <img class="collection-data collection-licence-image" src="<?=$data['icon']?>"/> +<?php endif; ?> +<?php $label = ob_get_contents(); + ob_end_clean(); +?> +<?php if (isset($data['url'])): ?> + <?= $this->externalLink($data['url'], $label) ?> +<?php else: ?> + <?= $label ?> +<?php endif;?> +<!-- finc: RecordDriver - SolrDico - data-license - END --> \ No newline at end of file diff --git a/themes/finc/templates/RecordDriver/SolrMarc/data-license.phtml b/themes/finc/templates/RecordDriver/SolrMarc/data-license.phtml new file mode 100644 index 0000000000000000000000000000000000000000..7407ecf961246ea38be15eece3b0f5bb2323dfd0 --- /dev/null +++ b/themes/finc/templates/RecordDriver/SolrMarc/data-license.phtml @@ -0,0 +1,14 @@ +<!-- finc: RecordDriver - SolrMarc - data-licence --> +<?php if (is_array($data) && count($data)): ?> + <?php foreach ($data as $license) : ?> + <div> + <?php $text = ($license['code'] ?? '') . (isset($license['text']) ? " ({$license['text']})" : '') ?> + <?php if (isset($license['url'])): ?> + <?= $this->externalLink($license['url'], $text ?? $license['url']) ?> + <?php else: ?> + <?= $text ?> + <?php endif;?> + </div> + <?php endforeach; ?> +<?php endif; ?> +<!-- finc: RecordDriver - SolrMarc - data-licence - END --> \ No newline at end of file