src/Form/Common/NellappSliderType.php line 12

Open in your IDE?
  1. <?php
  2. namespace App\Form\Common;
  3. use Symfony\Component\Form\AbstractType;
  4. use Symfony\Component\Form\Extension\Core\Type\NumberType;
  5. use Symfony\Component\Form\FormBuilderInterface;
  6. use Symfony\Component\Form\FormInterface;
  7. use Symfony\Component\Form\FormView;
  8. use Symfony\Component\OptionsResolver\OptionsResolver;
  9. class NellappSliderType extends AbstractType
  10. {
  11. public function finishView(FormView $view, FormInterface $form, array $options): void
  12. {
  13. $view->vars['nellapp_slider_config'] = json_encode([
  14. 'min' => $options['min'],
  15. 'max' => $options['max'],
  16. 'step' => $options['step']
  17. ]);
  18. }
  19. public function buildForm(FormBuilderInterface $builder, array $options): void
  20. {
  21. $builder
  22. ->add('min', NumberType::class, [
  23. 'attr' => [
  24. 'data-nellapp-slider-type-min' => true,
  25. 'class' => 'd-none',
  26. ],
  27. 'data' => $options['min'],
  28. 'empty_data' => 0,
  29. ])
  30. ->add('max', NumberType::class, [
  31. 'attr' => [
  32. 'data-nellapp-slider-type-max' => true,
  33. 'class' => 'd-none',
  34. ],
  35. 'data' => $options['max'],
  36. 'empty_data' => $options['max'],
  37. ])
  38. ;
  39. }
  40. public function configureOptions(OptionsResolver $resolver): void
  41. {
  42. $resolver->setDefaults([
  43. ]);
  44. $resolver
  45. ->setRequired(['min', 'max', 'step'])
  46. ->setAllowedTypes('min', 'int')
  47. ->setAllowedTypes('max', 'int')
  48. ->setAllowedTypes('step', 'int')
  49. ;
  50. }
  51. public function getBlockPrefix(): string
  52. {
  53. return 'nellapp_slider_type';
  54. }
  55. }