src/Controller/Admin/Pages/PageCategoryController.php line 21

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Admin\Pages;
  3. use App\Service\LanguagesManager;
  4. use App\Entity\Pages\PageCategory;
  5. use App\Service\Manager\AdminManager;
  6. use App\Repository\LanguagesRepository;
  7. use App\Controller\Admin\CoreController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use App\Repository\Pages\PageCategoryRepository;
  12. use App\Form\Search\Pages\SearchPageCategoryType;
  13. use App\Service\Manager\Pages\PageCategoryManager;
  14. #[Route('/admin/pages/page_category')]
  15. class PageCategoryController extends CoreController
  16. {
  17.     #[Route('/'name'admin_pages_page_category_index')]
  18.     public function index(Request $requestPageCategoryRepository $repository): Response
  19.     {
  20.         $language $this->getCurrentLanguage(); 
  21.         $form $this->createForm(SearchPageCategoryType::class, null, [
  22.             'method' => 'GET',
  23.             'language' => $language
  24.         ]);
  25.         $form->handleRequest($request);
  26.         $formParams $form->getData() ?? [];
  27.         
  28.         return $this->render('admin/pages/page_category/index.html.twig', [
  29.             'lists' =>  $repository->paginateAllVisible(
  30.                 $language,
  31.                 $request->query->getInt('page'1), 
  32.                 $formParams,
  33.             ),
  34.             'form' => $form->createView(),
  35.             'table' => $this->getTable() 
  36.         ]);
  37.     }
  38.  
  39.     #[Route('/new'name'admin_pages_page_category_new')]
  40.     #[Route('/edit/{id}'name'admin_pages_page_category_edit')]
  41.     public function new(LanguagesRepository $languagesRepository
  42.                         PageCategoryManager $pageCategoryManager
  43.                         LanguagesManager $languagesManager,
  44.                         PageCategory $pageCategory null
  45.                         ) {
  46.         if(!$pageCategory) {
  47.             $pageCategory = new PageCategory();
  48.             $pageCategory $languagesManager->addLangue($pageCategorytrue);
  49.         }
  50.         else {
  51.             $pageCategory $languagesManager->addLangue($pageCategoryfalse); 
  52.         }
  53.         $response $pageCategoryManager->getForm($pageCategory);
  54.         if($response instanceof Response) return $response;
  55.         return $this->render('admin/pages/page_category/form.html.twig', [
  56.             'field' => $response['pageCategory'],
  57.             'form' => $response['form'], 
  58.             'paletteColors' => $response['paletteColors'],
  59.             'blocs' => $response['blocs'],
  60.             'languages' => $languagesRepository->findBy(['deletedAt' => null]),
  61.         ]);
  62.     }
  63.     #[Route('/delete/{id}'name'admin_pages_page_category_delete')]
  64.     public function delete(Request $requestPageCategory $pageCategoryAdminManager $adminManager): Response
  65.     {
  66.         if ($this->isCsrfTokenValid('delete'.$pageCategory->getId(), $request->query->get('_token'))) {
  67.             $adminManager->deleteEntity($pageCategory);
  68.         }
  69.         return $this->redirectToRoute('admin_pages_page_category_index');
  70.     }
  71.     public function getTable($type =  null)
  72.     {
  73.         $fields = [
  74.             [
  75.                 'field' => 'category_name',
  76.                 'order' => 'category_name',
  77.             ],
  78.             [
  79.                 'field' => 'isEnable',
  80.                 'type' => 'isEnable',
  81.                 'order' => 'pc.isEnable',
  82.             ],
  83.             [
  84.                 'field' => 'createdAt',
  85.                 'type' => 'date',
  86.                 'order' => 'pc.createdAt'
  87.             ]
  88.         ];
  89.         return [
  90.             'id' => 'p',
  91.             'fields' => array_filter($fields
  92.         ];
  93.     }
  94. }