/** * {@inheritdoc} */ public function create($pollId) { $type = $this->formFactory->getType($this->type); $type->setPollFields($pollId); $builder = $this->formFactory->createNamedBuilder(sprintf('%s_%s', $this->name, $pollId), $type); return $builder->getForm(); }
/** * {@inheritdoc} */ public function getForm($group) { $block = $this->getSubtree($group); $toAdd = array(); $bc = $block->toBlockConfig(); if (!$block->isEmpty()) { $sbc = array(); /** @var $subblock GroupNodeDefinition */ foreach ($block as $subblock) { $sbc += $subblock->toBlockConfig(); if (!$subblock->isEmpty()) { /** @var $field FieldNodeDefinition */ foreach ($subblock as $field) { $field->replaceOption('block', $block->getName())->replaceOption('subblock', $subblock->getName()); $toAdd[] = $field; } } } $bc[$block->getName()]['subblocks'] = $sbc; } $fb = $this->factory->createNamedBuilder($group, 'oro_config_form_type', null, array('block_config' => $bc)); foreach ($toAdd as $field) { $this->addFieldToForm($fb, $field); } return $fb->getForm(); }
/** * {@inheritdoc} */ public function create($id) { $type = $this->formFactory->getType($this->type); $type->setId($id); $builder = $this->formFactory->createNamedBuilder($type, sprintf('%s_%s', $this->name, $id)); return $builder->getForm(); }
/** * @param string $widget * * @return FormInterface * @throws InvalidArgumentException */ public function getForm($widget) { if (!$this->hasForm($widget)) { throw new InvalidArgumentException(sprintf('Can\'t find form for widget "%s"', $widget)); } $widgetConfig = $this->configProvider->getWidgetConfig($widget); $fields = $widgetConfig[static::FORM_FIELDS_KEY]; $builder = $this->formFactory->createNamedBuilder($widget); foreach ($fields as $name => $config) { $field = new FieldNodeDefinition($name, $config); $builder->add($field->getName(), $config['type'], $field->getOptions()); } return $builder->getForm(); }
/** * @return FormComponent */ protected function createComponentForm() { $builder = $this->formFactory->createNamedBuilder($this->lookupPath('Nette\\Application\\UI\\Presenter'), $this->type, $this->entity, $this->options); $component = $this->formComponentFactory->create($builder->getForm()); if ($this->theme) { $component->onCreateView[] = function ($view, $component) { $component->getRenderer()->setTheme($view, $this->theme); }; } $component->onSuccess[] = function ($entity) { $this->processForm($entity); }; return $component; }
public function testEmbedLabelPrefix() { $embedForm = $this->factory->createNamedBuilder($embedFormName = 'embed_form', FormType::class, null, ['label_prefix' => $embedLabelPrefix = 'embed_prefix'])->add($embedFieldName = 'embed_field'); $form = $this->factory->createBuilder(FormType::class, null, ['label_prefix' => $labelPrefix = 'prefix'])->add($embedForm)->add($fieldName = 'field')->getForm()->submit([]); $view = $form->createView(); $fieldView = $view->children[$fieldName]; $embedFormView = $view->children[$embedFormName]; $embedFieldView = $embedFormView->children[$embedFieldName]; $this->assertArrayHasKey('label', $fieldView->vars); $this->assertSame($labelPrefix . '.' . $fieldName, $fieldView->vars['label']); $this->assertArrayHasKey('label', $embedFormView->vars); $this->assertSame($labelPrefix . '.' . $embedFormName, $embedFormView->vars['label']); $this->assertArrayHasKey('label', $embedFieldView->vars); $this->assertSame($embedLabelPrefix . '.' . $embedFieldName, $embedFieldView->vars['label']); }
/** * @return FormComponent */ protected function createComponentForm() { $builder = $this->formFactory->createNamedBuilder($this->lookupPath('Nette\\Application\\UI\\Presenter'), 'form', null, []); $builder->add('firstname'); $builder->add('lastname'); $builder->add('email'); $builder->add('text'); $component = $this->formComponentFactory->create($builder->getForm()); $component->onSuccess[] = function (array $data) { // process data $this->getPresenter()->flashMessage('The form has been sucessfully sent.'); $this->getPresenter()->redirect('this'); }; return $component; }
/** * @throws \Symfony\Component\Form\Exception\UnexpectedTypeException * * @param $form * @param $basketElements */ private function buildBasketElements($form, $basketElements) { if (null === $basketElements) { return; } if (!$basketElements instanceof \ArrayAccess && !is_array($basketElements)) { throw new UnexpectedTypeException($basketElements, 'array or \\ArrayAccess'); } foreach ($basketElements as $basketElement) { $basketElementBuilder = $this->factory->createNamedBuilder($basketElement->getPosition(), 'form', $basketElement, array('property_path' => '[' . $basketElement->getPosition() . ']', 'auto_initialize' => false)); $basketElementBuilder->setErrorBubbling(false); $provider = $basketElement->getProductProvider(); $provider->defineBasketElementForm($basketElement, $basketElementBuilder); $form->add($basketElementBuilder->getForm()); } }
/** * {@inheritdoc} */ public function getFormBuilder(FormFactoryInterface $factory) { if (!isset($this->formBuilder)) { $this->formBuilder = $factory->createNamedBuilder($this->getResourceProperty(), $this->getFormType(), null, $this->buildFormOptions()); } return $this->formBuilder; }
/** * Returns a "add to basket" form for a specified product. * * @param ProductInterface $product A product instance * * @return FormView */ public function getFormAddBasket(ProductInterface $product) { $formBuilder = $this->formFactory->createNamedBuilder('add_basket', 'form', null, array('data_class' => $this->basketElementClass, 'csrf_protection' => false)); $this->productPool->getProvider($product)->defineAddBasketForm($product, $formBuilder, false); $form = $formBuilder->getForm()->createView(); return $form; }
/** * Gets the ACL roles form. * * @param \Sonata\AdminBundle\Util\AdminObjectAclData $data * * @return \Symfony\Component\Form\Form */ public function createAclRolesForm(AdminObjectAclData $data) { $aclValues = $data->getAclRoles(); $formBuilder = $this->formFactory->createNamedBuilder(self::ACL_ROLES_FORM_NAME, 'form'); $form = $this->buildForm($data, $formBuilder, $aclValues); $data->setAclRolesForm($form); return $form; }
protected function initForm(FormFactoryInterface $factory, $data = null) { $builder = $factory->createNamedBuilder('subscriber', 'form', $data, array('data_class' => $this->getClassName())); $builder->add('email', 'email', array('label' => 'admin.subscriber.list.email')); $builder->add('created_at', 'date', array('label' => 'admin.subscriber.list.created_at', 'widget' => 'single_text')); $builder->add('active', 'checkbox', array('label' => 'admin.subscriber.list.active')); return $builder->getForm(); }
/** * {@inheritdoc} */ public function create($name, $type = null, array $options = array()) { if (null === $type && null === $this->getDataClass()) { $type = 'text'; } if (null !== $type) { return $this->factory->createNamedBuilder($name, $type, null, $options, $this); } return $this->factory->createBuilderForProperty($this->getDataClass(), $name, null, $options, $this); }
/** * Returns a form with defined parameters. * * @param array $options * * @return Form */ public function getForm($options = array()) { $options['csrf_protection'] = false; $parameters = $this->getParameters(); $builder = $this->factory->createNamedBuilder('', 'form', $parameters, $options); foreach ($parameters as $key => $value) { $builder->add($key, 'hidden'); } return $builder->getForm(); }
protected function initForm(FormFactoryInterface $factory, $data = null) { $builder = $factory->createNamedBuilder('news', 'form', $data, array('data_class' => $this->getClassName())); $builder->add('title', 'text', array('label' => 'admin.news.list.title')); $builder->add('date', 'date', array('label' => 'admin.news.list.date', 'widget' => 'single_text', 'required' => false)); $builder->add('created_at', 'date', array('label' => 'admin.news.list.created_at', 'widget' => 'single_text')); $builder->add('visible', 'checkbox', array('label' => 'admin.news.list.visible', 'required' => false)); $builder->add('creator_email', 'email', array('label' => 'admin.news.list.creator_email')); $builder->add('photo', 'fsi_image', array('label' => 'admin.news.list.photo')); $builder->add('tags', 'collection', array('type' => new TagType(), 'label' => 'admin.news.list.tags', 'allow_add' => true, 'allow_delete' => true, 'by_reference' => false)); return $builder->getForm(); }
/** * {@inheritdoc} */ public function create($name, $type = null, array $options = array()) { if ($this->locked) { throw new FormException('The form builder cannot be modified anymore.'); } if (null === $type && null === $this->getDataClass()) { $type = 'text'; } if (null !== $type) { return $this->factory->createNamedBuilder($name, $type, null, $options, $this); } return $this->factory->createBuilderForProperty($this->getDataClass(), $name, null, $options, $this); }
/** * onPreSetData * * @param FormEvent $event * * @SuppressWarnings("PMD") */ public function onPreSetData(FormEvent $event) { $data = $event->getData(); $form = $event->getForm(); if (null === $data) { return; } if (null === $data->getId()) { $form->add($this->factory->createNamed('filename', 'hidden', null, array('auto_initialize' => false))); $form->add($this->factory->createNamed('originalName', 'hidden', null, array('auto_initialize' => false))); $form->add($this->factory->createNamed('token', 'hidden', null, array('mapped' => false, 'auto_initialize' => false))); } if (null === $data || null === $data->getId()) { return; } $rootNode = $this->nodeProvider->getRootNode(); $repository = $this->registry->getRepository('Erichard\\DmsBundle\\Entity\\DocumentNode'); $allTree = $this->registry->getRepository('Erichard\\DmsBundle\\Entity\\DocumentNodeClosure')->createQueryBuilder('c')->select('d.id')->innerJoin('c.descendant', 'd')->where('c.ancestor = :id')->setParameter('id', $rootNode->getId())->getQuery()->getResult(); $treeArray = array(); foreach ($allTree as $tree) { $treeArray[] = $tree['id']; } $descendants = $this->registry->getRepository('Erichard\\DmsBundle\\Entity\\DocumentNodeClosure')->createQueryBuilder('c')->select('d.id')->innerJoin('c.descendant', 'd')->where('c.ancestor = :id')->setParameter('id', $data->getId())->getQuery()->getArrayResult(); $descendants = array_map(function ($descendant) { return $descendant['id']; }, $descendants); $tree = $repository->getNodesHierarchyQueryBuilder(null, false, array('childSort' => array('field' => 'name', 'dir' => 'asc')), true); if (count($descendants) > 0) { $tree->andWhere('node.id NOT IN (:node_id)')->setParameter('node_id', $descendants); } $realTreeArray = array(); foreach ($tree->getQuery()->getArrayResult() as $node) { if (in_array($node[0]['descendant']['id'], $treeArray)) { $realTreeArray[] = $node; } } $tree = $repository->buildTree($realTreeArray); // On met en place notre itérator en vue de retirer la profondeur de nos éléments $iterator = new \RecursiveIteratorIterator(new GedmoTreeIterator($tree), \RecursiveIteratorIterator::SELF_FIRST); $choices = array(); foreach ($iterator as $node) { $nodeName = $node['name']; if ($node['id'] == $rootNode->getId()) { $nodeName = $this->registry->getContainer()->get('translator')->trans('home', array(), 'ErichardDmsBundle'); } $depth = $iterator->getDepth(); $choices[$node['id']] = str_repeat(" ", $depth) . $nodeName; } $form->add($this->factory->createNamedBuilder('node', 'choice', $data->getParent(), array('label' => 'move_document', 'required' => true, 'choices' => $choices, 'auto_initialize' => false))->addModelTransformer(new NodeToIdTransformer($this->registry))->getForm()); }
function it_handles_form(Request $request, FormFactoryInterface $formFactory, FormBuilderInterface $formBuilder, FormInterface $form, FileBag $fileBag, ObjectManager $manager) { $formFactory->createNamedBuilder('', 'kreta_dummy_type', null, [])->shouldBeCalled()->willReturn($formBuilder); $formBuilder->getForm()->shouldBeCalled()->willReturn($form); $request->isMethod('POST')->shouldBeCalled()->willReturn(false); $request->isMethod('PUT')->shouldBeCalled()->willReturn(false); $request->isMethod('PATCH')->shouldBeCalled()->willReturn(true); $form->handleRequest($request)->shouldBeCalled()->willReturn($form); $form->isValid()->shouldBeCalled()->willReturn(true); $form->getData()->shouldBeCalled()->willReturn($this->object); $request->files = $fileBag; $manager->persist($this->object)->shouldBeCalled(); $manager->flush()->shouldBeCalled(); $this->handleForm($request)->shouldReturn($form); }
/** * Creates named FormBuilder and populates it * * @param string $name * @param object $model data object * @param string $form view to generate * @param array $context * @return FormBuilderInterface */ public function createNamedFormBuilder($name, $model, $form = 'default', $context = array()) { $fb = $this->formFactory->createNamedBuilder($name, FieldTypeMapper::map('form'), $model); $this->populateFormBuilder($fb, $model, $form, $context); return $fb; }
/** * Creates a new form. * * @return FormInterface */ public function createForm() { $builder = $this->formFactory->createNamedBuilder($this->name, $this->type); return $builder->getForm(); }
/** * @param string $name * @param array $options * * @return FormBuilder */ public function getFormBuilder($name, array $options = array()) { return $this->formFactory->createNamedBuilder($name, 'form', null, $options); }
/** * {@inheritdoc} */ public function createForm($data = null, $options = array()) { $builder = $this->formFactory->createNamedBuilder($this->name, $this->type, $data, $options); return $builder->getForm(); }
/** * Creates a new form. * * @return FormInterface */ public function createForm() { $builder = $this->formFactory->createNamedBuilder($this->name, $this->type, null, array('validation_groups' => array('OpenThread'))); return $builder->getForm(); }
/** * Wrapping the original form factory method * @param int|string $name * @param string $type * @param null $data * @param array $options * @author Martin Schindler * @return FormBuilderInterface */ public function createNamedBuilder($name, $type = 'form', $data = null, array $options = array()) { return $this->formFactory->createNamedBuilder($name, $type, $data, $options); }
/** * @param Payment $payment * @param TokenInterface $token * * @return FormBuilderInterface */ protected function createPaymentFormBuilder(Payment $payment, TokenInterface $token = null) { return $this->formFactory->createNamedBuilder('', 'form', $payment, ['method' => 'POST', 'action' => $token ? $token->getTargetUrl() : null, 'data_class' => Payment::class, 'csrf_protection' => false, 'attr' => ['class' => 'payum-obtain-missing-details'], 'allow_extra_fields' => true]); }
protected function initForm(FormFactoryInterface $factory, $data = null) { $builder = $factory->createNamedBuilder('news', 'form', $data, array('data_class' => $this->getClassName())); return $builder->getForm(); }
/** * Create Form Objects for column and rowset index. * * @param \FSi\Component\DataGrid\Column\ColumnTypeInterface $column * @param mixed $index * @param mixed $object * @return FormInterface */ private function createForm(ColumnTypeInterface $column, $index, $object) { $formId = implode(array($column->getName(), $column->getId(), $index)); if (array_key_exists($formId, $this->forms)) { return $this->forms[$formId]; } //Create fields array. There are column types like entity where field_mapping //should not be used to build field array. $fields = array(); switch ($column->getId()) { case 'entity': $field = array('name' => $column->getOption('relation_field'), 'type' => $this->isSymfony3() ? $this->getEntityTypeName() : 'entity', 'options' => array()); $fields[$column->getOption('relation_field')] = $field; break; default: foreach ($column->getOption('field_mapping') as $fieldName) { $field = array('name' => $fieldName, 'type' => null, 'options' => array()); $fields[$fieldName] = $field; } } //Pass fields form options from column into $fields array. $fieldsOptions = $column->getOption('form_options'); foreach ($fieldsOptions as $fieldName => $fieldOptions) { if (array_key_exists($fieldName, $fields)) { if (is_array($fieldOptions)) { $fields[$fieldName]['options'] = $fieldOptions; } } } //Pass fields form type from column into $fields array. $fieldsTypes = $column->getOption('form_type'); foreach ($fieldsTypes as $fieldName => $fieldType) { if (array_key_exists($fieldName, $fields)) { if (is_string($fieldType)) { $fields[$fieldName]['type'] = $fieldType; } } } //Build data array, the data array holds data that should be passed into //form elements. switch ($column->getId()) { case 'datetime': foreach ($fields as &$field) { $value = $column->getDataMapper()->getData($field['name'], $object); if (!isset($field['type'])) { $field['type'] = $this->isSymfony3() ? $this->getDateTimeTypeName() : 'datetime'; } if (is_numeric($value) && !isset($field['options']['input'])) { $field['options']['input'] = 'timestamp'; } if (is_string($value) && !isset($field['options']['input'])) { $field['options']['input'] = 'string'; } if ($value instanceof \DateTime && !isset($field['options']['input'])) { $field['options']['input'] = 'datetime'; } } break; } if ($this->isSymfony3()) { $formBuilderOptions = array('entry_type' => $this->getRowTypeName(), 'csrf_protection' => false); } else { $formBuilderOptions = array('type' => new RowType($fields), 'csrf_protection' => false); } if ($this->isSymfony3()) { $formBuilderOptions['entry_options']['fields'] = $fields; } $formData = []; foreach (array_keys($fields) as $fieldName) { $formData[$fieldName] = $column->getDataMapper()->getData($fieldName, $object); } //Create form builder. $formBuilder = $this->formFactory->createNamedBuilder($column->getDataGrid()->getName(), $this->isSymfony3() ? $this->getCollectionTypeName() : 'collection', array($index => $formData), $formBuilderOptions); //Create Form. $this->forms[$formId] = $formBuilder->getForm(); return $this->forms[$formId]; }
/** * @param FormFactoryInterface $formFactory * @param string $name */ public function __construct(FormFactoryInterface $formFactory, $name = '') { $this->children = array(); $this->formBuilder = $formFactory->createNamedBuilder($name); }
/** * Creates a new form. * * @return FormInterface */ public function createForm() { $builder = $this->formFactory->createNamedBuilder($this->name, $this->type, null, array('method' => 'PATCH')); return $builder->getForm(); }
/** * {@inheritdoc} */ public function createForm($object = null, array $formOptions = []) { return $this->formFactory->createNamedBuilder('', $this->fqcn, $object, $formOptions)->getForm(); }