app/Plugin/TeikiOrder42/Form/Type/YearMonthType.php line 13

Open in your IDE?
  1. <?php
  2. namespace Plugin\TeikiOrder42\Form\Type;
  3. use Symfony\Component\Form\AbstractType;
  4. use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToArrayTransformer;
  5. use Symfony\Component\Form\Extension\Core\Type\DateType;
  6. use Symfony\Component\Form\FormBuilderInterface;
  7. use Symfony\Component\Form\FormInterface;
  8. use Symfony\Component\Form\FormView;
  9. use Symfony\Component\Form\ReversedTransformer;
  10. use Symfony\Component\OptionsResolver\OptionsResolver;
  11. class YearMonthType extends AbstractType
  12. {
  13.     /**
  14.      * {@inheritdoc}
  15.      */
  16.     public function getParent()
  17.     {
  18.         return DateType::class;
  19.     }
  20.     /**
  21.      * {@inheritdoc}
  22.      */
  23.     public function buildForm(FormBuilderInterface $builder, array $options)
  24.     {
  25.         if ($options['widget'] === 'choice') {
  26.             $builder
  27.                 ->resetViewTransformers()
  28.                 ->addViewTransformer(new DateTimeToArrayTransformer(
  29.                     $options['model_timezone'], $options['view_timezone'], array('year''month')
  30.                 ))
  31.             ;
  32.         }
  33.         if ($options['input'] === 'array') {
  34.             $builder
  35.                 ->resetModelTransformers()
  36.                 ->addModelTransformer(new ReversedTransformer(
  37.                     new DateTimeToArrayTransformer($options['model_timezone'], $options['model_timezone'], array('year''month'))
  38.                 ))
  39.             ;
  40.         }
  41.     }
  42.     /**
  43.      * {@inheritdoc}
  44.      */
  45.     public function configureOptions(OptionsResolver $resolver)
  46.     {
  47.         $resolver->setDefaults([
  48.             'widget' => 'choice',
  49.         ]);
  50.     }
  51.     /**
  52.      * {@inheritdoc}
  53.      */
  54.      public function finishView(FormView $viewFormInterface $form, array $options)
  55.      {
  56.          if ($options['widget'] === 'choice') {
  57.              $view['day']->vars['attr']['style'] = 'display:none;';
  58.          }
  59.      }
  60.     /**
  61.      * {@inheritdoc}
  62.      */
  63.     public function getBlockPrefix()
  64.     {
  65.         return 'year_month';
  66.     }
  67. }