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.

46 satır
1.5KB

  1. <?php
  2. namespace Lc\SovBundle\Form\Setting;
  3. use Lc\SovBundle\Model\Setting\SiteSettingInterface;
  4. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  5. use Symfony\Component\Form\FormBuilderInterface;
  6. use Symfony\Component\Form\FormEvent;
  7. use Symfony\Component\Form\FormEvents;
  8. use Symfony\Component\OptionsResolver\OptionsResolver;
  9. class SettingType extends BaseSettingType
  10. {
  11. public function buildForm(FormBuilderInterface $builder, array $options)
  12. {
  13. $settingDefinition = $this->settingDefinition;
  14. $builder->addEventListener(
  15. FormEvents::PRE_SET_DATA,
  16. function (FormEvent $event) use ($settingDefinition) {
  17. $form = $event->getForm();
  18. $settingEntity = $event->getData();
  19. if ($settingEntity) {
  20. $form->add('name', HiddenType::class);
  21. $settingName = $settingEntity->getName();
  22. $label = 'setting_definition.global.settings.' . $settingName;
  23. $this->buildFormSetting($label, $form, $settingDefinition, $settingEntity);
  24. }
  25. }
  26. );
  27. }
  28. public function configureOptions(OptionsResolver $resolver)
  29. {
  30. $resolver->setDefaults(
  31. [
  32. 'label' => false,
  33. 'data_class' => $this->em->getEntityName(SiteSettingInterface::class),
  34. ]
  35. );
  36. }
  37. }