From 8ee02e02979288584bd7000e7524e72c2a543a44 Mon Sep 17 00:00:00 2001 From: Dorian Merz <merz@ub.uni-leipzig.de> Date: Wed, 27 Jan 2021 15:21:50 +0100 Subject: [PATCH] refs #18390 [fid_bbi] use multiple functions for RVK display * use getRvkWithMetadata as standard * getRvk (without metadata) only as fallback --- .../Root/RecordDataFormatterFactory.php | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/module/fid_bbi/src/fid_bbi/View/Helper/Root/RecordDataFormatterFactory.php b/module/fid_bbi/src/fid_bbi/View/Helper/Root/RecordDataFormatterFactory.php index 8692758b482..39f87ea365e 100644 --- a/module/fid_bbi/src/fid_bbi/View/Helper/Root/RecordDataFormatterFactory.php +++ b/module/fid_bbi/src/fid_bbi/View/Helper/Root/RecordDataFormatterFactory.php @@ -365,9 +365,16 @@ class RecordDataFormatterFactory extends \fid\View\Helper\Root\RecordDataFormatt $spec->setTemplateLine( 'Subjects', 'getAllSubjectHeadingsExtended', 'data-allSubjectHeadingsExtended.phtml' ); + /* $spec->setTemplateLine( 'RVK', 'getRVK', 'data-rvk.phtml' ); + */ + $spec->setMultiLine( + 'RVK', + true, + [$this,'multiRvk'] + ); $spec->setTemplateLine( 'BK', 'getBK', 'data-bk.phtml' ); @@ -459,4 +466,42 @@ class RecordDataFormatterFactory extends \fid\View\Helper\Root\RecordDataFormatt ]); return $spec->getArray(); } + + /** + * return render details for rvk data + * uses two different functions + * @return callback + */ + public function multiRvk($data, $options, $driver) + { + $args = func_get_args(); + // Sort the data: + $final = []; + $data = $driver->tryMethod('getRvkWithMetadata'); + if (!empty($data)) { + return [[ + 'label' => 'RVK', + 'values' => $data, + 'options' => [ + 'pos' => $options['pos'], + 'renderType' => 'RecordDriverTemplate', + 'template' => 'data-rvkNotation.phtml', + ], + ]]; + } + $data = $driver->tryMethod('getRvk'); + if (!empty($data)) { + return [[ + 'label' => 'RVK', + 'values' => $data, + 'options' => [ + 'pos' => $options['pos'], + 'renderType' => 'RecordDriverTemplate', + 'template' => 'data-rvk.phtml', + ], + ]]; + } + return []; + } + } -- GitLab