src/Controller/Front/ActualiteController.php line 71
<?phpnamespace App\Controller\Front;use App\Entity\CategorieActu;use App\Entity\Pole;use App\Repository\ActualiteRepository;use App\Repository\PositionBlocsActualiteRepository;use Doctrine\ORM\EntityManagerInterface;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Routing\Annotation\Route;use Ttskch\PaginatorBundle\Context;use Ttskch\PaginatorBundle\Doctrine\Counter;use Ttskch\PaginatorBundle\Doctrine\Slicer;use Ttskch\PaginatorBundle\Entity\Criteria;class ActualiteController extends AbstractController{public function __construct(private EntityManagerInterface $entityManager,private ActualiteRepository $actualiteRepository) {}#[Route('/actualites', name: 'app_actualite_list')]public function index(Request $request, ActualiteRepository $actualiteRepository, Context $context): Response{$poles = $this->entityManager->getRepository(Pole::class)->findAll();$categories = $this->entityManager->getRepository(CategorieActu::class)->findAll();$pole = $request->get('pole');$categorie = $request->get('categorie');$criteria = new Criteria();$criteria->direction = 'desc';$criteria->sort = 'publishedAt';if (empty($pole) && empty($categorie)) {$dateNow = new \DateTime('now');$qb = $actualiteRepository->createQueryBuilder('A')->where('A.visible = true')->andWhere('A.publishedAt < :dateNow')->setParameter('dateNow', $dateNow);$context->initialize('id', new Slicer($qb), new Counter($qb), $criteria);} else {$qb = $this->actualiteRepository->findBySearch($pole, $categorie);// $array = (array) $actualites;$context->initialize('id', new Slicer($qb), new Counter($qb), $criteria);}$nbActus = $context->count;return $this->render('front/actualite/index.html.twig', ['poles' => $poles,'categories' => $categories,'poleSearch' => $pole,'categorieSearch' => $categorie,'actualites' => $context->slice,'nbActus' => $nbActus,]);}#[Route('/actualite/{actualite<[0-9]\d*>}', name: 'app_actualite_detail'),Route('/actualite/{slug}', name: 'app_actualite_detail_slug')]public function detail(?int $actualite,?string $slug,PositionBlocsActualiteRepository $positionBlocsActualiteRepository): Response {if (!$slug) {$actualite = $this->actualiteRepository->find($actualite);} else {$actualite = $this->actualiteRepository->findOneBy(['slug' => $slug]);}if (null === $actualite || (!$this->isGranted('ROLE_ADMIN') && false === $actualite->isVisible())) {throw $this->createNotFoundException('Page not found');}if ($this->isGranted('ROLE_ADMIN') && false === $actualite->isVisible()) {$this->addFlash('success', 'Cette page est visible car vous ĂȘte administrateur');}$actualites = $this->actualiteRepository->findOther($actualite);$tbBlocActu = $positionBlocsActualiteRepository->findBy(['actualite' => $actualite],['position' => 'ASC']);return $this->render('front/actualite/detail.html.twig', ['blocActu' => $tbBlocActu,'actualite' => $actualite,'actualites' => $actualites,]);}}