Example of how to create a simple subclass of \FluidTYPO3\Flux\Form and utilise the initializeObject method to create new fields upon Form instance creation. Also includes an example on how to use a Provider to return different Form instances based on arbitrary values.
| Description | No description entered in Gist data (only local summary will be displayed) |
| Author | NamelessCoder |
| Creation date | 2014-03-16T12:36:42.000Z |
| Extensions |
|
| Tags |
|
| Files |
| <?php | |
| namespace MyVendor\MyExt\Form; | |
| class CustomForm extends \FluidTYPO3\Flux\Form { | |
| /** | |
| * Creates objects inserted into this Form, resulting in | |
| * a nested set of PHP objects that correspond exactly | |
| * to what would come out of parsing a Flux template | |
| */ | |
| public function initializeObject() { | |
| $this->createField('Input', 'test')->setDefault('default value')->setRequired(TRUE); | |
| } | |
| } |
| <?php | |
| namespace MyVendor\MyExt\Provider; | |
| class CustomProvider extends \FluidTYPO3\Flux\Provider\ContentProvider implements \FluidTYPO3\Flux\Provider\ProviderInterface { | |
| /** | |
| * Gets a special Form instance, if one applies, to be returned | |
| * instead of the basic Flux Form instance | |
| */ | |
| public function getForm(array $row) { | |
| $templateFile = $this->getTemplatePathAndFilename($row); | |
| switch (basename($templateFile)) { | |
| ... | |
| case 'whatever.html': | |
| $form = $this->objectManager->get('MyVendor\MyExt\Form\CustomForm'); | |
| break; | |
| } | |
| return $form; | |
| } | |
| } |