src/AdminBundle/Admin/DCAutoSite/ActionsAdmin.php line 13

Open in your IDE?
  1. <?php
  2. namespace AdminBundle\Admin\DCAutoSite;
  3. use AdminBundle\Admin\BaseActionPostAdmin;
  4. use CoreBundle\Entity\Post;
  5. use CoreBundle\Services\Seo\AutomaticSeoGenerationAdmin;
  6. use Sonata\AdminBundle\Datagrid\ListMapper;
  7. use Sonata\AdminBundle\Form\FormMapper;
  8. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  9. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  10. class ActionsAdmin extends BaseActionPostAdmin
  11. {
  12.     protected $baseRouteName 'admin_vendor_adminbundle_dc_actionsadmin';
  13.     protected $baseRoutePattern 'dc-post-action';
  14.     protected AutomaticSeoGenerationAdmin $automaticSeoGenerationAdmin;
  15.     public function setExtraServices(AutomaticSeoGenerationAdmin $automaticSeoGenerationAdmin)
  16.     {
  17.         $this->automaticSeoGenerationAdmin $automaticSeoGenerationAdmin;
  18.     }
  19.     /**
  20.      * @param FormMapper $formMapper
  21.      */
  22.     protected function configureFormFields(FormMapper $formMapper): void
  23.     {
  24.         $formMapper
  25.             ->tab('Основная информация')
  26.                 ->with(' ', ['class' => 'col-lg-6 without-box-heder'])
  27.                     ->add('state'CheckboxType::class, ['label' => 'Показывать на сайте''required' => false])
  28.                     ->add('on_portal'CheckboxType::class, ['label' => 'Показывать на портале''required' => false])
  29.                     ->add('action_chapter'ChoiceType::class, ['label' => 'Раздел''choices' => [
  30.                         'Акции сервиса' => \CoreBundle\Model\Post::ACTION_TYPE_SERVICE,
  31.                         'Акции авто' => \CoreBundle\Model\Post::ACTION_TYPE_CAR,
  32.                         'Корпоративным клиентам' => \CoreBundle\Model\Post::ACTION_TYPE_CORPORATE,
  33.                     ]])
  34.                 ->end()
  35.             ->end()
  36.         ;
  37.         parent::configureFormFields($formMapper);
  38.     }
  39.     /**
  40.      * @param ListMapper $listMapper
  41.      */
  42.     protected function configureListFields(ListMapper $listMapper): void
  43.     {
  44.         parent::configureListFields($listMapper);
  45.         $listMapper->remove('_action');
  46.         $listMapper->add('date_end'null, ['label' => 'Дата окончания акции''format' => 'd-m-Y']);
  47.         $listMapper->add('action_chapter','choice', ['label' => 'Раздел''choices' => [
  48.                 \CoreBundle\Model\Post::ACTION_TYPE_CAR => 'Акции авто',
  49.                 \CoreBundle\Model\Post::ACTION_TYPE_SERVICE => 'Акции сервиса',
  50.             ]])
  51.             ->add('_action''actions', [
  52.                 'label' => 'Действия',
  53.                 'actions' => [
  54.                     'edit' => [],
  55.                 ]
  56.             ])
  57.         ;
  58.     }
  59.     public function preUpdate($object): void
  60.     {
  61.         $dealer $object->getDealer();
  62.         $this->automaticSeoGenerationAdmin->setUpFields($object,$dealer);
  63.         parent::preUpdate($object);
  64.     }
  65.     /**
  66.      * @param Post $object
  67.      */
  68.     public function postPersist($object): void
  69.     {
  70.         $dealer $object->getDealer();
  71.         $this->automaticSeoGenerationAdmin->setUpFields($object,$dealer);
  72.         parent::postPersist($object);
  73.     }
  74. }