src/Aqarmap/Bundle/DiscussionBundle/Form/DiscussionType.php line 13

Open in your IDE?
  1. <?php
  2. namespace Aqarmap\Bundle\DiscussionBundle\Form;
  3. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  4. use Symfony\Component\Form\AbstractType;
  5. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  6. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  7. use Symfony\Component\Form\FormBuilderInterface;
  8. use Symfony\Component\OptionsResolver\OptionsResolver;
  9. use Symfony\Contracts\Translation\TranslatorInterface;
  10. class DiscussionType extends AbstractType
  11. {
  12.     private $translator;
  13.     public function __construct(TranslatorInterface $translator)
  14.     {
  15.         $this->translator $translator;
  16.     }
  17.     public function buildForm(FormBuilderInterface $builder, array $options): void
  18.     {
  19.         $builder
  20.             ->add('content'TextareaType::class, [
  21.                 'attr' => [
  22.                     'class' => 'discussion-textarea',
  23.                     'oninvalid' => "setCustomValidity(\"{$this->translator->trans('neighborhoods.discussion.add_question_validations.question_message')}\")",
  24.                     'oninput' => 'this.setCustomValidity("")',
  25.                 ],
  26.                 'required' => true,
  27.             ])
  28.             ->add('location'ChoiceType::class, [
  29.                 'required' => true,
  30.                 'placeholder' => 'layout.locations',
  31.                 'attr' => [
  32.                     'oninvalid' => "setCustomValidity(\"{$this->translator->trans('neighborhoods.discussion.add_question_validations.location_message')}\")",
  33.                     'oninput' => 'this.setCustomValidity("")',
  34.                 ],
  35.                 'choices' => $options['selectedLocation'],
  36.                 'data' => $options['selectedLocationId'],
  37.             ])
  38.             ->add('category'EntityType::class, [
  39.                 'required' => true,
  40.                 'class' => 'AqarmapDiscussionBundle:Category',
  41.                 'placeholder' => 'neighborhoods.discussion.placeholder.category',
  42.                 'attr' => [
  43.                     'oninvalid' => "setCustomValidity(\"{$this->translator->trans('neighborhoods.discussion.add_question_validations.category_message')}\")",
  44.                     'oninput' => 'this.setCustomValidity("")',
  45.                 ],
  46.             ]);
  47.     }
  48.     public function configureOptions(OptionsResolver $resolver): void
  49.     {
  50.         $resolver->setDefaults([
  51.             'data_class' => 'Aqarmap\Bundle\DiscussionBundle\Entity\Discussion',
  52.             'flatLocations' => [],
  53.             'allow_extra_fields' => true,
  54.             'selectedLocation' => [],
  55.             'selectedLocationId' => null,
  56.         ]);
  57.     }
  58.     public function getBlockPrefix(): string
  59.     {
  60.         return '';
  61.     }
  62. }