Esempio n. 1
0
 /**
  * {@inheritdoc}
  */
 public function buildForm(FormBuilder $builder, array $options)
 {
     if ($options['allow_add'] && $options['prototype']) {
         $prototype = $builder->create($options['prototype_name'], $options['type'], array_replace(array('label' => $options['prototype_name'] . 'label__'), $options['options']));
         $builder->setAttribute('prototype', $prototype->getForm());
     }
     $resizeListener = new ResizeFormListener($builder->getFormFactory(), $options['type'], $options['options'], $options['allow_add'], $options['allow_delete']);
     $builder->addEventSubscriber($resizeListener)->setAttribute('allow_add', $options['allow_add'])->setAttribute('allow_delete', $options['allow_delete']);
     // Enable support for adders/removers unless "by_reference" is disabled
     // (explicit calling of the setter is desired)
     if ($options['by_reference']) {
         $builder->addEventSubscriber(new MergeCollectionListener($options['allow_add'], $options['allow_delete'], MergeCollectionListener::MERGE_INTO_PARENT, $options['add_method'], $options['remove_method']));
     }
 }
Esempio n. 2
0
    public function buildForm(FormBuilder $builder, array $options)
    {
        if (null === $options['property_path']) {
            $options['property_path'] = $builder->getName();
        }

        if (false === $options['property_path'] || '' === $options['property_path']) {
            $options['property_path'] = null;
        } else {
            $options['property_path'] = new PropertyPath($options['property_path']);
        }

        $builder->setRequired($options['required'])
            ->setReadOnly($options['read_only'])
            ->setErrorBubbling($options['error_bubbling'])
            ->setEmptyData($options['empty_data'])
            ->setAttribute('by_reference', $options['by_reference'])
            ->setAttribute('property_path', $options['property_path'])
            ->setAttribute('error_mapping', $options['error_mapping'])
            ->setAttribute('max_length', $options['max_length'])
            ->setAttribute('label', $options['label'] ?: $this->humanize($builder->getName()))
            ->setData($options['data'])
            ->addValidator(new DefaultValidator());

        if ($options['trim']) {
            $builder->addEventSubscriber(new TrimListener());
        }
    }
Esempio n. 3
0
 /**
  * {@inheritdoc}
  */
 public function buildForm(FormBuilder $builder, array $options)
 {
     $configs = array_replace($this->options, $options['configs']);
     $sizeLimit = 2;
     $fileDesc = '';
     $fileExt = '';
     $fileMeta = new Upload();
     if (true === isset($configs['multi']) && $configs['multi']) {
         $options['multiple'] = true;
     }
     if (true === $options['multiple']) {
         $configs['multi'] = true;
     }
     if (!isset($options['sizeLimit'])) {
         $max_upload = (int) ini_get('upload_max_filesize');
         $sizeLimit = $max_upload * 1000000;
     } else {
         $sizeLimit = $options['sizeLimit'];
     }
     if (!isset($options['fileDesc'])) {
         $fileDesc = 'Tous les fichiers';
     } else {
         $fileDesc = $options['fileDesc'];
     }
     if (!isset($options['fileExt'])) {
         $fileExt = '*.*';
     } else {
         $fileExt = $options['fileExt'];
     }
     $builder->addEventSubscriber(new FileListener($this->rootDir, $options['multiple'], $this->em))->setAttribute('configs', $configs)->setAttribute('rootDir', $this->rootDir)->setAttribute('multiple', $options['multiple'])->setAttribute('session', $this->session)->setAttribute('fileDesc', $fileDesc)->setAttribute('fileExt', $fileExt)->setAttribute('sizeLimit', $sizeLimit)->setAttribute('fileMeta', $fileMeta);
 }
Esempio n. 4
0
 public function buildForm(FormBuilder $builder, array $options)
 {
     if ($options['multiple']) {
         $builder->addEventSubscriber(new MergeCollectionListener())->prependClientTransformer(new ModelsToArrayTransformer($options['choice_list']));
     } else {
         $builder->prependClientTransformer(new ModelToIdTransformer($options['choice_list']));
     }
 }
Esempio n. 5
0
 public function buildForm(FormBuilder $builder, array $options)
 {
     if ($options['allow_add'] && $options['prototype']) {
         $builder->add('$$name$$', $options['type'], array_replace(array('property_path' => false, 'required' => false), $options['options']));
     }
     $listener = new ResizeFormListener($builder->getFormFactory(), $options['type'], $options['options'], $options['allow_add'], $options['allow_delete']);
     $builder->addEventSubscriber($listener)->setAttribute('allow_add', $options['allow_add'])->setAttribute('allow_delete', $options['allow_delete']);
 }
Esempio n. 6
0
    public function buildForm(FormBuilder $builder, array $options)
    {
        if (!$options['choices'] && !$options['choice_list']) {
            throw new FormException('Either the option "choices" or "choice_list" is required');
        }

        if ($options['choice_list'] && !$options['choice_list'] instanceof ChoiceListInterface) {
            throw new FormException('The "choice_list" must be an instance of "Symfony\Component\Form\Extension\Core\ChoiceList\ChoiceListInterface".');
        }

        if (!$options['choice_list']) {
            $options['choice_list'] = new ArrayChoiceList($options['choices']);
        }

        if ($options['expanded']) {
            // Load choices already if expanded
            $options['choices'] = $options['choice_list']->getChoices();

            foreach ($options['choices'] as $choice => $value) {
                if ($options['multiple']) {
                    $builder->add((string)$choice, 'checkbox', array(
                        'value' => $choice,
                        'label' => $value,
                        // The user can check 0 or more checkboxes. If required
                        // is true, he is required to check all of them.
                        'required' => false,
                    ));
                } else {
                    $builder->add((string)$choice, 'radio', array(
                        'value' => $choice,
                        'label' => $value,
                    ));
                }
            }
        }

        $builder->setAttribute('choice_list', $options['choice_list'])
            ->setAttribute('preferred_choices', $options['preferred_choices'])
            ->setAttribute('multiple', $options['multiple'])
            ->setAttribute('expanded', $options['expanded']);

        if ($options['expanded']) {
            if ($options['multiple']) {
                $builder->appendClientTransformer(new ArrayToBooleanChoicesTransformer($options['choice_list']));
            } else {
                $builder->appendClientTransformer(new ScalarToBooleanChoicesTransformer($options['choice_list']));
                $builder->addEventSubscriber(new FixRadioInputListener(), 10);
            }
        } else {
            if ($options['multiple']) {
                $builder->appendClientTransformer(new ArrayToChoicesTransformer());
            } else {
                $builder->appendClientTransformer(new ScalarToChoiceTransformer());
            }
        }

    }
Esempio n. 7
0
 /**
  * {@inheritdoc}
  */
 public function buildForm(FormBuilder $builder, array $options)
 {
     if ($options['allow_add'] && $options['prototype']) {
         $prototype = $builder->create('$$' . $options['prototype_name'] . '$$', $options['type'], $options['options']);
         $builder->setAttribute('prototype', $prototype->getForm());
     }
     $listener = new ResizeFormListener($builder->getFormFactory(), $options['type'], $options['options'], $options['allow_add'], $options['allow_delete']);
     $builder->addEventSubscriber($listener)->setAttribute('allow_add', $options['allow_add'])->setAttribute('allow_delete', $options['allow_delete']);
 }
Esempio n. 8
0
 /**
  * {@inheritdoc}
  */
 public function buildForm(FormBuilder $builder, array $options)
 {
     $configs = array_replace($this->options, $options['configs']);
     if (isset($configs['multi']) && $configs['multi']) {
         $options['multiple'] = true;
     }
     if ($options['multiple']) {
         $configs['multi'] = true;
     }
     $builder->addEventSubscriber(new FileListener($this->rootDir, $options['multiple']))->setAttribute('configs', $configs)->setAttribute('rootDir', $this->rootDir)->setAttribute('multiple', $options['multiple']);
 }
 public function buildForm(FormBuilder $builder, array $options)
 {
     $builder->add('body');
     $builder->add('is_published');
     $builder->add('publish_to', 'date', array('widget' => 'single_text', 'format' => 'yyyy-MM-dd'));
     $builder->add('publish_from', 'date', array('widget' => 'single_text', 'format' => 'yyyy-MM-dd'));
     $builder->add('author', 'extended_text', array('empty_value' => ''));
     $builder->add('meta_description', 'extended_text', array('empty_value' => ''));
     $builder->add('meta_keywords', 'extended_text', array('empty_value' => ''));
     $builder->addEventSubscriber(new RemoveExtraDataListener());
 }
Esempio n. 10
0
    public function buildForm(FormBuilder $builder, array $options)
    {
        $listener = new ResizeFormListener(
            $builder->getFormFactory(),
            $options['type'],
            $options['type_options'],
            $options['modifiable']
        );

        $builder->addEventSubscriber($listener);
    }
 public function buildForm(FormBuilder $builder, array $options)
 {
     $builder->add('fulltext', 'text');
     $builder->add('text', 'text');
     $builder->add('ident', 'text');
     $builder->add('service', 'text');
     $builder->add('number', 'text');
     $builder->add('sender', 'text');
     $builder->add('code', 'text');
     $builder->add('date', 'text');
     $builder->add('md5', 'text');
     $builder->addEventSubscriber(new RemoveExtraDataListener());
 }
Esempio n. 12
0
    public function buildForm(FormBuilder $builder, array $options)
    {
        if ($options['modifiable'] && $options['prototype']) {
            $builder->add('$$name$$', $options['type'], array(
                'property_path' => false,
                'required' => false,
            ));
        }

        $listener = new ResizeFormListener($builder->getFormFactory(),
                $options['type'], $options['modifiable']);

        $builder->addEventSubscriber($listener);
    }
 /**
  * {@inheritdoc}
  */
 public function buildForm(FormBuilder $builder, array $options)
 {
     $builder->add('address', 'field');
     foreach (array('latitude', 'longitude', 'locality', 'country') as $field) {
         $option = $options[$field];
         if (isset($option['enabled']) && !empty($option['enabled'])) {
             $type = 'field';
             if (isset($option['hidden']) && !empty($option['hidden'])) {
                 $type = 'hidden';
             }
             $builder->add($field, $type);
         }
     }
     $builder->addEventSubscriber(new GeolocationListener())->setAttribute('map', $options['map']);
 }
Esempio n. 14
0
 /**
  * {@inheritdoc}
  */
 public function buildForm(FormBuilder $builder, array $options)
 {
     if (null === $options['property_path']) {
         $options['property_path'] = $builder->getName();
     }
     if (false === $options['property_path'] || '' === $options['property_path']) {
         $options['property_path'] = null;
     } else {
         $options['property_path'] = new PropertyPath($options['property_path']);
     }
     if (!is_array($options['attr'])) {
         throw new FormException('The "attr" option must be "array".');
     }
     $builder->setRequired($options['required'])->setDisabled($options['disabled'])->setErrorBubbling($options['error_bubbling'])->setEmptyData($options['empty_data'])->setAttribute('read_only', $options['read_only'])->setAttribute('by_reference', $options['by_reference'])->setAttribute('property_path', $options['property_path'])->setAttribute('error_mapping', $options['error_mapping'])->setAttribute('max_length', $options['max_length'])->setAttribute('pattern', $options['pattern'])->setAttribute('label', $options['label'] ?: $this->humanize($builder->getName()))->setAttribute('attr', $options['attr'] ?: array())->setAttribute('invalid_message', $options['invalid_message'])->setAttribute('invalid_message_parameters', $options['invalid_message_parameters'])->setAttribute('translation_domain', $options['translation_domain'])->setAttribute('virtual', $options['virtual'])->setData($options['data'])->setDataMapper(new PropertyPathMapper($options['data_class']))->addEventSubscriber(new ValidationListener());
     if ($options['trim']) {
         $builder->addEventSubscriber(new TrimListener());
     }
 }
 public function buildForm(FormBuilder $builder, array $options)
 {
     $builder->add('id', 'hidden');
     $builder->add('amount', 'hidden');
     $builder->add('description', 'hidden');
     $builder->add('url', 'hidden');
     $builder->add('urlc', 'hidden');
     $builder->add('type', 'hidden');
     $builder->add('buttontext', 'hidden');
     $builder->add('control', 'hidden');
     $builder->add('firstname', 'hidden');
     $builder->add('lastname', 'hidden');
     $builder->add('email', 'hidden');
     $builder->add('street', 'hidden');
     $builder->add('streetn1', 'hidden');
     $builder->add('streetn2', 'hidden');
     $builder->add('city', 'hidden');
     $builder->add('code', 'hidden');
     $builder->addEventSubscriber(new RemoveExtraDataListener());
 }
 public function buildForm(FormBuilder $builder, array $options)
 {
     $builder->add('id', 'text');
     $builder->add('status', 'text');
     $builder->add('control', 'text');
     $builder->add('t_id', 'text');
     $builder->add('amount', 'text');
     $builder->add('orginal_amount', 'text');
     $builder->add('email', 'text');
     $builder->add('service', 'text');
     $builder->add('code', 'text');
     $builder->add('username', 'text');
     $builder->add('password', 'text');
     $builder->add('t_status', 'text');
     $builder->add('description', 'text');
     $builder->add('md5', 'text');
     $builder->add('p_info', 'text');
     $builder->add('p_email', 'text');
     $builder->add('t_date', 'text');
     $builder->addEventSubscriber(new RemoveExtraDataListener());
 }
Esempio n. 17
0
 public function buildForm(FormBuilder $builder, array $options)
 {
     $builder->add('category', 'entity', array('label' => 'Tipo de Obra:', 'empty_value' => '', 'required' => true, 'class' => 'ProjectBundle:ProjectCategory', 'query_builder' => function (ProjectRepository $repository) {
         return $repository->createQueryBuilder('ProjectBundle:ProjectCategory')->where('ProjectBundle:ProjectCategory.enabled = :enabled')->setParameter('enabled', true)->orderBy('ProjectBundle:ProjectCategory.name', 'ASC');
     }))->add('title', null, array('label' => 'Nombre del proyecto:'))->add('image', 'hidden', array('label' => 'Imagen del proyecto:', 'error_bubbling' => false))->add('resume', 'textarea', array('label' => 'Descripción resumida del proyecto:', 'max_length' => 150))->add('description', null, array('label' => 'Descripción detallada del proyecto:', 'attr' => array('class' => 'mceEditor'), 'required' => false))->add('vurl', null, array('label' => 'Enlace vídeo:'))->add('aurl', null, array('label' => 'mp3 en Soundcloud (opcional):', 'required' => false))->add('amount', 'text', array('label' => 'Cantidad a recaudar:'))->add('days', 'text', array('label' => 'Días para recaudar fondos:'))->add('rewards', 'collection', array('type' => new RewardType(), 'allow_add' => true, 'allow_delete' => true, 'by_reference' => false, 'prototype' => true));
     /*           ->add('terms', 'checkbox', array('property_path' => false,
                                             ));
     */
     $listener = new addAdminFieldsSubscriber($builder->getFormFactory());
     $builder->addEventSubscriber($listener);
     /*        if ($builder->has('terms')) {
                 $builder->addValidator(new CallbackValidator(
                     function (FormInterface $form){
                         $terms = $form->get('terms');
                         if (!$terms->getData()) {
                             $terms->addError(new FormError('Debes aceptar los Términos de uso.'));
                         }
                     }
                 ));
             }*/
 }
Esempio n. 18
0
 public function buildForm(FormBuilder $builder, array $options)
 {
     $subscriber = new EntityNameFieldSubscriber($builder->getFormFactory());
     $builder->addEventSubscriber($subscriber);
     $builder->add('fieldName', 'text', array('attr' => array('style' => 'width:120px;margin:0px;'), 'required' => true))->add('fieldType', 'choice', array('attr' => array('style' => 'width:120px;margin:0px;', 'class' => 'typeClass'), 'choices' => Field::getFieldTypes(), 'required' => true))->add('fragment', 'choice', array('attr' => array('style' => 'width:120px;margin:0px;', 'class' => 'fragmentClass'), 'choices' => Field::getFragmentTypes(), 'multiple' => false, 'required' => false, 'empty_data' => null))->add('length', 'number', array('attr' => array('style' => 'width:30px;margin:0px;'), 'required' => false))->add('search', 'checkbox', array('attr' => array('style' => 'margin:0px;'), 'required' => false))->add('required', 'checkbox', array('attr' => array('style' => 'margin:0px;'), 'required' => false))->add('bundleName', 'choice', array('attr' => array('style' => 'width:120px;margin:0px;', 'class' => 'bundleClass'), 'choices' => $this->bundles, 'required' => false))->add('entityName', 'choice', array('attr' => array('style' => 'width:120px;margin:0px;', 'class' => 'entityClass'), 'required' => false))->add('relationType', 'choice', array('attr' => array('style' => 'width:100px;margin:0px;', 'class' => 'relationClass'), 'choices' => Field::getRelationTypes(), 'multiple' => false, 'required' => false, 'empty_data' => null))->add('propertyName', 'choice', array('attr' => array('style' => 'width:120px;margin:0px;', 'class' => 'propertyClass'), 'required' => false))->add('collectionItem', 'textarea', array('attr' => array('style' => 'width:300px;margin:0px;display:none;'), 'required' => false))->add('id', 'hidden', array('attr' => array('style' => 'width:30px;margin:0px'), 'property_path' => false));
 }
 public function buildForm(FormBuilder $builder, array $options)
 {
     $builder->add('body');
     $builder->add('subject');
     $builder->addEventSubscriber(new RemoveExtraDataListener());
 }
Esempio n. 20
0
 public function buildForm(FormBuilder $builder, array $options)
 {
     if ($options['multiple']) {
         $builder->addEventSubscriber(new MergeDoctrineCollectionListener())->prependClientTransformer(new CollectionToArrayTransformer());
     }
 }
Esempio n. 21
0
 /**
  * {@inheritdoc}
  */
 public function buildForm(FormBuilder $builder, array $options)
 {
     $builder->addEventSubscriber(new FixUrlProtocolListener($options['default_protocol']));
 }