[!!!][FEATURE] EXT:form - add content element uid to the form identifier 25/54125/4
authorRalf Zimmermann <ralf.zimmermann@tritum.de>
Tue, 12 Sep 2017 10:39:47 +0000 (12:39 +0200)
committerGeorg Ringer <georg.ringer@gmail.com>
Wed, 20 Sep 2017 18:23:45 +0000 (20:23 +0200)
Make it possible to use the same form multiple times on one page by
adding the content element uid to the form identifier.

Resolves: #81775
Releases: master
Change-Id: I001a654f8ffc47c91c984133d8475605f1b15b7a
Reviewed-on: https://review.typo3.org/54125
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Joerg Boesche <typo3@joergboesche.de>
Reviewed-by: Susanne Moog <susanne.moog@typo3.org>
Tested-by: Susanne Moog <susanne.moog@typo3.org>
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
Tested-by: Georg Ringer <georg.ringer@gmail.com>
typo3/sysext/core/Documentation/Changelog/master/Breaking-81775-ExtFormSuffixFormIdentifierWithContentElementUid.rst [new file with mode: 0644]
typo3/sysext/core/Documentation/Changelog/master/Feature-81775-ExtFormSuffixFormIdentifierWithContentElementUid.rst [new file with mode: 0644]
typo3/sysext/form/Classes/Controller/FormFrontendController.php

diff --git a/typo3/sysext/core/Documentation/Changelog/master/Breaking-81775-ExtFormSuffixFormIdentifierWithContentElementUid.rst b/typo3/sysext/core/Documentation/Changelog/master/Breaking-81775-ExtFormSuffixFormIdentifierWithContentElementUid.rst
new file mode 100644 (file)
index 0000000..bcfb23f
--- /dev/null
@@ -0,0 +1,40 @@
+.. include:: ../../Includes.txt
+
+======================================================================
+Breaking: #81775 - suffix form identifier with the content element uid
+======================================================================
+
+See :issue:`81775`
+
+Description
+===========
+
+If a form is rendered through the "form" content element, the identifier
+of the form is modified with a suffix.
+The form identifier will be suffixed with "-$contentElementUid" (e.g. "myForm-65").
+
+
+Impact
+======
+
+All form element names within the frontend will change from e.g.
+
+.. code-block:: typoscript
+
+    <textarea name="tx_form_formframework[myForm][message]"></textarea>
+
+to
+
+.. code-block:: typoscript
+
+    <textarea name="tx_form_formframework[myForm-65][message]"></textarea>
+
+if the form is rendered through the "form" content element.
+
+
+Affected Installations
+======================
+
+All instances, that render forms through the "form" content element.
+
+.. index:: NotScanned, Frontend, ext:form
diff --git a/typo3/sysext/core/Documentation/Changelog/master/Feature-81775-ExtFormSuffixFormIdentifierWithContentElementUid.rst b/typo3/sysext/core/Documentation/Changelog/master/Feature-81775-ExtFormSuffixFormIdentifierWithContentElementUid.rst
new file mode 100644 (file)
index 0000000..fbdb020
--- /dev/null
@@ -0,0 +1,21 @@
+.. include:: ../../Includes.txt
+
+=====================================================================
+Feature: #81775 - suffix form identifier with the content element uid
+=====================================================================
+
+See :issue:`81775`
+
+Description
+===========
+
+Append the suffix "-$contentElementUid" (e.g. "myForm-65") to the form identifier
+if the form is rendered through the "form" content element.
+This makes it possible to use the same form multiple times on one page.
+
+Impact
+======
+
+Now it is possible to use the same form multiple times on one page.
+
+.. index:: Frontend, ext:form
\ No newline at end of file
index ba97a36..2c2e533 100644 (file)
@@ -59,6 +59,7 @@ class FormFrontendController extends ActionController
             $formDefinition['persistenceIdentifier'] = $this->settings['persistenceIdentifier'];
             $formDefinition = $this->overrideByTypoScriptSettings($formDefinition);
             $formDefinition = $this->overrideByFlexFormSettings($formDefinition);
+            $formDefinition['identifier'] .= '-' . $this->configurationManager->getContentObject()->data['uid'];
         }
         $this->view->assign('formConfiguration', $formDefinition);
     }