webcoast / dot-forms
TYPO3 CMS extension for storing TCA fields with dot notation into a single field
Installs: 29
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:typo3-cms-extension
Requires
- typo3/cms-backend: ^12.4
- typo3/cms-core: ^12.4
- typo3/cms-extbase: ^12.4
- typo3/cms-frontend: ^12.4
This package is auto-updated.
Last update: 2024-10-21 08:11:15 UTC
README
This extension allows configuring TCA fields using the dot notation, e.g.
settings.pagination.itemsPerPage
. Like with flex forms, this avoids
extra database fields for the configured TCA fields, but it allows to place
the fields in a more flexible way instead of grouping them together inside
that flex form container.
Installation
composer require webcoast/dot-forms
No further configuration is necessary to use this extension.
Usage
Configure your TCA fields as usual, but use the dot notation for the field name, e.g.
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('tt_content', [ 'settings.pagination.itemsPerPage' => [ 'label' => 'Items per page', 'config' => [ 'type' => 'number', 'format' => 'integer' 'size' => 5, 'default' => 10, ], ], 'settings.pagination.maxNumberOfLinks' => [ 'label' => 'Max number of links', 'config' => [ 'type' => 'number', 'format' => 'integer' 'size' => 5, 'default' => 7, ], ], ]);
Optional: Create a palette with your fields:
$GLOBALS['TCA']['tt_content']['palettes']['settings.pagination'] = [ 'label' => 'Pagination', 'showitem' => 'settings.pagination.itemsPerPage, settings.pagination.maxNumberOfLinks', ];
Add your palette or fields to the types
section:
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes('tt_content', '--palette--;;settings.pagination', '{yourCType}', 'after:header');
Extbase plugins (settings)
When using Extbase plugins, you can use the \WEBcoast\DotForms\Mvc\Controller\ActionController
as base class for your controller, to automatically map the settings.*
fields to the $this->settings
property in your controller.
The magic is done using the initializeAction()
method, which is called before the actual action method.
If you also use this method in your controller, make sure to call parent::initializeAction()
at the beginning.
Data processor
When working the data processors, e.g. in a FLUIDTEMPLATE
content object,
your can use the included data processor to map all fields with the dot
notation to the respective main field in the data array.
tt_content.myContentObject {
dataProcessing {
10 = dot-forms
}
}