/** * {@inheritdoc} */ public function addConfigurationFields(FormEvent $event) { $this->builder = $event->getFormBuilder(); $this->form = $this->builder->getForm(); $this->typeSelect = $this->form->getChild('required_data')->getChild('type'); $this->typeSelect->addOption($this->getBoxTypeOption()); $this->fieldset = $this->form->addChild($this->builder->addFieldset(['name' => $this->type, 'label' => $this->trans('Box settings'), 'dependencies' => [$this->builder->addDependency(Dependency::SHOW, $this->typeSelect, new Equals($this->type), null)]])); $this->addBoxConfiguration(); }
/** * Adds theme configuration fields to main theme edit form * * @param FormEvent $event */ public function onThemeFormInit(FormEvent $event) { $builder = $event->getFormBuilder(); $form = $builder->getForm(); $resource = $builder->getData(); $fieldGenerator = $this->container->get('theme.fields_generator'); $fieldGenerator->loadThemeFieldsConfiguration($resource); $fieldGenerator->addFormFields($builder, $form); }
/** * Adds configurator fields to main layout box edit form. * Loops through all configurators, renders the fieldset and sets default data * * @param FormEvent $event */ public function onLayoutBoxFormInit(FormEvent $event) { $builder = $event->getFormBuilder(); $form = $event->getForm(); $resource = $form->getModelData(); $configurators = $this->container->get('layout_box.configurator.collection')->all(); $boxSettings = $resource->getSettings(); foreach ($configurators as $configurator) { if ($configurator instanceof LayoutBoxConfiguratorInterface) { $defaults = []; if ($resource->getBoxType() == $configurator->getType()) { $defaults = $boxSettings; } $configurator->addFormFields($builder, $form, $defaults); } } }