src/Controller/Articles/ArticlesController.php line 101

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Articles;
  3. use App\Entity\Articles\Articles;
  4. use App\Entity\Articles\Categoriearticles;
  5. use App\Repository\Articles\ArticlesRepository;
  6. use Knp\Component\Pager\PaginatorInterface;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. /**
  12.  * @Route("/visiter")
  13.  */
  14. class ArticlesController extends AbstractController
  15. {
  16.     /**
  17.      * @var ArticlesRepository
  18.      */
  19.     private $articlesRepository;
  20.     public function __construct(ArticlesRepository $articlesRepository)
  21.     {
  22.         $this->articlesRepository $articlesRepository;
  23.     }
  24.     /**
  25.      * @Route("/{slug}/{id}", name="articles.index")
  26.      * @param Request $request
  27.      * @param Categoriearticles $categoriearticles
  28.      * @param PaginatorInterface $paginator
  29.      * @return Response
  30.      */
  31.     public function index(Request $requestCategoriearticles $categoriearticlesPaginatorInterface $paginator): Response
  32.     {
  33.         $articles $paginator->paginate(
  34.             $this->getDoctrine()->getRepository(Articles::class)->findBy(['categories' => $categoriearticles'online' => true]), /* query NOT result */
  35.             $request->query->getInt('page'1)/*page number*/,
  36.             $request->query->getInt('limit'12)/*limit per page*/
  37.         );
  38.         return $this->render('pages/internes/articles/index.html.twig', [
  39.             'title' => $categoriearticles->getName(),
  40.             'categorie' => $categoriearticles,
  41.             'articles' => $articles,
  42.             'menu' => "Visiter",
  43.             'current_page' => 'visites'
  44.         ]);
  45.     }
  46.     /**
  47.      * @Route("/les-incontournables", name="articles.incontournables")
  48.      * @param Request $request
  49.      * @param ArticlesRepository $articlesRepository
  50.      * @param PaginatorInterface $paginator
  51.      * @return Response
  52.      */
  53.     public function incontournables(Request $requestArticlesRepository $articlesRepositoryPaginatorInterface $paginator): Response
  54.     {
  55.         $articles $paginator->paginate(
  56.             $articlesRepository->findBy(['incontournable' => true'online' => true]), /* query NOT result */
  57.             $request->query->getInt('page'1)/*page number*/,
  58.             $request->query->getInt('limit'12)/*limit per page*/
  59.         );
  60.         return $this->render('pages/internes/articles/incontournables.html.twig', [
  61.             'title' => 'Les incontournables',
  62.             'articles' => $articles,
  63.             'menu' => "Visiter",
  64.             'current_page' => 'visites'
  65.         ]);
  66.     }
  67.     /**
  68.      * @Route("/details/{slug}/{id}", name="articles.show")
  69.      * @param $slug
  70.      * @param Articles $article
  71.      * @return Response
  72.      */
  73.     public function show($slugArticles $article): Response
  74.     {
  75.         if ($article->getSlug() !== $slug) {
  76.             return $this->redirectToRoute('articles.show', [
  77.                 'id' => $article->getId(),
  78.                 'slug' => $article->getSlug(),
  79.             ], 301);
  80.         }
  81.         $circuits = [];
  82.         if ($article->getCircuitslies()){
  83.             foreach ($article->getCircuitslies() as $circuit){
  84.                 $circuits[] = $this->articlesRepository->find($circuit);
  85.             }
  86.         }
  87.         $othersArticles $this->articlesRepository->getArticleRandom($article$article->getCategories(), 3);
  88.         return $this->render('pages/internes/articles/show.html.twig', [
  89.             'title' => $article->getName(),
  90.             'article' => $article,
  91.             'ciruits' => $circuits,
  92.             'articles' => $othersArticles,
  93.             'menu' => "Visiter",
  94.             'current_page' => 'visites'
  95.         ]);
  96.     }
  97. }