src/AdminBundle/Admin/Vidi/BlogAdmin.php line 14

Open in your IDE?
  1. <?php
  2. namespace AdminBundle\Admin\Vidi;
  3. use AdminBundle\Admin\BaseAdmin;
  4. use FOS\CKEditorBundle\Form\Type\CKEditorType;
  5. use PortalBundle\Entity\BlogCategory;
  6. use Sonata\AdminBundle\Datagrid\ListMapper;
  7. use Sonata\AdminBundle\Form\FormMapper;
  8. use Sonata\MediaBundle\Form\Type\MediaType;
  9. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  10. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  11. class BlogAdmin extends BaseAdmin
  12. {
  13.     public function prePersist($object): void
  14.     {
  15.         $url $object->getUrl() ?: $object->getTitleUa();
  16.         $object->setUrl($this->slugify($url));
  17.         parent::prePersist($object);
  18.     }
  19.     public function preUpdate($object): void
  20.     {
  21.         $url $object->getUrl() ?: $object->getTitleUa();
  22.         $object->setUrl($this->slugify($url));;
  23.         parent::preUpdate($object);
  24.     }
  25.     protected function configureListFields(ListMapper $list): void
  26.     {
  27.         $list->addIdentifier('id')
  28.             ->add('title_ua'null, ['label' => 'Заголовок'])
  29.             ->add('author'null, ['label' => 'Автор'])
  30.             ->add('created'null, ['label' => 'Дата створення'])
  31.             ->add('state','choice', ['label' => 'Відображення',
  32.                 'editable' => true,
  33.                 'choices' => [
  34.                     => 'Так',
  35.                     => 'Ні',
  36.                 ]])
  37.             ->add('_action''actions', [
  38.                 'label' => 'Действия',
  39.                 'actions' => [
  40.                     'edit' => []
  41.                 ]
  42.             ]);
  43.     }
  44.     protected function configureFormFields(FormMapper $form): void
  45.     {
  46.         $form
  47.             ->tab('Основна інформація')
  48.                 ->with('', ['class' => 'col-lg-6'])
  49.                     ->add('author'null, ['label' => 'Автор'])
  50.                     ->add('categories'EntityType::class, [
  51.                         'class' => BlogCategory::class,
  52.                         'label' => 'Категорії',
  53.                         'multiple' => true,
  54.                         'required' => false,
  55.                     ])
  56.                     ->add('url'null, ['label' => 'URL''required' => false])
  57.                     ->add('state'CheckboxType::class, ['label' => 'Відображати''required' => false])
  58.                 ->end()
  59.                 ->with('Медіа', ['class' => 'col-lg-6'])
  60.                     ->add('image_preview'MediaType::class, [
  61.                         'label' => 'Превью',
  62.                         'provider' => 'sonata.media.provider.image',
  63.                         'context'  => 'dc_site'
  64.                     ])
  65.                 ->add('image'MediaType::class, [
  66.                     'label' => 'Зображення',
  67.                     'provider' => 'sonata.media.provider.image',
  68.                     'context'  => 'dc_site'
  69.                 ])
  70.                 ->end()
  71.             ->end()
  72.         ->tab('Контент (ua)')
  73.             ->with('', ['class' => 'col-md-10'])
  74.                 ->add('title_ua'null, ['label' => 'Заголовок'])
  75.                 ->add('content_ua'CKEditorType::class, ['label' => 'Контент''required' => false])
  76.             ->end()
  77.         ->end()
  78.         ->tab('Контент (ru)')
  79.             ->with('', ['class' => 'col-md-10'])
  80.                 ->add('title_ru'null, ['label' => 'Заголовок'])
  81.                 ->add('content_ru'CKEditorType::class, ['label' => 'Контент''required' => false])
  82.             ->end()
  83.         ->end();
  84.     }
  85. }