public function buildForm(FormBuilderInterface $builder, array $options) { foreach ($this->fc_form->getFieldsRecursively() as $fc_field) { $this->addField($builder, $fc_field); } $action = $this->fc_form->getAction(); if ($this->router->getRouteCollection()->get($action) !== null) { $action = $this->router->generate($action); } if ($this->fc_form->getIsAjax()) { if (empty($action)) { $action = $this->router->generate('fc_from_ajax_handler', array('alias' => $this->fc_form->getAlias())); } } $builder->add('submit', 'submit', array('label' => $this->fc_form->getButton() ? $this->fc_form->getButton() : 'fc.label.button'))->add('_template', 'hidden')->setMethod($this->fc_form->getMethod())->setAction($action); $save_handler = new SaveRequestHandler($this->field_chain, $this->fc_form); $builder->addEventListener(FormEvents::POST_SUBMIT, array($save_handler, 'handle')); foreach ($this->fc_form->getListeners() as $fc_listener) { $this->addListener($builder, $fc_listener); } }
public function clear(FcForm $fc_form, $options = array()) { if (isset($this->forms[$fc_form->getAlias()])) { unset($this->forms[$fc_form->getAlias()]); } return $this->create($fc_form, $options); }