src/Controller/LaBaseController.php line 35

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Tuto;
  4. use App\Repository\TutoRepository;
  5. use App\Repository\LaBaseCategoryRepository;
  6. use App\Services\VisitorCountManager;
  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\HttpKernel\Exception\NotFoundHttpException;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. class LaBaseController extends AbstractController
  14. {
  15.     private LaBaseCategoryRepository $LaBaseCategoryRepository;
  16.     private TutoRepository $tutoRepository;
  17.     private VisitorCountManager $visitorCountManager;
  18.     public function __construct(
  19.         LaBaseCategoryRepository $LaBaseCategoryRepository,
  20.         TutoRepository $tutoRepository,
  21.         VisitorCountManager $visitorCountManager
  22.     )    {
  23.         $this->LaBaseCategoryRepository$LaBaseCategoryRepository;
  24.         $this->tutoRepository $tutoRepository;
  25.         $this->visitorCountManager $visitorCountManager;
  26.     }
  27.     /**
  28.      * @Route("/la-base", name="la_base")
  29.      */
  30.     public function index(Request $requestPaginatorInterface $paginator): Response
  31.     {
  32.         $categories $this->LaBaseCategoryRepository->findBy([
  33.             'enabled' => true
  34.         ], [
  35.             'name' => 'asc'
  36.         ]);
  37.         $categoryId $request->query->get('category');
  38.         if (null !== $categoryId) {
  39.             $category $this->LaBaseCategoryRepository->find((int) $categoryId);
  40.             $query $this->tutoRepository->findTutoActiveQueryByCategory($category);
  41.         } else {
  42.             $category null;
  43.             $query $this->tutoRepository->findTutoActiveQueryByCategory();
  44.         }
  45.         $data $paginator->paginate($query$request->query->get('page'1), 6);
  46.         //$tutoQuery = $this->tutoRepository->findTutoActiveQueryByCategory();
  47.         //$data = $paginator->paginate($tutoQuery, $request->query->get('page', 1), 6);
  48.         // Remove striptags
  49.         $items $data->getItems();
  50.         $itemsWithoutTags = [];
  51.         foreach ($items as $item) {
  52.             $content $item->getContent();
  53.             $contentClean strip_tags($content'<br/><br>');
  54.             $contentClean str_replace("&rsquo;""'"$contentClean);
  55.             $contentClean str_replace("&#39;""'"$contentClean);
  56.             $item->setContent($contentClean);
  57.             $itemsWithoutTags[] = $item;
  58.         }
  59.         $data->setItems($itemsWithoutTags);
  60.         return $this->render('base/tutos_list.html.twig', [
  61.             'controller_name' => 'LaBaseController',
  62.             'active_menu' => 'base',
  63.             'tutos' => $data,
  64.             'categoryRequest' => $category,
  65.             'categories' => $categories,
  66.         ]);
  67.     }
  68.     /**
  69.      * @Route("/lire-tuto/{tutoId}", name="tuto_read")
  70.      */
  71.     public function tutoRead(string $tutoId)
  72.     {
  73.         $tuto $this->tutoRepository->find((int) $tutoId);
  74.         if (null === $tuto) {
  75.             throw new NotFoundHttpException();
  76.         }
  77.         // Count visitors
  78.         $this->visitorCountManager->incrementStats($tuto);
  79.         return $this->render('base/tuto_read.html.twig', [
  80.             'controller_name' => 'LaBaseController',
  81.             'active_menu' => 'base',
  82.             'tuto' => $tuto,
  83.         ]);
  84.     }
  85. }