From 27be5f247a033178262a851395b74dfac58b9897 Mon Sep 17 00:00:00 2001 From: psf_ <aaaaa976@gmail.com> Date: Wed, 11 Sep 2024 15:23:29 +0200 Subject: [PATCH] Fix error by empty script parameters configuration --- src/Plugin/Field/FieldWidget/ScriptWidget.php | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/Plugin/Field/FieldWidget/ScriptWidget.php b/src/Plugin/Field/FieldWidget/ScriptWidget.php index 8000604..1ac91e5 100644 --- a/src/Plugin/Field/FieldWidget/ScriptWidget.php +++ b/src/Plugin/Field/FieldWidget/ScriptWidget.php @@ -76,7 +76,7 @@ class ScriptWidget extends WidgetBase implements ContainerFactoryPluginInterface * {@inheritdoc} */ public function settingsForm(array $form, FormStateInterface $form_state): array { - $parameters = $this->getSetting('parameters'); + $parameters = $this->getScriptParameters(); $parameters = $this->cleanParameters($parameters); $element['parameters'] = [ '#type' => 'multivalue', @@ -115,7 +115,7 @@ class ScriptWidget extends WidgetBase implements ContainerFactoryPluginInterface * {@inheritdoc} */ public function settingsSummary(): array { - $parameters = $this->getSetting('parameters'); + $parameters = $this->getScriptParameters(); $parameters = $this->cleanParameters($parameters); if (empty($parameters)) { return ['']; @@ -159,7 +159,7 @@ class ScriptWidget extends WidgetBase implements ContainerFactoryPluginInterface * {@inheritdoc} */ public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state): array { - $parameters = $this->getSetting('parameters'); + $parameters = $this->getScriptParameters(); $parameters = $this->cleanParameters($parameters); $element['value'] = $element + [ '#type' => 'textarea', @@ -270,7 +270,7 @@ class ScriptWidget extends WidgetBase implements ContainerFactoryPluginInterface * Callback to add parameters to javascript runtime. */ public function loadJavascriptParameters() { - $parameterFields = $this->getSetting('parameters'); + $parameterFields = $this->getScriptParameters(); $parameterFields = $this->cleanParameters($parameterFields); foreach ($parameterFields as $parameterField) { if (isset($parameterField["name"])) { @@ -299,4 +299,19 @@ class ScriptWidget extends WidgetBase implements ContainerFactoryPluginInterface } } + /** + * Get script parameters description. + * + * @return array + * Parameters array. + */ + protected function getScriptParameters() { + $parameters = $this->getSetting('parameters'); + if (empty($parameters)) { + return []; + } + + return $parameters; + } + } -- GitLab