From 5ea587a0da101eb3988b528f45708c5039abeb3f Mon Sep 17 00:00:00 2001 From: Joao Paulo <joaopauloctga@gmail.com> Date: Tue, 14 Jan 2025 15:28:51 -0300 Subject: [PATCH 1/3] Can't put text in a calculation markup field. --- .../src/Plugin/WebformElement/WebformCalculationMarkup.php | 6 ++++-- src/CalculationFieldsHandlerExpression.php | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/modules/webform_calculation_fields/src/Plugin/WebformElement/WebformCalculationMarkup.php b/modules/webform_calculation_fields/src/Plugin/WebformElement/WebformCalculationMarkup.php index 89d0edb..dad53bd 100644 --- a/modules/webform_calculation_fields/src/Plugin/WebformElement/WebformCalculationMarkup.php +++ b/modules/webform_calculation_fields/src/Plugin/WebformElement/WebformCalculationMarkup.php @@ -50,7 +50,8 @@ class WebformCalculationMarkup extends TextField { $form['element']['evaluation_fields'] = [ '#type' => 'webform_html_editor', '#title' => $this->t('Math Expression and the Html markup'), - '#description' => $this->t('e.g.: <h3>:webform_element_key_1 + :webform_element_key_2 - (:webform_element_key_1 * :webform_element_key_3)</h3>'), + '#description' => $this->t('e.g.: <h3> {{ :webform_element_key_1 + :webform_element_key_2 - (:webform_element_key_1 * :webform_element_key_3) }}</h3>'), + '#help' => $this->t('Put the expression between {{ }} to be evaluated.'), '#required' => TRUE, ]; @@ -102,7 +103,8 @@ class WebformCalculationMarkup extends TextField { return parent::validateConfigurationForm($form, $form_state); } - $fields = self::calculationFieldsHandlerService()->getFieldsFromExpression($expression); + $expressionBetweenTags = $matches[1][0]; + $fields = self::calculationFieldsHandlerService()->getFieldsFromExpression($expressionBetweenTags); $currentWebform = $this->getWebform(); $invalidFields = []; foreach ($fields as $field) { diff --git a/src/CalculationFieldsHandlerExpression.php b/src/CalculationFieldsHandlerExpression.php index 43602c8..3e39fcd 100644 --- a/src/CalculationFieldsHandlerExpression.php +++ b/src/CalculationFieldsHandlerExpression.php @@ -44,10 +44,10 @@ class CalculationFieldsHandlerExpression implements CalculationFieldsHandlerExpr */ public function getFieldsFromExpression(string $expression): array { $expressionFields = explode(':', $expression) ?? []; - $expressionFields = array_filter($expressionFields); + $expressionFields = array_filter($expressionFields, fn($field) => !empty(trim($field))); $fields = []; foreach ($expressionFields as $field) { - $items = explode(' ', $field); + $items = explode(' ', trim($field)); $items = array_map(function ($item) { return preg_replace("/[^a-zA-Z0-9_|]/", "", $item); }, $items); -- GitLab From d550b92e1d860e1505b84119388fd7412806b180 Mon Sep 17 00:00:00 2001 From: Joao Paulo <joaopauloctga@gmail.com> Date: Tue, 14 Jan 2025 15:33:21 -0300 Subject: [PATCH 2/3] Can't put text in a calculation markup field. --- calculation_fields.info.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/calculation_fields.info.yml b/calculation_fields.info.yml index 1017738..4a4ec76 100644 --- a/calculation_fields.info.yml +++ b/calculation_fields.info.yml @@ -2,7 +2,7 @@ name: Calculation Fields type: module description: Provides additional form element that can evaluation math expressions. package: Fields -core_version_requirement: ^9 || ^10 +core_version_requirement: ^9 || ^10 || ^11 # project: 'drupal/calculation_fields' # Information added by Drupal.org packaging script on 2023-11-22 -- GitLab From 6b6de7380c7d658ef9d20dafd2647001f493032f Mon Sep 17 00:00:00 2001 From: Joao Paulo <joaopauloctga@gmail.com> Date: Tue, 14 Jan 2025 15:39:58 -0300 Subject: [PATCH 3/3] Can't put text in a calculation markup field. --- .../calculation_fields_example.info.yml | 2 +- .../webform_calculation_fields_examples.info.yml | 2 +- .../webform_calculation_fields.info.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/calculation_fields_example/calculation_fields_example.info.yml b/modules/calculation_fields_example/calculation_fields_example.info.yml index 6c42c1f..ef92b2b 100644 --- a/modules/calculation_fields_example/calculation_fields_example.info.yml +++ b/modules/calculation_fields_example/calculation_fields_example.info.yml @@ -2,7 +2,7 @@ name: Calculation Fields Example type: module description: Provides examples how to use calculation fields in an normal form or webform. package: Fields -core_version_requirement: ^9 || ^10 +core_version_requirement: ^9 || ^10 || ^11 dependencies: - calculation_fields:calculation_fields diff --git a/modules/webform_calculation_fields/modules/webform_calculation_fields_examples/webform_calculation_fields_examples.info.yml b/modules/webform_calculation_fields/modules/webform_calculation_fields_examples/webform_calculation_fields_examples.info.yml index a73ee80..ae0e5d4 100644 --- a/modules/webform_calculation_fields/modules/webform_calculation_fields_examples/webform_calculation_fields_examples.info.yml +++ b/modules/webform_calculation_fields/modules/webform_calculation_fields_examples/webform_calculation_fields_examples.info.yml @@ -2,7 +2,7 @@ name: Webform Calculation Fields Examples type: module description: Provides webform examples using calculation fiel types. package: Webform -core_version_requirement: ^9 || ^10 +core_version_requirement: ^9 || ^10 || ^11 dependencies: - calculation_fields:calculation_fields - webform_calculation_fields:webform_calculation_fields diff --git a/modules/webform_calculation_fields/webform_calculation_fields.info.yml b/modules/webform_calculation_fields/webform_calculation_fields.info.yml index 17b9207..9577fdb 100644 --- a/modules/webform_calculation_fields/webform_calculation_fields.info.yml +++ b/modules/webform_calculation_fields/webform_calculation_fields.info.yml @@ -2,7 +2,7 @@ name: Webform Calculation Fields type: module description: Provides additional form math element to realize math expression combining fields. package: Webform -core_version_requirement: ^9 || ^10 +core_version_requirement: ^9 || ^10 || ^11 dependencies: - calculation_fields:calculation_fields - webform:webform -- GitLab