mvo / contao-nested-forms
Allow nested forms/sub forms in Contao Open Source CMS
Installs: 2 454
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 4
Forks: 1
Open Issues: 2
Type:contao-bundle
Requires
- php: >=7.1
- contao/core-bundle: ^4.4.0
Requires (Dev)
- contao/manager-plugin: ^2.0
- friendsofphp/php-cs-fixer: ^2.2
Conflicts
- doctrine/dbal: 2.7.0
README
This bundle adds the ability to use sub forms in the form generator of Contao Open Source CMS to allow reusing groups of fields. After installing and updating the database you'll find a new form field type Sub Form.
Usage
Usage is straightforward:
- Create a form A with some fields.
- Create a form B and select one field to be a Sub Form (meta field).
- In this field select A as source form.
The resulting form B now contains A's fields at the position of the Sub Form meta field. You can select if you want to overwrite the mandatory properties of the sub fields or keep them as they are.
Naming
The field names of a sub form get prefixed by the name of the meta field
and two underscores (e.g: MySubField__FieldA
). The easiest way to
avoid collisions is by not using double underscores __
in your field
names.
Multiple Sub Forms
You can use as many nested forms as you wish. Multiple nesting levels are supported as well, just make sure you don't create self referencing loops. Note that overwriting mandatory properties does not cascade down.
Installation
Step 1: Download the Bundle
Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:
$ composer require mvo/contao-nested-forms
Step 2: Enable the Bundle
Skip this point if you are using a Managed Edition of Contao.
Enable the bundle by adding it to the list of registered bundles
in the app/AppKernel.php
file of your project:
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new \Mvo\ContaoNestedForms\MvoContaoNestedFormsBundle(), ); // ... } // ... }