src/Controller/PressAreaController.php line 14

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Service\WordpressAPIService;
  4. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. class PressAreaController extends AbstractController
  9. {
  10.     #[Route('/notizie'name'notizie'methods: ['GET''HEAD'])]
  11.     public function notizie(Request $request)
  12.     {
  13.         $page   max(1, (int)($request->query->get('pagina') ?? 1)); // non posso scendere al di sotto di 1
  14.         $search $request->query->get('cerca') ?? null;
  15.         $wordpressAPIService = new WordpressAPIService();
  16.         // elenco di articoli da mostrare
  17.         $q1 $wordpressAPIService->getArticles($page6$search);
  18.         $totPages $q1['totPages'] ?? -1;
  19.         $articles $q1['articles'] ?? [];
  20.         // ottengo gli articoli recenti
  21.         $q2 $wordpressAPIService->getArticles(14);
  22.         $recentArticles $q2['articles'];
  23.         // ottengo l'elenco delle categorie degli articoli
  24.         $q3 $wordpressAPIService->getCategories();
  25.         $categories $q3['categories'];
  26.         // ottengo l'URI di richiesta da passare alla view
  27.         $uri = (explode('?'$request->getRequestUri()))[0];
  28.         return new Response(
  29.             $this->renderView('pages/press_area/notizie.html.twig', [
  30.                 'uri'            => $uri,
  31.                 'page'           => $page,
  32.                 'search'         => $search,
  33.                 'totPages'       => $totPages,
  34.                 'articles'       => $articles,
  35.                 'recentArticles' => $recentArticles,
  36.                 'categories'     => $categories
  37.             ]),
  38.             200
  39.         );
  40.     }
  41.     #[Route('/notizie/categoria/{idCategory}'methods: ['GET''HEAD'])]
  42.     public function notizieCategoria(int $idCategoryRequest $request)
  43.     {
  44.         $page   max(1, (int)($request->query->get('pagina') ?? 1)); // non posso scendere al di sotto di 1
  45.         $search $request->query->get('cerca') ?? null;
  46.         $wordpressAPIService = new WordpressAPIService();
  47.         // elenco di articoli da mostrare
  48.         $q1 $wordpressAPIService->getArticles($page6$search, [$idCategory]);
  49.         $totPages $q1['totPages'] ?? -1;
  50.         $articles $q1['articles'] ?? [];
  51.         // ottengo gli articoli recenti
  52.         $q2 $wordpressAPIService->getArticles(14);
  53.         $recentArticles $q2['articles'];
  54.         // ottengo l'elenco delle categorie degli articoli
  55.         $q3 $wordpressAPIService->getCategories();
  56.         $categories $q3['categories'];
  57.         // ottengo l'URI di richiesta da passare alla view
  58.         $uri = (explode('?'$request->getRequestUri()))[0];
  59.         return new Response(
  60.             $this->renderView('pages/press_area/notizie.html.twig', [
  61.                 'uri'            => $uri,
  62.                 'idCategory'     => $idCategory,
  63.                 'page'           => $page,
  64.                 'search'         => $search,
  65.                 'totPages'       => $totPages,
  66.                 'articles'       => $articles,
  67.                 'recentArticles' => $recentArticles,
  68.                 'categories'     => $categories
  69.             ]),
  70.             200
  71.         );
  72.     }
  73.     #[Route('/articolo/{slug}'name'articolo'methods: ['GET''HEAD'])]
  74.     public function articoloSlug(string $slug)
  75.     {
  76.         $wordpressAPIService = new WordpressAPIService();
  77.         // articolo da mostrare
  78.         $article $wordpressAPIService->getArticle($slug);
  79.         if ($article === null) {
  80.             return $this->redirectToRoute('notizie');
  81.         }
  82.         // ottengo gli articoli recenti
  83.         $q1 $wordpressAPIService->getArticles(14);
  84.         $recentArticles $q1['articles'];
  85.         // ottengo l'elenco delle categorie degli articoli
  86.         $q2 $wordpressAPIService->getCategories();
  87.         $categories $q2['categories'];
  88.         return new Response(
  89.             $this->renderView('pages/press_area/articolo.html.twig', [
  90.                 'slug'           => $slug,
  91.                 'article'        => $article,
  92.                 'recentArticles' => $recentArticles,
  93.                 'categories'     => $categories
  94.             ]),
  95.             200
  96.         );
  97.     }
  98.     #[Route('/ufficio-stampa'name'ufficio-stampa'methods: ['GET''HEAD'])]
  99.     public function ufficioStampa()
  100.     {
  101.         return new Response(
  102.             $this->renderView('pages/press_area/ufficio_stampa.html.twig'),
  103.             200
  104.         );
  105.     }
  106. }