src/AdminBundle/Admin/SubAutoSite/ContactAdmin.php line 11

Open in your IDE?
  1. <?php
  2. namespace AdminBundle\Admin\SubAutoSite;
  3. use Sonata\AdminBundle\Datagrid\ListMapper;
  4. use Sonata\AdminBundle\Datagrid\ProxyQueryInterface;
  5. use Sonata\AdminBundle\Form\FormMapper;
  6. use Sonata\AdminBundle\Route\RouteCollectionInterface;
  7. use Symfony\Component\Security\Core\Exception\AccessDeniedException;
  8. class ContactAdmin extends BaseImporterAdmin
  9. {
  10.     protected $baseRouteName 'admin_vendor_adminbundle_importer-contacts';
  11.     protected $baseRoutePattern 'importer/contacts';
  12.     /**
  13.      * @param RouteCollectionInterface $collection
  14.      */
  15.     protected function configureRoutes(RouteCollectionInterface $collection): void
  16.     {
  17.         $collection->remove('view');
  18.         $collection->remove('delete');
  19.         $collection->remove('create');
  20.     }
  21.     public function toString($dealer): string
  22.     {
  23.         return $dealer->getNameRu() . ' (' $dealer->getDomain() . ')';
  24.     }
  25.     /**
  26.      * @param FormMapper $formMapper
  27.      */
  28.     protected function configureFormFields(FormMapper $formMapper): void
  29.     {
  30.         $user $this->security->getUser();
  31.         $formMapper
  32.             ->with('Контакты', ['class' => 'col-lg-6'])
  33.             ->add('name_ru'null, ['label' => 'Название RU'])
  34.             ->add('name'null, ['label' => 'Название UA'])
  35.             ->add('city_ua'null, ['label' => 'В городе UA'])
  36.             ->add('city_ru'null, ['label' => 'В городе RU']);
  37.         if ($user->hasRole('ROLE_SUPER_ADMIN')) {
  38.             $formMapper
  39.                 ->add('domain'null, ['label' => 'Домен']);
  40.         }
  41.         $formMapper
  42.             ->add('address_ua'null, ['label' => 'Адресс UA'])
  43.             ->add('address_ru'null, ['label' => 'Адресс RU'])
  44.             ->add('official_address_ru'null, ['label' => 'Адресс официальный RU'])
  45.             ->add('official_address_ua'null, ['label' => 'Адресс официальный UA'])
  46.             ->add('phone'null, ['label' => 'Телефон'])
  47.             ->add('phone_service'null, ['label' => 'Телефон сервиса'])
  48.             ->add('email_sale'null, ['label' => 'Email Отдела продаж'])
  49.             ->add('email_service'null, ['label' => 'Email Отдела Сервиса'])
  50.             ->add('open_time'null, ['label' => 'Время открытия будни'])
  51.             ->add('close_time'null, ['label' => 'Время закрытия будни'])
  52.             ->add('open_time_saturday'null, ['label' => 'Время открытия суббота (пусто если выходной)'])
  53.             ->add('close_time_saturday'null, ['label' => 'Время закрытия суббота (пусто если выходной)'])
  54.             ->add('open_time_sunday'null, ['label' => 'Время открытия воскресенье (пусто если выходной)'])
  55.             ->add('close_time_sunday'null, ['label' => 'Время закрытия воскресенье (пусто если выходной)'])
  56.             ->add('lng'null, ['label' => 'Долгота'])
  57.             ->add('lat'null, ['label' => 'Широта'])
  58.             ->add('link_facebook'null, ['label' => 'Ссылка на facebook'])
  59.             ->add('link_youtube'null, ['label' => 'Ссылка на youtube'])
  60.             ->add('link_instagram'null, ['label' => 'Ссылка на instagram'])
  61.             ->add('gtm_token'null, ['label' => 'Токен для Google Tag Manager'])
  62.             ->end();
  63.     }
  64.     /**
  65.      * @param string $context
  66.      * @return ProxyQueryInterface
  67.      */
  68.     public function configureQuery($context 'list'): ProxyQueryInterface
  69.     {
  70.         $user $this->security->getUser();
  71.         $query parent::configureQuery($context);
  72.         $dealer $user->getSubDealer();
  73.         if (!$dealer) {
  74.             throw new AccessDeniedException();
  75.         }
  76.         $query->andWhere(
  77.             $query->expr()->eq($query->getRootAliases()[0] . '.id'':id')
  78.         );
  79.         $query->setParameter('id'$dealer->getId());
  80.         return $query;
  81.     }
  82.     /**
  83.      * @param ListMapper $listMapper
  84.      */
  85.     protected function configureListFields(ListMapper $listMapper): void
  86.     {
  87.         $listMapper->addIdentifier('id')
  88.             ->add('name'null, ['label' => 'Название'])
  89.             ->add('domain'null, ['label' => 'Домен'])
  90.             ->add('address_ru'null, ['label' => 'Адрес'])
  91.             ->add('_action''actions', [
  92.                 'label' => 'Действия',
  93.                 'actions' => [
  94.                     'edit' => [],
  95.                 ]
  96.             ]);
  97.     }
  98. }