src/DcSiteBundle/Form/SendQuestionType.php line 12

Open in your IDE?
  1. <?php
  2. namespace DcSiteBundle\Form;
  3. use CoreBundle\Form\CoreFormsType;
  4. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  5. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  6. use Symfony\Component\Form\FormBuilderInterface;
  7. use Symfony\Component\OptionsResolver\OptionsResolver;
  8. use Symfony\Contracts\Translation\TranslatorInterface;
  9. class  SendQuestionType extends CoreFormsType
  10. {
  11.     const SALE_BUY_TYPE 1;
  12.     const TO_SERVICE_TYPE 2;
  13.     const ACCESSORIES_EQUIPMENT_TYPE 3;
  14.     const FINANCE_TYPE 4;
  15.     const OTHER_QUESTIONS_TYPE 5;
  16.     const DEALER_BECOME_TYPE 6;
  17.     const NOTIFY_ABOUT_PRICE_TYPE 7;
  18.     const QUESTIONS_ABOUT_BUYING_CAR 8;
  19.     const DAY_RIDE 9;
  20.     const TOURS 10;
  21.     const ROLLING 11;
  22.     const SALE_BUY_TYPE_BOAT 12;
  23.     const QUESTIONS_ABOUT_BUYING_BOAT 13;
  24.     /**
  25.      * @return string[]
  26.      */
  27.     public static function getTypes()
  28.     {
  29.         return [
  30.             self::SALE_BUY_TYPE => 'Покупка авто',
  31.             self::SALE_BUY_TYPE_BOAT => 'Покупка човна',
  32.             self::TO_SERVICE_TYPE => 'Сервіс',
  33.             self::ACCESSORIES_EQUIPMENT_TYPE =>'Аксесуари та додаткове обладнання',
  34.             self::FINANCE_TYPE => 'Партнерська пропозиція',
  35.             self::OTHER_QUESTIONS_TYPE => 'Інші питання',
  36.             self::DEALER_BECOME_TYPE => 'Стати дилером',
  37.             self::NOTIFY_ABOUT_PRICE_TYPE => 'Повідомити про зміну ціни',
  38.             self::QUESTIONS_ABOUT_BUYING_CAR => 'Питання щодо викупу авто',
  39.             self::QUESTIONS_ABOUT_BUYING_BOAT => 'Питання щодо викупу човна',
  40.             self::DAY_RIDE => 'Запис на Day Ride',
  41.             self::TOURS => 'Запис на тур',
  42.             self::ROLLING => 'Прокат',
  43.         ];
  44.     }
  45.     /**
  46.      * @param $type
  47.      * @return string
  48.      */
  49.     public static function getTitle($type)
  50.     {
  51.         return self::getTypes()[$type];
  52.     }
  53.     /**
  54.      * @param FormBuilderInterface $builder
  55.      * @param array $options
  56.      * @return int|void
  57.      */
  58.     public function buildForm(FormBuilderInterface $builder, array $options)
  59.     {
  60.         parent::buildForm($builder$options);
  61.         /** @var TranslatorInterface $Translator */
  62.         $Translator $options['translator'];
  63.         $select_dealer $options['select_dealer'] ?: [];
  64.         $default_question $options['default_question'] ?: null;
  65.         $builder->add('select_subject_question'ChoiceType::class, [
  66.             'label' => false,
  67.             'required' => true,
  68.             'choices' => array_flip(self::getTypes()),
  69.             'mapped' => false,
  70.             'data' => $default_question,
  71.         ]);
  72.         $builder->add('select_dealer'ChoiceType::class, [
  73.             'label' => false,
  74.             'required' => false,
  75.             'choices' => array_flip($select_dealer),
  76.             'attr' => [
  77.                 'placeholder' => $Translator->trans('form.dealer_choose', [], 'dc_base'),
  78.             ],
  79.             'mapped' => false,
  80.         ]);
  81.         $builder->add('comment'TextareaType::class, [
  82.             'label' => false,
  83.             'required' => false,
  84.             'attr' => [
  85.                 'placeholder' => $Translator->trans('form.comment', [], 'dc_base'),
  86.             ],
  87.             'mapped' => false,
  88.         ]);
  89.     }
  90.     public function configureOptions(OptionsResolver $resolver)
  91.     {
  92.         parent::configureOptions($resolver);
  93.         $resolver
  94.             ->setDefined('select_dealer')
  95.             ->setDefined('default_question')
  96.             ->setDefault('captcha_type''sendQuestionType');
  97.     }
  98. }