move-elevator / typo3-repeatable-form-elements
Adds a new form element which allows the editor to create new container elements with any type fields in them. In the frontend, a user can create any number of new containers. This is an extension for TYPO3 CMS.
Package info
github.com/move-elevator/typo3-repeatable-form-elements
Type:typo3-cms-extension
pkg:composer/move-elevator/typo3-repeatable-form-elements
Requires
- php: ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0
- psr/event-dispatcher: ^1.0
- typo3/cms-core: ^13.4 || ^14.0
- typo3/cms-extbase: ^13.4 || ^14.0
- typo3/cms-form: ^13.4 || ^14.0
Requires (Dev)
- eliashaeussler/version-bumper: ^2.4 || ^3.0
- phpunit/phpunit: ^11.0 || ^12.0
- typo3/cms-base-distribution: ^13.4 || ^14.0
This package is not auto-updated.
Last update: 2026-04-22 06:41:32 UTC
README
TYPO3 extension repeatable_form_elements
Note
This is a fork of tritum/repeatable_form_elements, the original extension by Ralf Zimmermann / dreistrom.land. This fork adds TYPO3 v14 compatibility, PSR-14 event migration, CI/CD infrastructure and a DDEV-based multi-version test environment.
A TYPO3 extension that adds a Repeatable container element to the TYPO3 form framework. It allows editors to create container elements with any type of fields. In the frontend, users can dynamically add and remove copies of the container. Validation is copied automatically and all form finishers are aware of the duplicated fields.
📋 Requirements
| Requirement | Version |
|---|---|
| PHP | 8.2 – 8.5 |
| TYPO3 | 13.4 LTS, 14.x |
🚀 Installation
composer require move-elevator/typo3-repeatable-form-elements
Add the site set tritum/repeatable-form-elements to the dependencies of your site package's site set:
# Configuration/Sets/YourSitePackage/config.yaml dependencies: - tritum/repeatable-form-elements
💡 Usage
- Open the TYPO3 form editor and create or open a form.
- Add a new element — the modal lists the Repeatable container.
- Add fields with validators to the container.
- In the frontend, the container renders as a
<fieldset>with copy and remove buttons.
Extended SaveToDatabaseFinisher
An extended version of the SaveToDatabaseFinisher is included for persisting repeatable container data. See the example form definition.
⚙️ Configuration
To deactivate the copying of variants, disable the feature flag:
$GLOBALS['TYPO3_CONF_VARS']['SYS']['features']['repeatableFormElements.copyVariants'] = false;
🔌 Extendability
| Event | Description |
|---|---|
CopyVariantEvent |
Modify or disable specific copied variants during container duplication. |
AfterBuildingFinishedEvent |
React after a form renderable has been built/copied by the repeatable container logic. Replaces the removed afterBuildingFinished SC_OPTIONS hook. |
🤝 Contributing
Contributions are welcome! See CONTRIBUTING.md for setup instructions, linting, testing and the PR workflow.
📝 Changelog
See CHANGELOG.md for a list of changes.
🏆 Credits
Originally created by Ralf Zimmermann / dreistrom.land. See the original repository for the full list of contributors.
This fork is maintained by move:elevator.
📄 License
GPL-2.0-or-later — see LICENSE for details.