<?php
namespace DcSiteBundle\Form;
use CoreBundle\Form\CoreFormsType;
use DcSiteBundle\Model\Tires;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Contracts\Translation\TranslatorInterface;
class TiresConfiguratorType extends CoreFormsType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
parent::buildForm($builder, $options);
/** @var TranslatorInterface $translator */
$translator = $options['translator'];
$builder
->add('tiresType', ChoiceType::class, [
'mapped' => false,
'required' => false,
'expanded' => true,
'choices' => array_flip(Tires::getTireType(null, $translator->getLocale())),
'data' => 1,
])
->add('vin', TextType::class, [
'label' => false,
'mapped' => false,
'required' => false,
'attr' => [
'placeholder' => $translator->trans('form.vin_your_car', [], 'dc_base'),
'class' => 'form-control',
]
])
->add('diameter', ChoiceType::class, [
'mapped' => false,
'required' => false,
'label' => false,
'placeholder' => $translator->trans('configurator.tires.diameter', [], 'dc_base'),
'choices' => Tires::getDiameter(),
'attr' => [
'class' => 'form-control',
],
'choice_attr' => function($choice, $key, $value) {
if ($key == 17 || $key == 19 || $key == 20) {
return ['style' => 'font-weight: bold'];
}
return [];
},
'preferred_choices' => ['17', '19', '20'],
])
->add('width', ChoiceType::class, [
'mapped' => false,
'required' => false,
'label' => false,
'placeholder' => $translator->trans('configurator.tires.width', [], 'dc_base'),
'choices' => Tires::getWidth(),
'attr' => [
'class' => 'form-control',
],
'choice_attr' => function($choice, $key, $value) {
if ($key == 225 || $key == 235) {
return ['style' => 'font-weight: bold'];
}
return [];
},
'preferred_choices' => ['225', '235'],
])
->add('profile', ChoiceType::class, [
'mapped' => false,
'required' => false,
'label' => false,
'placeholder' => $translator->trans('configurator.tires.profile_height', [], 'dc_base'),
'choices' => Tires::getProfileHeight(),
'attr' => [
'class' => 'form-control',
],
])
;
}
public function configureOptions(OptionsResolver $resolver)
{
parent::configureOptions($resolver);
$resolver->setDefined('dealer')
->setDefault('captcha_type','buy_spare_parts_form');
}
}