[!!!][TASK] House of forms 33/38433/40
authorChristian Kuhn <lolli@schwarzbu.ch>
Fri, 13 Mar 2015 13:43:53 +0000 (14:43 +0100)
committerChristian Kuhn <lolli@schwarzbu.ch>
Tue, 28 Apr 2015 13:25:11 +0000 (15:25 +0200)
commit736cbfc917f9399b9cca9fe98b055e451f269f46
treefb9c6b5f6780719319e4f6282b51788fd5a9fe8a
parent3115cbc8e296ee8b94d8c84bbc55388db3ca157e
[!!!][TASK] House of forms

This patch introduces a structural code refactoring to the
FormEngine class and its related friend classes.

FormEngine used to call itself over and over again with itself
and sub classes writing to public properties of FormEngine keeping
a global state that is then magically merged to sometimes working
output.

The patch introduces a tree approach with lots of small containers
doing an encapsulated part of the rendering process and calling
sub containers for inner details.
As main construct a "globalOptions" array is modified in containers
and given down to sub containers (tree knots) or elements (leaves),
while sub structures always return a defined array that is
merged by the parent and accumulates the full result.
Goal is to have a better encapsulated code structure with better
visible impact on changes done to this system.

The patch creates this main structure. There is still a lot of
mess around and additional patches can further improve the overall
situation with smaller changes.

Change-Id: I56b898dc0eaae8de4d31016997cfefe8d14ec53e
Releases: master
Resolves: #63846
Resolves: #63854
Resolves: #63856
Resolves: #63858
Resolves: #63859
Resolves: #63860
Resolves: #63861
Resolves: #63862
Resolves: #63863
Resolves: #63865
Resolves: #63876
Resolves: #63881
Resolves: #63882
Resolves: #63883
Resolves: #63893
Reviewed-on: http://review.typo3.org/38433
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Markus Klein <klein.t3@reelworx.at>
Tested-by: Markus Klein <klein.t3@reelworx.at>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
74 files changed:
typo3/sysext/backend/Classes/Controller/EditDocumentController.php
typo3/sysext/backend/Classes/Controller/PageLayoutController.php
typo3/sysext/backend/Classes/Controller/Wizard/RteController.php
typo3/sysext/backend/Classes/Form/AbstractNode.php [new file with mode: 0644]
typo3/sysext/backend/Classes/Form/Container/AbstractContainer.php [new file with mode: 0644]
typo3/sysext/backend/Classes/Form/Container/FlexFormContainer.php [new file with mode: 0644]
typo3/sysext/backend/Classes/Form/Container/FlexFormContainerContainer.php [new file with mode: 0644]
typo3/sysext/backend/Classes/Form/Container/FlexFormElementContainer.php [new file with mode: 0644]
typo3/sysext/backend/Classes/Form/Container/FlexFormLanguageContainer.php [new file with mode: 0644]
typo3/sysext/backend/Classes/Form/Container/FlexFormNoTabsContainer.php [new file with mode: 0644]
typo3/sysext/backend/Classes/Form/Container/FlexFormSectionContainer.php [new file with mode: 0644]
typo3/sysext/backend/Classes/Form/Container/FlexFormTabsContainer.php [new file with mode: 0644]
typo3/sysext/backend/Classes/Form/Container/FullRecordContainer.php [new file with mode: 0644]
typo3/sysext/backend/Classes/Form/Container/InlineControlContainer.php [new file with mode: 0644]
typo3/sysext/backend/Classes/Form/Container/InlineRecordContainer.php [new file with mode: 0644]
typo3/sysext/backend/Classes/Form/Container/ListOfFieldsContainer.php [new file with mode: 0644]
typo3/sysext/backend/Classes/Form/Container/NoTabsContainer.php [new file with mode: 0644]
typo3/sysext/backend/Classes/Form/Container/PaletteAndSingleContainer.php [new file with mode: 0644]
typo3/sysext/backend/Classes/Form/Container/SingleFieldContainer.php [new file with mode: 0644]
typo3/sysext/backend/Classes/Form/Container/SoloFieldContainer.php [new file with mode: 0644]
typo3/sysext/backend/Classes/Form/Container/TabsContainer.php [new file with mode: 0644]
typo3/sysext/backend/Classes/Form/DataPreprocessor.php
typo3/sysext/backend/Classes/Form/Element/AbstractFormElement.php
typo3/sysext/backend/Classes/Form/Element/CheckboxElement.php
typo3/sysext/backend/Classes/Form/Element/FlexElement.php [deleted file]
typo3/sysext/backend/Classes/Form/Element/GroupElement.php
typo3/sysext/backend/Classes/Form/Element/ImageManipulationElement.php
typo3/sysext/backend/Classes/Form/Element/InlineElement.php [deleted file]
typo3/sysext/backend/Classes/Form/Element/InlineElementHookInterface.php
typo3/sysext/backend/Classes/Form/Element/InputElement.php
typo3/sysext/backend/Classes/Form/Element/NoneElement.php
typo3/sysext/backend/Classes/Form/Element/RadioElement.php
typo3/sysext/backend/Classes/Form/Element/SelectElement.php
typo3/sysext/backend/Classes/Form/Element/TextElement.php
typo3/sysext/backend/Classes/Form/Element/TreeElement.php
typo3/sysext/backend/Classes/Form/Element/UnknownElement.php
typo3/sysext/backend/Classes/Form/Element/UserElement.php
typo3/sysext/backend/Classes/Form/FlexFormsHelper.php
typo3/sysext/backend/Classes/Form/FormDataTraverser.php
typo3/sysext/backend/Classes/Form/FormEngine.php
typo3/sysext/backend/Classes/Form/FrontendFormEngine.php
typo3/sysext/backend/Classes/Form/InlineRelatedRecordResolver.php [new file with mode: 0644]
typo3/sysext/backend/Classes/Form/InlineStackProcessor.php [new file with mode: 0644]
typo3/sysext/backend/Classes/Form/NodeFactory.php [new file with mode: 0644]
typo3/sysext/backend/Classes/Form/Utility/FormEngineUtility.php
typo3/sysext/backend/Classes/Form/Wizard/SuggestWizardDefaultReceiver.php
typo3/sysext/backend/Classes/Rte/AbstractRte.php
typo3/sysext/backend/Classes/Utility/BackendUtility.php
typo3/sysext/backend/Tests/Unit/Form/Element/InlineElementTest.php [deleted file]
typo3/sysext/backend/Tests/Unit/Form/FormEngineTest.php [new file with mode: 0644]
typo3/sysext/backend/Tests/Unit/Form/InlineStackProcessorTest.php [new file with mode: 0644]
typo3/sysext/compatibility6/Migrations/Code/ClassAliasMap.php
typo3/sysext/compatibility6/Migrations/Code/LegacyClassesForIde.php
typo3/sysext/core/Configuration/DefaultConfiguration.php
typo3/sysext/core/Configuration/TCA/be_users.php
typo3/sysext/core/Documentation/Changelog/7.0/Breaking-59659-DeprecatedCodeRemovalInBackendSysext.rst [deleted file]
typo3/sysext/core/Documentation/Changelog/7.0/Breaking-61828-RemoveIsDisplayCondition.rst [deleted file]
typo3/sysext/core/Documentation/Changelog/7.0/Deprecation-61958-MoveTcaRenderings.rst [deleted file]
typo3/sysext/core/Documentation/Changelog/7.0/Deprecation-62667-WrapBorderTable-In-FormEngine.rst [deleted file]
typo3/sysext/core/Documentation/Changelog/7.1/Breaking-64762-FormEngineWizards.rst [deleted file]
typo3/sysext/core/Documentation/Changelog/7.1/Deprecation-63847-FormEngine-renderReadonly.rst [deleted file]
typo3/sysext/core/Documentation/Changelog/7.1/Deprecation-63850-FormEngine-insertDefStyle.rst [deleted file]
typo3/sysext/core/Documentation/Changelog/7.1/Deprecation-63852-FormEngine-getAvailableLanguages.rst [deleted file]
typo3/sysext/core/Documentation/Changelog/7.1/Deprecation-63855-FormEngine-sL.rst [deleted file]
typo3/sysext/core/Documentation/Changelog/7.1/Deprecation-63864-FormEngine-renderVDEFDiff.rst [deleted file]
typo3/sysext/core/Documentation/Changelog/7.1/Deprecation-63878-FormEngine-getLL.rst [deleted file]
typo3/sysext/core/Documentation/Changelog/7.1/Deprecation-63889-FormEngine-getTSCpid.rst [deleted file]
typo3/sysext/core/Documentation/Changelog/7.1/Deprecation-63912-FormEngine-unusedMethods.rst [deleted file]
typo3/sysext/core/Documentation/Changelog/7.2/Breaking-65357-DependenciesToFormEngine.rst [deleted file]
typo3/sysext/core/Documentation/Changelog/7.2/Deprecation-65357-DependenciesToFormEngine.rst [deleted file]
typo3/sysext/core/Documentation/Changelog/master/Breaking-63846-FormEngineRefactoring.rst [new file with mode: 0644]
typo3/sysext/frontend/Configuration/TCA/pages_language_overlay.php
typo3/sysext/rtehtmlarea/Classes/Controller/FrontendRteController.php
typo3/sysext/rtehtmlarea/Classes/RteHtmlAreaBase.php