createNamedBuilder() public method

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);
 }
Beispiel #6
0
 /**
  * @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;
 }
Beispiel #17
0
 /**
  * @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;
 }
Beispiel #20
0
 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;
 }
Beispiel #23
0
 /**
  * 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();
 }
Beispiel #27
0
 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());
 }
Beispiel #28
0
 /**
  * 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;
 }
Beispiel #29
0
    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');
 }