public createNamedBuilder ( $name, $type = 'form', $data = null, array $options = [], Symfony\Component\Form\FormBuilderInterface $parent = null ) | ||
$options | array | |
$parent | Symfony\Component\Form\FormBuilderInterface |
/** * Obtains any form metadata from the entity and adds itself to the form * @param null $data * @param string $name * @param array $options * @return \Symfony\Component\Form\FormBuilderInterface */ public function createFormBuilder($data = null, $name = '', array $options = array()) { if (array_key_exists('method', $options)) { $method = $options['method']; unset($options['method']); } // Build the $form $formBuilder = $this->factory->createNamedBuilder($name, FormType::class, $data, $options); if (isset($method)) { $formBuilder->setMethod($method); } // Read the entity meta data and add to the form if (empty($this->drivers)) { return $formBuilder; } // Look to the readers to find metadata foreach ($this->drivers as $driver) { $metadata = $driver->getMetadata($data); if (!empty($metadata)) { break; } } if (empty($metadata)) { return $formBuilder; } // Configure the form $fields = $metadata->getFields(); foreach ($fields as $field) { // TODO: Detect "new x()" in field value or type option for AbstractType creation // TODO: Detect references to "%service.id%" for service constructor dependency $fieldOptions = $field->options; if (in_array($formBuilder->getMethod(), ['POST']) && array_key_exists('onCreate', $fieldOptions)) { if ($fieldOptions['onCreate']) { $fieldOptions = array_replace($fieldOptions, $fieldOptions['onCreate']); } else { continue; } } elseif (in_array($formBuilder->getMethod(), ['PUT', 'PATCH']) && array_key_exists('onEdit', $fieldOptions)) { if ($fieldOptions['onEdit']) { $fieldOptions = array_replace($fieldOptions, $fieldOptions['onEdit']); } else { continue; } } unset($fieldOptions['onCreate']); unset($fieldOptions['onEdit']); $formBuilder->add($field->name, $field->value, $fieldOptions); } return $formBuilder; }
/** * @dataProvider layoutProvider */ public function testLayout($formOptions, $formItems, $expectedBlocks) { $formBuilder = $this->factory->createNamedBuilder('test', 'form', null, $formOptions); $this->buildForm($formBuilder, $formItems); $formView = $formBuilder->getForm()->createView(); $result = $this->builder->build($formView); $expected = $this->getBlocks($expectedBlocks); $this->assertEquals($expected, $result->toArray()); }
/** * Builds form given success and fail urls * * @param $responseRoute * @return FormBuilder */ public function buildForm($responseRoute) { $formBuilder = $this->formFactory->createNamedBuilder(null); $orderId = $this->paymentBridge->getOrderId() . '#' . date('Ymdhis'); $fields = array('usuario' => $this->user, 'gran_total' => $this->paymentBridge->getAmount(), 'referencia' => $this->paymentBridge->getOrderDescription(), 'url_respuesta' => $responseRoute); //echo $this->cps;die(); $formKey = $this->encryptor->encrypt(implode('', $fields)); $formBuilder->setAction($this->gateway)->setMethod('POST')->add('usuario', 'hidden', array('data' => $this->user))->add('gran_total', 'hidden', array('data' => $this->paymentBridge->getAmount()))->add('referencia_ext', 'hidden', array('data' => $this->paymentBridge->getOrderDescription()))->add('url_respuesta', 'hidden', array('data' => $responseRoute))->add('key', 'hidden', array('data' => $formKey))->add('order_id', 'hidden', array('data' => $orderId))->add('Submit', 'hidden', array('data' => 'Pagar')); return $formBuilder; }
/** * Builds form given return, success and fail urls. * * @return FormView */ public function buildForm() { $formBuilder = $this->formFactory->createNamedBuilder(null); $orderId = $this->paymentBridge->getOrderId(); $orderCurrency = $this->paymentBridge->getCurrency(); $this->checkCurrency($orderCurrency); /** * Creates the success return route, when coming back * from PayPal web checkout. */ $successReturnUrl = $this->urlFactory->getSuccessReturnUrlForOrderId($orderId); /** * Creates the cancel payment route, when cancelling * the payment process from PayPal web checkout. */ $cancelReturnUrl = $this->urlFactory->getCancelReturnUrlForOrderId($orderId); /** * Creates the IPN payment notification route, * which is triggered after PayPal processes the * payment and returns the validity of the transaction. * * For forther information * * https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNandPDTVariables/ * https://developer.paypal.com/webapps/developer/docs/classic/ipn/integration-guide/IPNIntro/ */ $processUrl = $this->urlFactory->getProcessUrlForOrderId($orderId); $formBuilder->setAction($this->urlFactory->getApiEndpoint())->setMethod('POST')->add('business', 'hidden', ['data' => $this->business])->add('return', 'hidden', ['data' => $successReturnUrl])->add('cancel_return', 'hidden', ['data' => $cancelReturnUrl])->add('notify_url', 'hidden', ['data' => $processUrl])->add('currency_code', 'hidden', ['data' => $orderCurrency])->add('env', 'hidden', ['data' => '']); /** * Create a PayPal cart line for each order line. * * Project specific PaymentBridgeInterface::getExtraData * should return an array of this form * * ['items' => [ * 0 => [ 'item_name' => 'Item 1', 'amount' => 1234, 'quantity' => 2 ], * 1 => [ 'item_name' => 'Item 2', 'amount' => 2345, 'quantity' => 1 ], * ]] * * The 'items' key consists of an array with the basic information * of each line of the order. Amount is the price of the product, * not the total of the order line */ $cartData = $this->paymentBridge->getExtraData(); $itemsData = $cartData['items']; $iteration = 1; foreach ($itemsData as $orderLine) { $formBuilder->add('item_name_' . $iteration, 'hidden', ['data' => $orderLine['item_name']])->add('amount_' . $iteration, 'hidden', ['data' => $orderLine['amount'] / 100])->add('quantity_' . $iteration, 'hidden', ['data' => $orderLine['quantity']]); ++$iteration; } if (isset($cartData['discount_amount_cart'])) { $formBuilder->add('discount_amount_cart', 'hidden', ['data' => $cartData['discount_amount_cart'] / 100]); } return $formBuilder->getForm()->createView(); }
public function testRender() { $options = array('block_config' => array('first' => array('priority' => 1, 'title' => 'First Block', 'subblocks' => array('first' => array(), 'second' => array('title' => 'Second SubBlock')), 'description' => 'some desc'), 'second' => array('priority' => 2))); $builder = $this->factory->createNamedBuilder('test', 'form', null, $options); $builder->add('text_1', null, array('block' => 'first', 'subblock' => 'second')); $builder->add('text_2', null, array('block' => 'first')); $builder->add('text_3', null, array('block' => 'second')); $builder->add('text_4', null, array('block' => 'third')); $builder->add('text_5', null, array('block' => 'third', 'subblock' => 'first')); $builder->add('text_6', null); $formView = $builder->getForm()->createView(); $result = $this->renderer->render($this->twig, array('form' => $formView), $formView); $this->assertEquals($this->testFormConfig, $result); }
/** * @return DatalistInterface */ public function getDatalist() { $datalist = new Datalist($this->getDatalistConfig()); // Add fields foreach ($this->fields as $fieldName => $fieldConfig) { $field = $this->createField($fieldName, $fieldConfig); $field->setDatalist($datalist); $datalist->addField($field); } // Add search form if (null !== $this->getOption('search')) { $searchFormBuilder = $this->formFactory->createNamedBuilder('', FormType::class, null, ['csrf_protection' => false]); $searchFilter = $this->createFilter('search', ['type' => 'search', 'options' => ['search_fields' => $datalist->getOption('search')]]); $searchFilter->getType()->buildForm($searchFormBuilder, $searchFilter, $searchFilter->getOptions()); $searchFilter->setDatalist($datalist); $datalist->setSearchFilter($searchFilter); $datalist->setSearchForm($searchFormBuilder->getForm()); } // Add filters and filter form $filterFormBuilder = $this->formFactory->createNamedBuilder('', FormType::class, null, ['translation_domain' => $datalist->getOption('translation_domain'), 'csrf_protection' => false]); foreach ($this->filters as $filterName => $filterConfig) { $filter = $this->createFilter($filterName, $filterConfig); $filter->setDatalist($datalist); $filter->getType()->buildForm($filterFormBuilder, $filter, $filter->getOptions()); $datalist->addFilter($filter); } $datalist->setFilterForm($filterFormBuilder->getForm()); // Add actions foreach ($this->actions as $actionName => $actionConfig) { $action = $this->createAction($actionName, $actionConfig); $action->setDatalist($datalist); $datalist->addAction($action); } return $datalist; }
function it_returns_form_builder_with_additional_file_options_and_file_constraints(FormFactory $factory, FormBuilder $form, NotBlank $constraint) { $this->addConstraint($constraint); $this->setFormOptions(array('file_type' => 'fsi_image', 'file_options' => array('file_option' => 'value'))); $factory->createNamedBuilder('fileValue', 'fsi_removable_file', null, array('label' => false, 'required' => false, 'file_type' => 'fsi_image', 'file_options' => array('file_option' => 'value', 'constraints' => array($constraint))))->shouldBeCalled()->willReturn($form); $this->getFormBuilder($factory)->shouldReturn($form); }
/** * @return Form|\Symfony\Component\Form\Form */ public function getFilterForm() { if (null === $this->filterForm) { $this->filterForm = $this->buildFilterForm($this->formFactory->createNamedBuilder($this->getTableId() . '_filter')->add('dofilter', 'button'))->getForm(); } return $this->filterForm; }
/** * {@inheritdoc} */ public function getBaseDatagrid(AdminInterface $admin, array $values = array()) { $defaultOptions = array(); if ($this->csrfTokenEnabled) { $defaultOptions['csrf_protection'] = false; } $formBuilder = $this->formFactory->createNamedBuilder('filter', 'form', array(), $defaultOptions); return new Datagrid($admin->createQuery(), $admin->getList(), $this->getPager(), $formBuilder, $values); }
/** * Builds form given return, success and fail urls * * @return \Symfony\Component\Form\FormView */ public function buildForm() { $orderId = $this->paymentBridge->getOrderId(); $extraData = $this->paymentBridge->getExtraData(); $formBuilder = $this->formFactory->createNamedBuilder(null); if (array_key_exists('transaction_type', $extraData)) { $Ds_Merchant_TransactionType = $extraData['transaction_type']; } else { $Ds_Merchant_TransactionType = '0'; } /* * Creates the return route for Redsys */ $Ds_Merchant_MerchantURL = $this->urlFactory->getReturnRedsysUrl($orderId); /* * Creates the return route, when coming back * from Redsys web checkout and proccess is Ok */ $Ds_Merchant_UrlOK = $this->urlFactory->getReturnUrlOkForOrderId($orderId); /* * Creates the cancel payment route, when coming back * from Redsys web checkout and proccess is error */ $Ds_Merchant_UrlKO = $this->urlFactory->getReturnUrlKoForOrderId($orderId); $Ds_Merchant_Amount = $this->paymentBridge->getAmount(); $Ds_Merchant_Order = $this->formatOrderNumber($this->paymentBridge->getOrderNumber()); $Ds_Merchant_MerchantCode = $this->merchantCode; $Ds_Merchant_Currency = $this->currencyTranslation($this->paymentBridge->getCurrency()); $Ds_Merchant_Terminal = $extraData['terminal']; $merchantParameters = []; $merchantParameters['DS_MERCHANT_AMOUNT'] = $Ds_Merchant_Amount; $merchantParameters['DS_MERCHANT_MERCHANTCODE'] = $Ds_Merchant_MerchantCode; $merchantParameters['DS_MERCHANT_CURRENCY'] = $Ds_Merchant_Currency; $merchantParameters['DS_MERCHANT_TERMINAL'] = $Ds_Merchant_Terminal; $merchantParameters['DS_MERCHANT_ORDER'] = $Ds_Merchant_Order; $merchantParameters['DS_MERCHANT_MERCHANTURL'] = $Ds_Merchant_MerchantURL; $merchantParameters['DS_MERCHANT_URLOK'] = $Ds_Merchant_UrlOK; $merchantParameters['DS_MERCHANT_URLKO'] = $Ds_Merchant_UrlKO; $merchantParameters['DS_MERCHANT_TRANSACTIONTYPE'] = $Ds_Merchant_TransactionType; if (array_key_exists('product_description', $extraData)) { $merchantParameters['DS_MERCHANT_PRODUCTDESCRIPTION'] = $extraData['product_description']; } if (array_key_exists('merchant_titular', $extraData)) { $merchantParameters['DS_MERCHANT_TITULAR'] = $extraData['merchant_titular']; } if (array_key_exists('merchant_name', $extraData)) { $merchantParameters['DS_MERCHANT_MERCHANTNAME'] = $extraData['merchant_name']; } if (array_key_exists('merchant_data', $extraData)) { $merchantParameters['DS_MERCHANT_MERCHANTDATA'] = $extraData['merchant_data']; } $merchantParameters = base64_encode(json_encode($merchantParameters)); $Ds_Merchant_MerchantSignature = $this->redsysSignature->sign($Ds_Merchant_Order, $this->secretKey, $merchantParameters); $formBuilder->setAction($this->url)->setMethod('POST')->add('DS_MERCHANTPARAMETERS', 'hidden', array('data' => $merchantParameters))->add('DS_SIGNATUREVERSION', 'hidden', array('data' => $this->redsysSignature->getSignatureVersion()))->add('DS_SIGNATURE', 'hidden', array('data' => $Ds_Merchant_MerchantSignature)); return $formBuilder->getForm()->createView(); }
public function createForm($path) { $fb = $this->formFactory->createNamedBuilder(self::FORM_NAME, 'form', $this->translationTree); $this->generateFormChildren($fb, $this->translationTree); $fb->add('submit', 'submit'); $this->form = $fb->getForm(); $array_path = explode('/--/', $path); $this->filterForm($this->form, $array_path); return $this; }
/** * Builds form given return, success and fail urls. * * @return FormView */ public function buildForm() { $orderId = $this->paymentBridge->getOrderId(); $extraData = $this->paymentBridge->getExtraData(); $formBuilder = $this->formFactory->createNamedBuilder(null); if (array_key_exists('transaction_type', $extraData)) { $Ds_Merchant_TransactionType = $extraData['transaction_type']; } else { $Ds_Merchant_TransactionType = '0'; } /** * Creates the return route for Redsys. */ $Ds_Merchant_MerchantURL = $this->urlFactory->getReturnRedsysUrl(); /** * Creates the return route, when coming back * from Redsys web checkout and proccess is Ok. */ $Ds_Merchant_UrlOK = $this->urlFactory->getReturnUrlOkForOrderId($orderId); /** * Creates the cancel payment route, when coming back * from Redsys web checkout and proccess is error. */ $Ds_Merchant_UrlKO = $this->urlFactory->getReturnUrlKoForOrderId($orderId); /** * Creates the merchant signature. */ $Ds_Merchant_Amount = $this->paymentBridge->getAmount(); $Ds_Merchant_Order = $this->formatOrderNumber($this->paymentBridge->getOrderNumber()); $Ds_Merchant_MerchantCode = $this->merchantCode; $Ds_Merchant_Currency = $this->getCurrencyCodeByIso($this->paymentBridge->getCurrency()); $Ds_Merchant_MerchantSignature = $this->shopSignature($Ds_Merchant_Amount, $Ds_Merchant_Order, $Ds_Merchant_MerchantCode, $Ds_Merchant_Currency, $Ds_Merchant_TransactionType, $Ds_Merchant_MerchantURL, $this->secretKey); $Ds_Merchant_Terminal = $extraData['terminal']; $formBuilder->setAction($this->url)->setMethod('POST')->add('Ds_Merchant_Amount', 'hidden', ['data' => $Ds_Merchant_Amount])->add('Ds_Merchant_MerchantSignature', 'hidden', ['data' => $Ds_Merchant_MerchantSignature])->add('Ds_Merchant_MerchantCode', 'hidden', ['data' => $this->merchantCode])->add('Ds_Merchant_Currency', 'hidden', ['data' => $Ds_Merchant_Currency])->add('Ds_Merchant_Terminal', 'hidden', ['data' => $Ds_Merchant_Terminal])->add('Ds_Merchant_Order', 'hidden', ['data' => $Ds_Merchant_Order])->add('Ds_Merchant_MerchantURL', 'hidden', ['data' => $Ds_Merchant_MerchantURL])->add('Ds_Merchant_UrlOK', 'hidden', ['data' => $Ds_Merchant_UrlOK])->add('Ds_Merchant_UrlKO', 'hidden', ['data' => $Ds_Merchant_UrlKO]); /** * Optional form fields. */ if (array_key_exists('transaction_type', $extraData)) { $formBuilder->add('Ds_Merchant_TransactionType', 'hidden', ['data' => $Ds_Merchant_TransactionType]); } if (array_key_exists('product_description', $extraData)) { $formBuilder->add('Ds_Merchant_ProductDescription', 'hidden', ['data' => $extraData['product_description']]); } if (array_key_exists('merchant_titular', $extraData)) { $formBuilder->add('Ds_Merchant_Titular', 'hidden', ['data' => $extraData['merchant_titular']]); } if (array_key_exists('merchant_name', $extraData)) { $formBuilder->add('Ds_Merchant_MerchantName', 'hidden', ['data' => $extraData['merchant_name']]); } if (array_key_exists('merchant_data', $extraData)) { $formBuilder->add('Ds_Merchant_MerchantData', 'hidden', ['data' => $extraData['merchant_data']]); } return $formBuilder->getForm()->createView(); }
/** * {@inheritdoc} */ public function getBaseDatagrid(AdminInterface $admin, array $values = array()) { $pager = $this->getPager($admin->getPagerType()); $pager->setCountColumn($admin->getModelManager()->getIdentifierFieldNames($admin->getClass())); $defaultOptions = array(); if ($this->csrfTokenEnabled) { $defaultOptions['csrf_protection'] = false; } $formBuilder = $this->formFactory->createNamedBuilder('filter', 'form', array(), $defaultOptions); return new Datagrid($admin->createQuery(), $admin->getList(), $pager, $formBuilder, $values); }
/** * Builds form given return, success and fail urls * * @return \Symfony\Component\Form\FormView */ public function buildForm() { $orderId = $this->paymentBridge->getOrderId(); $extraData = $this->paymentBridge->getExtraData(); $formBuilder = $this->formFactory->createNamedBuilder(null); if (array_key_exists('transaction_type', $extraData)) { $Ds_Merchant_TransactionType = $extraData['transaction_type']; } else { $Ds_Merchant_TransactionType = '0'; } /* * Creates the return route for Redsys */ $Ds_Merchant_MerchantURL = $this->urlFactory->getReturnRedsysUrl(); /* * Creates the return route, when coming back * from Redsys web checkout and proccess is Ok */ $Ds_Merchant_UrlOK = $this->urlFactory->getReturnUrlOkForOrderId($orderId); /* * Creates the cancel payment route, when coming back * from Redsys web checkout and proccess is error */ $Ds_Merchant_UrlKO = $this->urlFactory->getReturnUrlKoForOrderId($orderId); $Ds_Merchant_Amount = $this->paymentBridge->getAmount(); $Ds_Merchant_Order = $this->formatOrderNumber($this->paymentBridge->getOrderNumber()); $Ds_Merchant_MerchantCode = $this->merchantCode; $Ds_Merchant_Terminal = $this->merchantTerminal; $Ds_Merchant_Currency = $this->currencyTranslation($this->paymentBridge->getCurrency()); $Ds_Signature_version = "HMAC_SHA256_V1"; $this->setParameter("DS_MERCHANT_AMOUNT", $Ds_Merchant_Amount); $this->setParameter("DS_MERCHANT_ORDER", $Ds_Merchant_Order); $this->setParameter("DS_MERCHANT_MERCHANTCODE", $Ds_Merchant_MerchantCode); $this->setParameter("DS_MERCHANT_CURRENCY", $Ds_Merchant_Currency); $this->setParameter("DS_MERCHANT_TERMINAL", $Ds_Merchant_Terminal); $this->setParameter("DS_MERCHANT_TRANSACTIONTYPE", $Ds_Merchant_TransactionType); if (array_key_exists('product_description', $extraData)) { $this->setParameter("Ds_Merchant_ProductDescription", $extraData['product_description']); } if (array_key_exists('merchant_titular', $extraData)) { $this->setParameter("Ds_Merchant_Titular", $extraData['merchant_titular']); } if (array_key_exists('merchant_name', $extraData)) { $this->setParameter("Ds_Merchant_MerchantName", $extraData['merchant_name']); } $this->setParameter("DS_MERCHANT_MERCHANTURL", $Ds_Merchant_MerchantURL); $this->setParameter("DS_MERCHANT_URLOK", $Ds_Merchant_UrlOK); $this->setParameter("DS_MERCHANT_URLKO", $Ds_Merchant_UrlKO); $Ds_Merchant_MerchantSignature = $this->shopSignature($Ds_Merchant_Order, $this->secretKey); $formBuilder->setAction($this->url)->setMethod('POST')->add('Ds_SignatureVersion', 'hidden', array("data" => $Ds_Signature_version))->add('Ds_MerchantParameters', 'hidden', array("data" => $this->merchantParams()))->add('Ds_Signature', 'hidden', array("data" => $Ds_Merchant_MerchantSignature)); return $formBuilder->getForm()->createView(); }
public function createNamedFormBuilder($formName, Report $report, $data = array()) { $formBuilder = $this->formFactory->createNamedBuilder($formName, FormType::class, $data, array('csrf_protection' => false)); foreach ($report->getParameters() as $parameter) { $options = $this->buildOptions($parameter); if (isset($data[$parameter->getName()])) { $options['data'] = $data[$parameter->getName()]; } $className = '\\Symfony\\Component\\Form\\Extension\\Core\\Type\\' . ucfirst($parameter->getType()) . 'Type'; if (class_exists($parameter->getType())) { $type = $parameter->getType(); } else { if (class_exists($className)) { $type = $className; } else { $type = TextType::class; } } $formBuilder->add($parameter->getName(), $type, $options); } $formBuilder->add('Search', SubmitType::class, array('attr' => array('class' => 'btn btn-primary'))); return $formBuilder; }
/** * Builds form given success and fail urls * * @return Form */ public function buildForm($responseRoute, $confirmRoute) { $extraData = $this->paymentBridge->getExtraData(); $formBuilder = $this->formFactory->createNamedBuilder(null); $key = $this->key; $userId = $this->userId; $orderId = $this->paymentBridge->getOrderId() . '#' . date('Ymdhis'); $amount = $this->paymentBridge->getAmount(); $currency = $this->paymentBridge->getCurrency(); $signature = "{$key}~{$userId}~{$orderId}~{$amount}~{$currency}"; $signatureHash = md5($signature); $formBuilder->setAction($this->gateway)->setMethod('POST')->add('usuarioId', 'hidden', array('data' => $this->userId))->add('firma', 'hidden', array('data' => $signatureHash))->add('refVenta', 'hidden', array('data' => $orderId))->add('extra1', 'hidden', array('data' => 'pagosonlinegateway'))->add('extra2', 'hidden', array('data' => $this->paymentBridge->getOrder()->getCart()->getId()))->add('descripcion', 'hidden', array('data' => 'description'))->add('valor', 'hidden', array('data' => $this->paymentBridge->getAmount()))->add('moneda', 'hidden', array('data' => $this->paymentBridge->getCurrency()))->add('lng', 'hidden', array('data' => $extraData['language']))->add('iva', 'hidden', array('data' => $extraData['refund_vat']))->add('baseDevolucionIva', 'hidden', array('data' => $extraData['refund_vat']))->add('url_respuesta', 'hidden', array('data' => $responseRoute))->add('url_confirmacion', 'hidden', array('data' => $confirmRoute))->add('prueba', 'hidden', array('data' => $this->test))->add('emailComprador', 'hidden', array('data' => $extraData['customer_email']))->add('paisEnvio', 'hidden', array('data' => 'CO'))->add('Submit', 'hidden', array('data' => 'Pagar')); return $formBuilder; }
/** * @Route("/", name="teaser_route") * @param Request $request * @return \Symfony\Component\HttpFoundation\RedirectResponse|Response * @throws \Exception */ public function teaserAction(Request $request) { /** @var AnonymousToken $token */ $token = $this->tokenStorage->getToken(); /** @var User $user */ $user = $token->getUser(); if ($user == 'anon.') { return $this->templating->renderResponse('base.html.twig', [TwigNodeTemplateTreeSection::TEMPLATE_TREE_BRANCH => 'home/teaser']); } $pageEleveur = $this->pageEleveurService->findByOwner($user); $form = $this->formFactory->createNamedBuilder('creation-page-eleveur')->add('nom', TextType::class, ['label' => 'Nom de l\'élevage'])->add('save', SubmitType::class, array('label' => 'Créer ma page éleveur'))->getForm(); $form->handleRequest($request); if (!$form->isSubmitted() && $pageEleveur) { // un eleveur ne peux pas créer une 2eme page eleveur return $this->templating->renderResponse('base.html.twig', [TwigNodeTemplateTreeSection::TEMPLATE_TREE_BRANCH => 'home/eleveur', 'pageEleveur' => $pageEleveur]); } if ($form->isSubmitted() && $form->isValid()) { // traitement du formulaire de creation de page eleveur $nom = $form->getData()['nom']; try { $slug = $this->pageEleveurService->create($nom, $user)->getSlug(); return new RedirectResponse($this->router->generate('getPageEleveur_route', ['pageEleveurSlug' => $slug])); } catch (HistoryException $e) { $this->logger->error($e->getMessage(), ['exception' => $e, 'user' => $user, 'nom' => $nom]); switch ($e->getCode()) { case HistoryException::NOM_INVALIDE: return new Response('Le nom "' . $nom . '" n\'est pas valide.', Response::HTTP_NOT_ACCEPTABLE); case HistoryException::SLUG_DEJA_EXISTANT: return new Response('Une page éleveur du même nom existe déjà .', Response::HTTP_CONFLICT); case HistoryException::DEJA_OWNER: return new Response('Vous avez déjà une page éleveur.', Response::HTTP_BAD_REQUEST); } } } // home d'un user connecté mais qui n'a pas de page eleveur return $this->templating->renderResponse('base.html.twig', [TwigNodeTemplateTreeSection::TEMPLATE_TREE_BRANCH => 'home/creation-page-eleveur', 'creationPageEleveur' => $form->createView()]); }
public function defineFieldBuilder(FormFactory $formFactory) { $options = array( 'choices' => array( 'all' => 'all', 'true' => 'true', 'false' => 'false' ), 'required' => true ); $options = array_merge($options, $this->getFieldDescription()->getOption('filter_field_options', array())); $this->field = $formFactory->createNamedBuilder('choice', $this->getName(), null, $options)->getForm(); }
/** * Builds form given success and fail urls * * @param string $dineromailSuccessUrl Success route url * @param string $dineromailFailUrl Fail route url * @param string $dineromailTransactionId Transaction Id * * @return Form */ public function buildForm($dineromailSuccessUrl, $dineromailFailUrl, $dineromailTransactionId) { $extraData = $this->paymentBridge->getExtraData(); $formBuilder = $this->formFactory->createNamedBuilder(null); $formBuilder->setAction($this->endPoint)->setMethod('POST')->add('merchant', 'hidden', array('data' => $this->merchant))->add('country_id', 'hidden', array('data' => $this->country))->add('seller_name', 'hidden', array('data' => $this->sellerName))->add('payment_method_available', 'hidden', array('data' => implode(';', $this->paymentMethodsAvailable)))->add('url_redirect_enabled', 'hidden', array('data' => intval($this->urlRedirectEnabled)))->add('header_image', 'hidden', array('data' => $this->headerImage))->add('amount', 'hidden', array('data' => number_format($this->paymentBridge->getAmount(), 2)))->add('transaction_id', 'hidden', array('data' => $dineromailTransactionId))->add('currency', 'hidden', array('data' => $this->paymentBridge->getCurrency()))->add('buyer_name', 'hidden', array('data' => $extraData['customer_firstname']))->add('buyer_lastname', 'hidden', array('data' => $extraData['customer_lastname']))->add('buyer_email', 'hidden', array('data' => $extraData['customer_email']))->add('buyer_phone', 'hidden', array('data' => $extraData['customer_phone']))->add('language', 'hidden', array('data' => $extraData['language']))->add('ok_url', 'hidden', array('data' => $dineromailSuccessUrl))->add('error_url', 'hidden', array('data' => $dineromailFailUrl))->add('pending_url', 'hidden', array('data' => $dineromailSuccessUrl)); $iteration = 1; /** * Every item defined in the PaymentBridge is added as a simple field */ foreach ($extraData['dinero_mail_items'] as $key => $dineroMailItem) { $formBuilder->add('item_name_' . $iteration, 'hidden', array('data' => $dineroMailItem['name']))->add('item_quantity_' . $iteration, 'hidden', array('data' => $dineroMailItem['quantity']))->add('item_ammount_' . $iteration, 'hidden', array('data' => $dineroMailItem['amount']))->add('item_currency_' . $iteration, 'hidden', array('data' => $this->paymentBridge->getCurrency())); $iteration++; } return $formBuilder; }
function it_handles_form_that_tests_handle_project_image(Request $request, ProjectInterface $project, FormFactory $formFactory, FormBuilderInterface $formBuilder, FormInterface $form, FileBag $fileBag, MediaFactory $mediaFactory, MediaInterface $media, ObjectManager $manager, MediaUploader $uploader) { $image = new UploadedFile('', '', null, null, 99, true); // Avoids file not found exception $formFactory->createNamedBuilder('', 'kreta_project_project_type', $project, [])->shouldBeCalled()->willReturn($formBuilder); $formBuilder->getForm()->shouldBeCalled()->willReturn($form); $request->isMethod('POST')->shouldBeCalled()->willReturn(true); $form->handleRequest($request)->shouldBeCalled(); $form->isValid()->shouldBeCalled()->willReturn(true); $fileBag->get('image')->shouldBeCalled()->willReturn($image); $request->files = $fileBag; $mediaFactory->create($image)->shouldBeCalled()->willReturn($media); $uploader->upload($media)->shouldBeCalled(); $project->setImage($media)->shouldBeCalled()->willReturn($project); $manager->persist($project)->shouldBeCalled(); $manager->flush()->shouldBeCalled(); $this->handleForm($request, $project, []); }
/** * This method generates a form based on the configuration file. * * @param string $key The key of the Form in the form configuration * @param array $data * @param array $options * @param string $name An name for the form. If empty, the key will be used * * @return FormBuilderInterface * * @throws NonExistentFormException */ public function createBuilder($key, $data = [], $options = [], $name = null) { if (!isset($this->configuration[$key])) { throw new NonExistentFormException(sprintf('The form "%s" was not found.', $key)); } $formBuilder = $this->formFactory->createNamedBuilder($name ?: $key, 'form', $data, $options); if (isset($this->eventSubscribers[$key])) { foreach ($this->eventSubscribers[$key] as $eventSubscriber) { $formBuilder->addEventSubscriber($eventSubscriber); } } foreach ($this->configuration[$key] as $key => $fieldConfiguration) { if (!$fieldConfiguration['enabled']) { continue; } $fieldOptions = isset($fieldConfiguration['options']) ? $fieldConfiguration['options'] : []; if (isset($fieldConfiguration['data_provider'])) { $fieldOptions['choices'] = $this->loadDataProvider($fieldConfiguration['data_provider'])->getData(); } if (isset($fieldConfiguration['validation'])) { $constraints = []; foreach ($fieldConfiguration['validation'] as $validatorName => $options) { $constraints[] = new $validatorName($options); } $fieldOptions['constraints'] = $constraints; } $field = $formBuilder->create($key, $fieldConfiguration['type'], $fieldOptions); if (isset($fieldConfiguration['transformer'])) { $transformerConfiguration = $fieldConfiguration['transformer']; $transformer = new $transformerConfiguration['class'](); if (isset($transformerConfiguration['calls'])) { foreach ($transformerConfiguration['calls'] as $call) { call_user_func([$transformer, $call[0]], $call[1]); } } $field->addModelTransformer($transformer); } $formBuilder->add($field); } return $formBuilder; }
/** * Builds form given success and fail urls * * @param String $successRoute * @param String $failRoute * @param Integer $safetyPayTransaction * @param SafetypayMethod $paymentMethod * @throws \PaymentSuite\PaymentCoreBundle\Exception\PaymentException * @return FormBuilder */ public function buildForm($successRoute, $failRoute, $safetyPayTransaction, SafetypayMethod $paymentMethod) { $formBuilder = $this->formFactory->createNamedBuilder(null); $elements = array('Apikey' => $this->key, 'RequestDateTime' => $this->safetyPayManager->getRequestDateTime(), 'CurrencyCode' => $this->paymentBridge->getCurrency(), 'Amount' => number_format($this->paymentBridge->getAmount() / 100, 2, '.', ''), 'MerchantReferenceNo' => $safetyPayTransaction, 'Language' => 'ES', 'TrackingCode' => '', 'ExpirationTime' => $this->expiration, 'FilterBy' => '', 'TransactionOkURL' => $successRoute, 'TransactionErrorURL' => $failRoute, 'ResponseFormat' => $this->safetyPayManager->getresponseFormat()); $this->paymentLogger->setPaymentBundle($paymentMethod->getPaymentName()); $jsonData = json_encode($elements); $this->paymentLogger->log('Request: ' . $jsonData); $elements['signature'] = $this->safetyPayManager->getSignature($elements, 'CurrencyCode, Amount, MerchantReferenceNo, Language, TrackingCode, ExpirationTime, TransactionOkURL, TransactionErrorURL'); $paymentMethod->setRequestDateTime($elements['RequestDateTime']); $paymentMethod->setSignature($elements['signature']); $urlToken = $this->safetyPayManager->getUrlToken($elements, false); //Token no valid if (strpos($urlToken, 'Error') > 0) { throw new PaymentException(); } $urlTokenExploded = explode('?', $urlToken); $urlTokenHost = $urlTokenExploded[0]; $urlTokenParam = $urlTokenExploded[1]; $urlTokenParamExploded = explode('=', $urlTokenParam); $formBuilder->setAction($urlTokenHost)->setMethod('POST')->add('TokenID', 'hidden', array('data' => $urlTokenParamExploded[1])); return $formBuilder; }
/** * Get the form (for filtering). * * @param Table $table * * @return FormView */ public function form(Table $table) { $form = $this->formFactory->createNamedBuilder($table->getId() . '_form'); //$this->formBuilder->set foreach ($table->getAllFilters() as $filter) { // selon le type de filtre switch ($filter::FILTER_TYPE) { case FilterCheckbox::FILTER_TYPE: $form->add($filter->getName(), \Symfony\Component\Form\Extension\Core\Type\CheckboxType::class, ['required' => false]); break; case FilterSelect::FILTER_TYPE: $form->add($filter->getName(), \Symfony\Component\Form\Extension\Core\Type\ChoiceType::class, ['required' => false, 'choices' => $filter->getChoices(), 'placeholder' => $filter->getPlaceholder()]); break; case Filter::FILTER_TYPE: default: $form->add($filter->getName(), \Symfony\Component\Form\Extension\Core\Type\TextType::class, ['required' => false]); break; } } // append special inputs (used for export csv for exemple) $form->add('sortColumn', \Symfony\Component\Form\Extension\Core\Type\HiddenType::class, ['required' => false]); $form->add('sortReverse', \Symfony\Component\Form\Extension\Core\Type\HiddenType::class, ['required' => false]); return $form->getForm()->createView(); }
/** * @expectedException \Symfony\Component\Form\Exception\UnexpectedTypeException * @expectedExceptionMessage Expected argument of type "string, Symfony\Component\Form\ResolvedFormTypeInterface or Symfony\Component\Form\FormTypeInterface", "stdClass" given */ public function testCreateNamedBuilderThrowsUnderstandableException() { $this->factory->createNamedBuilder('name', new \stdClass()); }
/** * Creates a new form. * * @return Form */ public function createForm() { $builder = $this->formFactory->createNamedBuilder($this->type, $this->name); return $builder->getForm(); }
/** * Creates a form. * * @param string $type form type class name * @param string $name form name * @param array $data data passed to the form * @param array $options * * @return \Symfony\Component\Form\Form */ public function createForm($type, $name, $data = null, array $options = array()) { $builder = $this->formFactory->createNamedBuilder($name, $type, $data, $options); return $builder->getForm(); }
public function testFormTypeCreatesDefaultValueForEmptyDataOption() { $factory = new FormFactory(array(new \Symfony\Component\Form\Extension\Core\CoreExtension())); $form = $factory->createNamedBuilder('author', new AuthorType())->getForm(); $form->bind(array('firstName' => 'John', 'lastName' => 'Smith')); $author = new Author(); $author->firstName = 'John'; $author->setLastName('Smith'); $this->assertEquals($author, $form->getData()); }
/** * Initialization * * @param FormFactory $formFactory * @param array|null $structure * @param mixed $translator */ public function __construct(FormFactory $formFactory, $structure, $translator) { $this->validationType = $structure['form']['validation']; $this->translator = $translator; $formOptions = array(); if ('js' === $this->validationType) { $formOptions = array('attr' => array('class' => 'css-form', 'ng-controller' => 'FormCtrl', 'novalidate' => 'novalidate', 'ng-submit' => 'submit($event)')); } // sets defaults $defaults = array(); foreach ($structure['form']['fields'] as $field) { if ($field['type'] == 'collection' && $field['show']) { $defaults = array('attachment' => array(array('file' => new File('%kernel.root_dir%/../web/', false)))); } } $this->formName = $structure['form']['name']; /** @var FormSymfonyBuilder $formBuilder */ $formBuilder = $formFactory->createNamedBuilder($this->formName, 'form', $defaults, $formOptions); if ($structure && $structure['form']['show']) { foreach ($structure['form']['fields'] as $field) { if ($field['show']) { // validations $options = array(); $constrains = array(); $attributes = array(); if (isset($field['validation']) && $field['validation']) { if (isset($field['label']) && $field['label']) { $options['label'] = $field['label']; } foreach ($field['validation'] as $key => $validation) { $data = $this->setValidation(new Validation($key, $field['name'], $validation)); $options = array_merge_recursive($options, $data->getOptions()); $constrains = array_merge($constrains, array($data->getConstrains())); $attributes[] = $data->getJsValidation(); } if ('js' === $this->validationType) { $options['attr'] = isset($options['attr']) ? $options['attr'] : array(); $options['attr'] = array_merge($options['attr'], array('ng-model' => $this->formName . '.' . $field['name'])); $options['attr']['ng-required'] = isset($options['attr']['ng-required']) ? $options['attr']['ng-required'] : 'false'; } if (count($constrains) > 0) { $options['attr'] = array_merge($options['attr'], array('data-validation' => json_encode($attributes))); $options['constraints'] = $constrains; } } // collection field if ($field['type'] == 'collection') { $options['type'] = new FileType($validation); $options['allow_add'] = true; $options['allow_delete'] = true; } $formBuilder->add($field['name'], $field['type'], $options); } } $formBuilder->add('submit', 'submit', array('attr' => array('class' => 'button right'))); } if ($formBuilder->has('phone')) { $formBuilder->get('phone')->addModelTransformer(new CallbackTransformer(function ($original) { return $original; }, function ($submitted) { $submitted = str_replace(array('(', ')', '+', '-', ' '), '', $submitted); return intval($submitted); })); } $this->form = $formBuilder; }
public function testUnknownOption() { $type = new \Symfony\Component\Form\Extension\Core\Type\TextType(); $factory = new FormFactory(array(new \Symfony\Component\Form\Extension\Core\CoreExtension())); $this->setExpectedException('Symfony\Component\Form\Exception\CreationException', 'The option "unknown" does not exist. Known options are: "data", "data_class", ' . '"trim", "required", "read_only", "max_length", "pattern", "property_path", "by_reference", ' . '"error_bubbling", "error_mapping", "label", "attr", "invalid_message", "invalid_message_parameters", ' . '"translation_domain", "empty_data"' ); $factory->createNamedBuilder($type, "text", "value", array("unknown" => "opt")); }
function it_return_form_builder_with_form_options_added_to_resource_definition(FormFactory $factory, FormBuilder $form) { $this->setFormOptions(array('attr' => array('class' => 'class-name'))); $factory->createNamedBuilder('timeValue', 'time', null, array('label' => false, 'required' => false, 'attr' => array('class' => 'class-name')))->shouldBeCalled()->willReturn($form); $this->getFormBuilder($factory)->shouldReturnAnInstanceOf('Symfony\\Component\\Form\\FormBuilder'); }