<?php
namespace App\Controller;
use App\Entity\ActualiteOnpc as Actualite;
use Knp\Component\Pager\PaginatorInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use WhiteOctober\BreadcrumbsBundle\Model\Breadcrumbs;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
class ActualiteOnpcController extends AbstractController
{
private const PER_PAGE = 15;
/** @var PaginatorInterface */
private $paginator;
public function __construct(PaginatorInterface $paginator)
{
$this->paginator = $paginator;
}
/**
* @Route("/articles", name="actualite-onpc-liste")
*/
public function list(Request $request): Response
{
$tag = $request->query->get('tag');
if ($tag) {
$actualites = $this->getDoctrine()
->getRepository(Actualite::class)
->findByTag($tag);
} else {
$actualites = $this->getDoctrine()
->getRepository(Actualite::class)
->findBy([], ['createdAt' => 'DESC']);
}
$actualites = $this->paginator->paginate(
$actualites,
$request->query->getInt('page', 1),
self::PER_PAGE
);
return $this->render('actualite-onpc/list.html.twig', [
'meta_title' => "Pour suivre toute l'actualité de l'enseignement privée",
'meta_description' => "Retrouvez toute l'actualité de l'enseignement privée",
'meta_keywords' => "actualité, enseignement privé, $tag",
'actualites' => $actualites,
'tag' => $tag,
]);
}
/**
* @Route("/articles/{slug}", name="actualite-onpc-fiche")
*/
public function fiche(Actualite $actualite): Response
{
$firstTag = $actualite->getTag(); // ceci est une liste de tags séparés par des virgules
if (strpos($firstTag, ',') !== false) {
$tagsArray = explode(',', $firstTag);
$firstTag = trim($tagsArray[0]);
}
$autresActualites = $this->getDoctrine()
->getRepository(Actualite::class)
->findByTag($firstTag, $actualite->getId());
return $this->render('actualite-onpc/fiche.html.twig', [
'meta_title' => $actualite->getTitre(),
'meta_description' => strip_tags($actualite->getDescription()),
'meta_keywords' => 'annuaire dentaire, annuaire chirurgien dentiste, annuaire prothésiste dentaire, annuaire laboratoire de prothèse, guide matériel fourniture dentaire, formation dentaire, implants dentaires, vidéos dentaires',
'actualite' => $actualite,
'autresActualites' => $autresActualites,
]);
}
}