src/AdminBundle/Admin/Founders/GalleryPhotoAdmin.php line 12

Open in your IDE?
  1. <?php
  2. namespace AdminBundle\Admin\Founders;
  3. use AdminBundle\Admin\BaseAdmin;
  4. use Sonata\AdminBundle\Datagrid\ListMapper;
  5. use Sonata\AdminBundle\Form\FormMapper;
  6. use Sonata\MediaBundle\Form\Type\MediaType;
  7. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  8. use Symfony\Component\Form\Extension\Core\Type\NumberType;
  9. class GalleryPhotoAdmin extends BaseAdmin
  10. {
  11.     public function prePersist($object): void
  12.     {
  13.         $object->setState((int) $object->getState());
  14.         parent::prePersist($object);
  15.     }
  16.     public function preUpdate($object): void
  17.     {
  18.         $object->setState((int) $object->getState());
  19.         parent::preUpdate($object);
  20.     }
  21.     protected function configureListFields(ListMapper $list): void
  22.     {
  23.         $list->addIdentifier('id')
  24.             ->add('title'null, ['label' => 'Заголовок'])
  25.             ->add('position'null, ['label' => 'Позиция'])
  26.             ->add('state','choice', ['label' => 'Відображати на сайті''editable' => true'choices' => [
  27.                 => 'Так',
  28.                 => 'Ні',
  29.             ]])
  30.             ->add('_action''actions', [
  31.                 'label' => 'Дії',
  32.                 'actions' => [
  33.                     'edit' => []
  34.                 ]
  35.             ]);
  36.     }
  37.     protected function configureFormFields(FormMapper $form): void
  38.     {
  39.         $form
  40.             ->add('title'null, ['label' => 'Заголовок''required' => true])
  41.             ->add('image_preview'MediaType::class, [
  42.                 'label' => 'Попередній перегляд',
  43.                 'required' => true,
  44.                 'provider' => 'sonata.media.provider.image',
  45.                 'context'  => 'dc_site'
  46.             ])
  47.             ->add('image'MediaType::class, [
  48.                 'label' => 'Зображення',
  49.                 'required' => true,
  50.                 'provider' => 'sonata.media.provider.image',
  51.                 'context'  => 'dc_site'
  52.             ])
  53.             ->add('state'CheckboxType::class, ['label' => 'Відображати на сайті''required' => false])
  54.             ->add('position'NumberType::class, [
  55.                 'label' => 'Порядок виводу',
  56.                 'required' => true,
  57.             ])
  58.             ->end();
  59.     }
  60. }