src/Controller/front/Pages/CategoryController.php line 85

Open in your IDE?
  1. <?php
  2. namespace App\Controller\front\Pages;
  3. use App\Entity\Pages\PageCategory;
  4. use App\Controller\Admin\CoreController;
  5. use App\Repository\Pages\PageRepository;
  6. use App\Repository\Medias\MediaRepository;
  7. use App\Service\Manager\Blocs\BlocManager;
  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\Service\Manager\Pages\PaletteColorsManager;
  13. use App\Repository\Pages\PageCategoryLangRepository;
  14. use App\Repository\Pages\PageSousCategoryRepository;
  15. #[Route('/page_category')]
  16. class CategoryController extends CoreController
  17. {
  18.     #[Route('/filter/{id}/{slug}'name'filter')]
  19.     public function filter(string $id$slugPageRepository $pageRepoPageSousCategoryRepository $pageSousCategoryRepo,PageCategoryRepository $pageCategoryRepository,
  20.     PageCategoryLangRepository $pageCategoryLangRepository,
  21.     BlocManager $blocManager
  22.     ): Response
  23.     {
  24.         $template "front/pages/page_category/index.html.twig";
  25.         $language $this->getCurrentLanguage();
  26.         $params = [
  27.             'isEnable' => 1,
  28.             ($id === 'voir_tout') ? 'item_all_page' 'item_page' => $id,
  29.         ];
  30.         $itemsPage $pageRepo->getAllQb($language$params)->getResult();
  31.         $pageCategoryLang $pageCategoryLangRepository->findOneBy([
  32.             'language'=> $language,
  33.             'slug' => $slug
  34.         ]);
  35.         if(!$pageCategoryLang){
  36.             $pCLangCheck $pageCategoryLangRepository->findOneBy([
  37.                 'slug' => $slug
  38.             ]);
  39.             $pageCategoryLang $pageCategoryLangRepository->findOneBy([
  40.                 'slug' => $slug,
  41.                 'id' => $pCLangCheck->getPageCategory()
  42.             ]);
  43.         }
  44.   
  45.         $pageCategory $pageCategoryLang->getPageCategory();
  46.         if (count($itemsPage) > && isset($itemsPage[0]['id_catg'])) {
  47.             $id_cat $itemsPage[0]['id_catg'];
  48.             $params = [
  49.                 'isEnable' => 1,
  50.                 'item_ref' => $id_cat,
  51.             ];
  52.         }
  53.         $type $pageCategory $pageCategory->getType() : null;
  54.         if($type == PageCategory::TYPE_REFERENCS){
  55.             $params['hidden_cats'] = [$this->getParameter('id_page_sous_cat_event'), $this->getParameter('id_page_sous_cat_websites_platforms') ];
  56.         }
  57.         $items $pageSousCategoryRepo->getAllQb($language$params)->getResult();
  58.         $grouppedPages array_reduce($itemsPage, function ($carry$item) {
  59.             $carry[$item['id']][] = $item;
  60.             return $carry;
  61.         }, []);
  62.         $blocs $blocManager->getBlocs($pageCategory);
  63.        $infoPageCategory $pageCategoryRepository->getAllQb($language,['id' => $pageCategory->getId()])->getOneOrNullResult(); 
  64.         return $this->render($template, [
  65.             'items' => $items,
  66.             'pages' => $grouppedPages,
  67.             'blocs'  => $blocs,
  68.             'page_category'   =>  $infoPageCategory,
  69.         ]);
  70.     }
  71.     
  72.     #[Route('/{slug}'name'front_page_category_show')]
  73.     public function show(
  74.                             PageCategoryRepository $pageCategoryRepository,
  75.                             PageCategoryLangRepository $pageCategoryLangRepository,
  76.                             PageSousCategoryRepository $pagesouscategorie,
  77.                             PageRepository $pagerepo,
  78.                             MediaRepository $mediaRepository,
  79.                             BlocManager $blocManager,
  80.                             Request $request,
  81.                             PaletteColorsManager $paletteColorsManager,
  82.                             $slug
  83.                         ): Response
  84.     {
  85.         $language $this->getCurrentLanguage($request->getLocale());
  86.         $items $template  "";
  87.         $pageCategoryLang $pageCategoryLangRepository->findOneBy([
  88.             'language'=> $language,
  89.             'slug' => $slug
  90.         ]);
  91.         $pageCategory $pageCategoryLang->getPageCategory();
  92.      
  93.         $medias =   $mediaRepository->findBy([
  94.             'idOrigin' => $pageCategory->getId(), 
  95.             'origin' => get_class($pageCategory), 
  96.             'deletedAt' => null
  97.         ]);
  98.          
  99.         $type $pageCategory $pageCategory->getType() : null;
  100.         if($type == PageCategory::TYPE_REFERENCS){
  101.         
  102.             $template "front/pages/page_category/index.html.twig";
  103.             $params = [
  104.                 'isEnable' => ,
  105.                 'item_ref'=> $pageCategory->getId(),
  106.                 'hidden_cats' => [$this->getParameter('id_page_sous_cat_event'), $this->getParameter('id_page_sous_cat_websites_platforms') ]
  107.             ];
  108.             $items $pagesouscategorie->getAllQb($language$params)->getResult();
  109.            
  110.                 $params = [
  111.                     'isEnable' => ,
  112.                     'item_all_page'=>'voir_tout',
  113.                 ];
  114.                 $itemsPage $pagerepo->getAllQb($language$params)->getResult(); 
  115.                 $grouppedPages array_reduce($itemsPage, function ($carry$item) {
  116.                     $carry[$item['id']][] = $item;
  117.                     return $carry;
  118.                 }, []);
  119.         }
  120.         $paletteColors $paletteColorsManager->getValues('App\\Entity\\Pages\\PageCategory',$pageCategory->getId());
  121.         $colorPage=null;
  122.        if($paletteColors){
  123.            $colorPage=$paletteColors[0];
  124.        }
  125.        $blocs $blocManager->getBlocs($pageCategory);
  126.        $infoPageCategory $pageCategoryRepository->getAllQb($language,['id' => $pageCategory->getId()])->getOneOrNullResult(); 
  127.         return $this->render($template, [
  128.             'page_category'   =>  $infoPageCategory,
  129.             'items' => $items,
  130.             'pages' => $grouppedPages,
  131.             'paletteColors' =>$colorPage,
  132.             'blocs'  => $blocs,
  133.         ]);
  134.     }
  135. }