src/AdminBundle/Admin/SubAutoSite/AboutCompanyAdmin.php line 13

Open in your IDE?
  1. <?php
  2. namespace AdminBundle\Admin\SubAutoSite;
  3. use Sonata\AdminBundle\Datagrid\ProxyQueryInterface;
  4. use FOS\CKEditorBundle\Form\Type\CKEditorType;
  5. use Sonata\AdminBundle\Datagrid\ListMapper;
  6. use Sonata\AdminBundle\Form\FormMapper;
  7. use Sonata\AdminBundle\Route\RouteCollectionInterface;
  8. use Sonata\MediaBundle\Form\Type\MediaType;
  9. use Symfony\Component\Security\Core\Exception\AccessDeniedException;
  10. class AboutCompanyAdmin extends BaseImporterAdmin
  11. {
  12.     protected $baseRouteName 'admin_vendor_adminbundle_importer-about';
  13.     protected $baseRoutePattern 'importer/about';
  14.     /**
  15.      * @param RouteCollectionInterface $collection
  16.      */
  17.     protected function configureRoutes(RouteCollectionInterface $collection): void
  18.     {
  19.         $collection->remove('view');
  20.         $collection->remove('delete');
  21.         $collection->remove('create');
  22.     }
  23.     public function toString($dealer): string
  24.     {
  25.         return $dealer->getNameRu() . ' (' $dealer->getDomain() . ')';
  26.     }
  27.     /**
  28.      * @param FormMapper $formMapper
  29.      */
  30.     protected function configureFormFields(FormMapper $formMapper): void
  31.     {
  32.         $formMapper
  33.             ->with('Описание (RUS)', ['class' => 'col-md-6'])
  34.                 ->add('about_ru'CKEditorType::class, [
  35.                     'config_name' => 'default',
  36.                     'required' => false,
  37.                     'label' => 'О компании (RUS)'
  38.                 ])
  39.             ->end()
  40.             ->with('Описание (UA)', ['class' => 'col-md-6'])
  41.                 ->add('about_ua'CKEditorType::class, [
  42.                     'config_name' => 'default',
  43.                     'required' => false,
  44.                     'label' => 'О компании (UA)'
  45.                 ])
  46.             ->end()
  47.             ->with('Фото', ['class' => 'col-md-6'])
  48.                 ->add('image'MediaType::class, [
  49.                     'provider' => 'sonata.media.provider.image',
  50.                     'context' => 'dc_site',
  51.                     'label' => 'Фото'
  52.                 ])
  53.             ->end()
  54.         ->end();
  55.     }
  56.     /**
  57.      * @param string $context
  58.      * @return ProxyQueryInterface
  59.      */
  60.     public function configureQuery($context 'list'): ProxyQueryInterface
  61.     {
  62.         $user $this->security->getUser();
  63.         $query parent::configureQuery($context);
  64.         $dealer $user->getSubDealer();
  65.         if (!$dealer) {
  66.             throw new AccessDeniedException();
  67.         }
  68.         $query->andWhere(
  69.             $query->expr()->eq($query->getRootAliases()[0] . '.id'':id')
  70.         );
  71.         $query->setParameter('id'$dealer->getId());
  72.         return $query;
  73.     }
  74.     /**
  75.      * @param ListMapper $listMapper
  76.      */
  77.     protected function configureListFields(ListMapper $listMapper): void
  78.     {
  79.         $listMapper->addIdentifier('id')
  80.             ->add('name'null, ['label' => 'Название'])
  81.             ->add('domain'null, ['label' => 'Домен'])
  82.             ->add('address_ru'null, ['label' => 'Адрес'])
  83.             ->add('_action''actions', [
  84.                 'label' => 'Действия',
  85.                 'actions' => [
  86.                     'edit' => [],
  87.                 ]
  88.             ]);
  89.     }
  90. }