src/Controller/Actualites/ActualitesController.php line 82

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Actualites;
  3. use App\Entity\Actualites\Actualites;
  4. use App\Entity\Actualites\Categories;
  5. use App\Repository\Actualites\ActualitesRepository;
  6. use App\Services\ViewsServices;
  7. use Knp\Component\Pager\PaginatorInterface;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. /**
  13.  * @Route("/ci-tourisme/actualites")
  14.  */
  15. class ActualitesController extends AbstractController
  16. {
  17.     /**
  18.      * @var ActualitesRepository
  19.      */
  20.     private $repository;
  21.     /**
  22.      * @var ViewsServices
  23.      */
  24.     private $viewsServices;
  25.     public function __construct(ActualitesRepository $repositoryViewsServices $viewsServices)
  26.     {
  27.         $this->repository $repository;
  28.         $this->viewsServices $viewsServices;
  29.     }
  30.     /**
  31.      * @Route("/", name="cit.actualites.tourisme", defaults={"title":"Actualités tourismes"})
  32.      * @param Request $request
  33.      * @param $title
  34.      * @param PaginatorInterface $paginator
  35.      * @return Response
  36.      */
  37.     public function index(Request $request$titlePaginatorInterface $paginator): Response
  38.     {
  39.         $actualites $paginator->paginate(
  40.             $this->repository->findAllOnline(), /* query NOT result */
  41.             $request->query->getInt('page'1)/*page number*/,
  42.             $request->query->getInt('limit'6)/*limit per page*/
  43.         );
  44.         $actualitealaune $this->repository->features(1);
  45.         return $this->render('pages/internes/cit/actualites/index.html.twig', [
  46.             'title' => $title,
  47.             'actualites' => $actualites,
  48.             'actualitealaune' => $actualitealaune,
  49.             'menu' => "Cote d'Ivoire",
  50.             'current_page' => 'cit'
  51.         ]);
  52.     }
  53.     /**
  54.      * @Route("/{slug}/{id}", name="cit.actualites.show")
  55.      * @param $slug
  56.      * @param Actualites $actualite
  57.      * @return Response
  58.      */
  59.     public function show($slugActualites $actualite): Response
  60.     {
  61.         $this->viewsServices->setActualitesViews($actualite);
  62.         if ($actualite->getSlug() !== $slug) {
  63.             return $this->redirectToRoute('cit.actualites.show', [
  64.                 'id' => $actualite->getId(),
  65.                 'slug' => $actualite->getSlug(),
  66.             ], 301);
  67.         }
  68.         $othersActualites $this->repository->getActualitesRandom($actualite3);
  69.         return $this->render('pages/internes/cit/actualites/show.html.twig', [
  70.             'title' => $actualite->getName(),
  71.             'actualite' => $actualite,
  72.             'actualites' => $othersActualites,
  73.             'menu' => "Cote d'Ivoire",
  74.             'current_page' => 'cit'
  75.         ]);
  76.     }
  77.     /**
  78.      * @Route("/categories/{slug}/{id}", name="cit.actualites.categories.show")
  79.      * @param Request $request
  80.      * @param Categories $categories
  81.      * @param PaginatorInterface $paginator
  82.      * @return Response
  83.      */
  84.     public function showActualitesByCat(Request $requestCategories $categoriesPaginatorInterface $paginator): Response
  85.     {
  86.         $actualites $paginator->paginate(
  87.             $this->repository->findBy(['categories' => $categories]), /* query NOT result */
  88.             $request->query->getInt('page'1)/*page number*/,
  89.             $request->query->getInt('limit'10)/*limit per page*/
  90.         );
  91.         return $this->render('pages/internes/cit/actualites/categories.html.twig', [
  92.             'title' => $categories->getName(),
  93.             'categorie' => $categories,
  94.             'actualites' => $actualites,
  95.             'menu' => "Cote d'Ivoire",
  96.             'current_page' => 'cit'
  97.         ]);
  98.     }
  99. }