diff --git a/Form/CustomFieldType.php b/Form/CustomFieldType.php index 1d3594718..b8ec94c4a 100644 --- a/Form/CustomFieldType.php +++ b/Form/CustomFieldType.php @@ -5,10 +5,15 @@ namespace Chill\CustomFieldsBundle\Form; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; -use Chill\CustomFieldsBundle\Service\CustomFieldProvider; +use Symfony\Component\Form\Extension\Core\Type\CheckboxType; +use Symfony\Component\Form\Extension\Core\Type\HiddenType; +use Symfony\Component\Form\Extension\Core\Type\EntityType; +use Symfony\Component\Form\Extension\Core\Type\TextType; +use Symfony\Component\Form\Extension\Core\Type\NumberType; use Symfony\Component\Form\FormEvent; use Symfony\Component\Form\FormEvents; use Doctrine\Common\Persistence\ObjectManager; +use Chill\CustomFieldsBundle\Service\CustomFieldProvider; use Chill\CustomFieldsBundle\Form\DataTransformer\CustomFieldsGroupToIdTransformer; @@ -19,15 +24,15 @@ class CustomFieldType extends AbstractType * @var CustomFieldProvider */ private $customFieldProvider; - + private $culture = 'fr'; - + /** * @var ObjectManager */ private $om; - - + + public function __construct(CustomFieldProvider $compiler, ObjectManager $om) { @@ -40,39 +45,39 @@ class CustomFieldType extends AbstractType */ public function buildForm(FormBuilderInterface $builder, array $options) { - + $customFieldsList = array(); - + foreach ($this->customFieldProvider->getAllFields() as $key => $field) { $customFieldsList[$key] = $field->getName(); } - + $builder ->add('name', 'translatable_string') - ->add('active', 'checkbox', array('required' => false)); - + ->add('active', CheckboxType::class, array('required' => false)); + if ($options['group_widget'] === 'entity') { - $builder->add('customFieldsGroup', 'entity', array( + $builder->add('customFieldsGroup', EntityType::class, array( 'class' => 'ChillCustomFieldsBundle:CustomFieldsGroup', 'property' => 'name['.$this->culture.']' )); } elseif ($options['group_widget'] === 'hidden') { - $builder->add('customFieldsGroup', 'hidden'); + $builder->add('customFieldsGroup', HiddenType::class); $builder->get('customFieldsGroup') ->addViewTransformer(new CustomFieldsGroupToIdTransformer($this->om)); } else { throw new \LogicException('The value of group_widget is not handled'); } - + $builder - ->add('ordering', 'number') - ->add('required', 'checkbox', array( + ->add('ordering', NumberType::class) + ->add('required', CheckboxType::class, array( 'required' => false, //'expanded' => TRUE, 'label' => 'Required field' )) - ->add('type', 'hidden', array('data' => $options['type'])) - ->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) + ->add('type', HiddenType::class, array('data' => $options['type'])) + ->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) { $customField = $event->getData(); $form = $event->getForm(); @@ -81,11 +86,11 @@ class CustomFieldType extends AbstractType // If no data is passed to the form, the data is "null". // This should be considered a new "customField" if (!$customField || null === $customField->getId()) { - $form->add('slug', 'text'); + $form->add('slug', TextType::class); } }); - - + + $builder->add( $this->customFieldProvider ->getCustomFieldByType($options['type']) @@ -96,7 +101,7 @@ class CustomFieldType extends AbstractType ) ); } - + /** * @param OptionsResolverInterface $resolver */ @@ -104,8 +109,8 @@ class CustomFieldType extends AbstractType { $resolver->setDefaults(array( 'data_class' => 'Chill\CustomFieldsBundle\Entity\CustomField' - )); - + )); + $resolver->setRequired(array('type', 'group_widget')) ->addAllowedValues(array( 'type' => array_keys($this->customFieldProvider->getAllFields()),