From dc3b7cd65f04bfa1edf1e018208226dcc585eb52 Mon Sep 17 00:00:00 2001 From: David Mellen Date: Tue, 5 Nov 2024 09:37:21 +0100 Subject: [PATCH] feat: output form checkbox links in description and allow positional parameters --- Classes/Form/FormDefinitionDecorator.php | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Classes/Form/FormDefinitionDecorator.php b/Classes/Form/FormDefinitionDecorator.php index 4f4f7d9..2b5a224 100644 --- a/Classes/Form/FormDefinitionDecorator.php +++ b/Classes/Form/FormDefinitionDecorator.php @@ -77,12 +77,16 @@ private function setCheckboxLinks(array &$element): void $element['type'] === 'Checkbox' && isset($element['properties']['links']) ) { - foreach ($element['properties']['links'] as $pageUid => $label) { + $links = array_map(function ($pageUid, $label) { $link = $this->cObj->createLink($label, ['parameter' => $pageUid]); - if ($link instanceof LinkResult) { - $element['label'] = sprintf($element['label'], $link->getHtml()); - } + return $link instanceof LinkResult ? $link->getHtml() : null; + }, array_keys($element['properties']['links']), $element['properties']['links']); + + $element['label'] = sprintf($element['label'], ...$links); + if (isset($element['properties']['elementDescription'])) { + $element['properties']['elementDescription'] = sprintf($element['properties']['elementDescription'], ...$links); } + unset($element['properties']['links']); } }