src/AdminBundle/Admin/DCAutoSite/AccessoriesCategoryAdmin.php line 17

Open in your IDE?
  1. <?php
  2. namespace AdminBundle\Admin\DCAutoSite;
  3. use AdminBundle\Admin\BaseAdmin;
  4. use AdminBundle\Form\Type\ContentType;
  5. use DcSiteBundle\Entity\AccessoriesCategory;
  6. use DcSiteBundle\Entity\AccessoriesCategoryContent;
  7. use Sonata\AdminBundle\Form\Type\ModelType;
  8. use Sonata\AdminBundle\Form\FormMapper;
  9. use Sonata\AdminBundle\Datagrid\ListMapper;
  10. use Sonata\AdminBundle\Route\RouteCollectionInterface;
  11. use Sonata\MediaBundle\Form\Type\MediaType;
  12. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  13. class AccessoriesCategoryAdmin extends BaseAdmin
  14. {
  15.     /**
  16.      * @param RouteCollectionInterface $collection
  17.      */
  18.     protected function configureRoutes(RouteCollectionInterface $collection): void
  19.     {
  20.         $collection->remove('view');
  21.         $collection->remove('delete');
  22.     }
  23.     /**
  24.      * @param AccessoriesCategory $object
  25.      */
  26.     public function prePersist($object): void
  27.     {
  28.         /** @var AccessoriesCategoryContent $content */
  29.         foreach ($object->getContent() as $content) {
  30.             $content->setCategory($object);
  31.         }
  32.         $this->preSave($object);
  33.         $object->setState(1);
  34.     }
  35.     public function preUpdate($object): void
  36.     {
  37.         parent::preUpdate($object);
  38.     }
  39.     private function preSave($object) {
  40.     }
  41.     /**
  42.      * @param FormMapper $formMapper
  43.      */
  44.     protected function configureFormFields(FormMapper $formMapper): void
  45.     {
  46.         $User $this->security->getUser();
  47.         $queryBuilder $this->getModelManager()
  48.             ->getEntityManager(AccessoriesCategory::class)
  49.             ->createQueryBuilder('ag')
  50.             ->select('ag')
  51.             ->from(AccessoriesCategory::class,'ag')
  52.             ->where('ag.parent_category is null');
  53.         $formMapper
  54.             ->tab('Основная информация NEW')
  55.             ->with('Контент', ['class' => 'col-lg-6'])
  56.             ->add('content'ContentType::class, ['label' => false], [
  57.                 'edit' => 'inline',
  58.                 'sortable' => 'position',
  59.                 'admin_code' => 'admin.dc.accessories_category_content',
  60.             ])
  61.             ->end()
  62.             ->with('Доп. Информация', ['class' => 'col-lg-6'])
  63.             ->add('parent_category'ModelType::class, [
  64.                 'label' => 'Родительская группа',
  65.                 'query' => $queryBuilder,
  66.                 'btn_add' => false,
  67.                 'required' => false,
  68.             ])
  69.             ->add('image'MediaType::class, [
  70.                 'provider' => 'sonata.media.provider.image',
  71.                 'context'  => 'dc_site',
  72.                 'label' => 'Изображение'
  73.             ])
  74.             ->add('url'null, [
  75.                 'label' => 'URL',
  76.                 'required' => true,
  77.             ])
  78.             ->add('state'CheckboxType::class, ['label' => 'Отображать на сайте''required' => false])
  79.             ->add('position'null, ['label' => 'Позиция'])
  80.             ->end()
  81.             ->end()
  82.         ;
  83.     }
  84.     /**
  85.      * @param ListMapper $listMapper
  86.      */
  87.     protected function configureListFields(ListMapper $listMapper): void
  88.     {
  89.         $listMapper->addIdentifier('id')
  90.             ->add('name_category',null, ['label' => 'Группа '])
  91.             ->add('parent_category.name_category',null, ['label' => 'Родительская группа'])
  92.             ->add('position'null, ['label' => 'Позиция'])
  93.             ->add('_action''actions', [
  94.                 'actions' => [
  95.                     'edit' => [],
  96.                 ]
  97.             ]);
  98.     }
  99. }