diff --git a/Classes/Finisher/Forms/FormsFinisher.php b/Classes/Finisher/Forms/FormsFinisher.php index 59a8954187c1a9b45203f5fea85abfa1331f5da3..f30c90b9ade34de44d9e852a017ccc2c24dff306 100644 --- a/Classes/Finisher/Forms/FormsFinisher.php +++ b/Classes/Finisher/Forms/FormsFinisher.php @@ -83,9 +83,13 @@ class FormsFinisher extends AbstractFinisher { $formElementProperties = $formElement->getProperties(); if (isset($formElementProperties['markerName']) && \trim($formElementProperties['markerName']) !== '') { - $markers[\trim($formElementProperties['markerName'])] = $value; + $markerName = \trim($formElementProperties['markerName']); } else { - $markers[$identifier] = $value; + $markerName = $identifier; + } + $markerName = preg_replace('/[^a-zA-Z0-9]/', '', $markerName); + if (!isset($markers[$markerName])) { + $markers[$markerName] = $value; } } diff --git a/Classes/XClass/Form/FormEditorController.php b/Classes/XClass/Form/FormEditorController.php index 25fcda0ffb1732fcaddfdae9de3ad1ebc18b3e00..1309f549a0c961bce921d6b89be244e5cfb471f7 100644 --- a/Classes/XClass/Form/FormEditorController.php +++ b/Classes/XClass/Form/FormEditorController.php @@ -168,13 +168,22 @@ class FormEditorController extends \TYPO3\CMS\Form\Controller\FormEditorControll if (isset($element['properties']['markerName']) && $element['properties']['markerName'] !== '') { $markerName = $element['properties']['markerName']; } - - $markers[] = [ - 'identifier' => $markerName, - 'type' => MailTemplateService::MARKER_TYPE_STRING, - 'value' => $element['label'], - 'description' => $element['label'] - ]; + $markerName = preg_replace('/[^a-zA-Z0-9]/', '', $markerName); + $duplicateMarker = FALSE; + foreach ($markers as $marker) { + if ($marker['identifier'] === $markerName) { + $duplicateMarker = TRUE; + break; + } + } + if (!$duplicateMarker) { + $markers[] = [ + 'identifier' => $markerName, + 'type' => MailTemplateService::MARKER_TYPE_STRING, + 'value' => $element['label'], + 'description' => $element['label'] + ]; + } } $registrationService = $this->objectManager->get(RegisterService::class);