diff --git a/calculation_fields.info.yml b/calculation_fields.info.yml index 101773870a1ea66f5f01411ad21295608b59f413..4a4ec76ef82b0196133120f0d8b717e1579d3fc2 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 diff --git a/modules/calculation_fields_example/calculation_fields_example.info.yml b/modules/calculation_fields_example/calculation_fields_example.info.yml index 6c42c1ff54e9d4207fce595c8e4b1eeb1ea6346a..ef92b2ba5629129a4acd6a98629f622ae974ed2f 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 a73ee802c94c09f6ff33e39708b950700fed8fb3..ae0e5d4d5c66aeb0fb718c9695e3c0ddf0f20c34 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/src/Plugin/WebformElement/WebformCalculationMarkup.php b/modules/webform_calculation_fields/src/Plugin/WebformElement/WebformCalculationMarkup.php index 89d0edbeae6f1f1bb226c6de1c350ea1f5f25626..dad53bd7bd988a94f5d8ccb7b116808b67c54d3e 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/modules/webform_calculation_fields/webform_calculation_fields.info.yml b/modules/webform_calculation_fields/webform_calculation_fields.info.yml index 17b92078bc033d89af4c91e346a47db404fc0075..9577fdbec70db960931c3e27d52be1528ddbe24d 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 diff --git a/src/CalculationFieldsHandlerExpression.php b/src/CalculationFieldsHandlerExpression.php index 43602c8df93165fd218263fe25d1abfea5b3ac24..3e39fcd46ecf841c58d4d30b292b29e86db80e54 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);