src/Front/Controller/NewsController.php line 29

  1. <?php
  2. namespace App\Front\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\RequestStack;
  7. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  8. use App\Entity\Page;
  9. use App\Util\LanguageUtil;
  10. use App\Repository\NewsRepository;
  11. use App\Front\Util\LangChanger;
  12. class NewsController extends AbstractController
  13. {
  14.     public function index(
  15.         RequestStack $requestStack,
  16.         Request $request,
  17.         Page $page
  18.     ): Response {
  19.         $requestStack->push($request);
  20.         return $this->render('@front_templates/News/index.html.twig', [
  21.             'page' => $page,
  22.         ]);
  23.     }
  24.     public function detail(
  25.         RequestStack $requestStack,
  26.         Request $request,
  27.         Page $page,
  28.         NewsRepository $repository,
  29.         LangChanger $langChanger,
  30.         string $slug
  31.     ): Response {
  32.         $requestStack->push($request);
  33.         $lang LanguageUtil::getLanguage($request->getLocale());
  34.         $entity $repository->findOneVisibleBySlug($slug$lang);
  35.         if (! $entity) {
  36.             throw new NotFoundHttpException('News not found.');
  37.         }
  38.         $langChanger->setSub($entity);
  39.         return $this->render('@front_templates/News/detail.html.twig', [
  40.             'page' => $page,
  41.             'entity' => $entity
  42.         ]);
  43.     }
  44. }