You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

86 satır
2.6KB

  1. <?php
  2. namespace Lc\SovBundle\Form\Type;
  3. use Lc\SovBundle\DataTransformer\FileManagerTypeToDataTransformer;
  4. use Lc\SovBundle\Entity\File\File;
  5. use Lc\SovBundle\IModel\Cms\FileInterface;
  6. use Lc\SovBundle\Manager\EntityManager;
  7. use Symfony\Component\Form\AbstractType;
  8. use Symfony\Component\Form\DataTransformerInterface;
  9. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  10. use Symfony\Component\Form\Extension\Core\Type\NumberType;
  11. use Symfony\Component\Form\Extension\Core\Type\TextType;
  12. use Symfony\Component\Form\FormBuilderInterface;
  13. use Symfony\Component\OptionsResolver\OptionsResolver;
  14. class FileManagerType extends AbstractType implements DataTransformerInterface
  15. {
  16. protected $em;
  17. public function __construct(EntityManager $entityManager){
  18. $this->em = $entityManager;
  19. }
  20. public function buildForm(FormBuilderInterface $builder, array $options)
  21. {
  22. $builder->add('path', HiddenType::class, array(
  23. 'block_prefix' => 'file_manager_image',
  24. 'label' => false
  25. ));
  26. $builder->add('legend', TextType::class, array(
  27. 'block_prefix' => 'file_manager_legend',
  28. 'attr'=> array(
  29. "placeholder"=> 'Légende'
  30. ),
  31. 'label' => false
  32. ));
  33. $builder->add('position', HiddenType::class, array(
  34. 'block_prefix' => 'file_manager_position',
  35. 'empty_data'=> 0,
  36. 'required' => true,
  37. 'attr' => array(
  38. 'class' => 'field-position'
  39. ),
  40. 'label' => false
  41. ));
  42. }
  43. /**
  44. * {@inheritdoc}
  45. */
  46. public function configureOptions(OptionsResolver $resolver)
  47. {
  48. $resolver->setDefaults([
  49. 'data_class' => $this->em->getEntityName(FileInterface::class),
  50. 'compound' => true,
  51. ]);
  52. }
  53. /**
  54. * {@inheritdoc}
  55. */
  56. public function getBlockPrefix()
  57. {
  58. return 'file_manager';
  59. }
  60. /**
  61. * {@inheritdoc}
  62. */
  63. public function transform($data)
  64. {
  65. // Model data should not be transformed
  66. return $data;
  67. }
  68. /**
  69. * {@inheritdoc}
  70. */
  71. public function reverseTransform($data)
  72. {
  73. return null === $data ? '' : $data;
  74. }
  75. }