From eec70787ef321f9c93a3f6f2ef3ac165e9380b7d Mon Sep 17 00:00:00 2001 From: Lewin Probst Date: Thu, 19 Mar 2020 15:16:34 +0100 Subject: [PATCH] Content option can now be used to insert dom elements into a form element. E.g. an image into a button. --- module.php | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/module.php b/module.php index 5a62f83..d9f6a6a 100644 --- a/module.php +++ b/module.php @@ -93,11 +93,27 @@ return new class extends Module unset($element["name"]); } - $form_element = $this->createAndSetupElement( - $element[self::OPTIONS_ELEMENT], - $element[self::OPTIONS_CONTENT], - array_diff_key($element, $this->non_attribute_options) - ); + if (is_array($element[self::OPTIONS_CONTENT])) { + $content_element = $element[self::OPTIONS_CONTENT]; + $content = $this->createAndSetupElement( + $content_element[self::OPTIONS_ELEMENT], + $content_element[self::OPTIONS_CONTENT], + array_diff_key($content_element, $this->non_attribute_options) + ); + $form_element = $this->createAndSetupElement( + $element[self::OPTIONS_ELEMENT], + '', + array_diff_key($element, $this->non_attribute_options) + ); + $form_element->appendChild($content); + } else { + $form_element = $this->createAndSetupElement( + $element[self::OPTIONS_ELEMENT], + $element[self::OPTIONS_CONTENT], + array_diff_key($element, $this->non_attribute_options) + ); + } + foreach ($element[self::OPTIONS_ELEMENTS] as $element) { $form_element->appendChild($this->createFormElementGroup($element));