src/Controller/BibliotecaController.php line 101

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. class BibliotecaController extends AbstractController
  7. {
  8.     /* NOTA:
  9.      * Per aggiungere una nuova galleria basta aggiungere un'entità
  10.      * all'interno dell'array contenuto in getGalleries() e caricare
  11.      * tutte le foto da visualizzare nella cartella indicata da imgUri,
  12.      * numerandole con numeri da 1 in poi.
  13.      * totalPhotos permetterà alla vista di ciclare dinamicamente
  14.      * su tutte le foto. La sitemap viene aggiornata automaticamente.
  15.      * */
  16.     // METODI di utility
  17.     // restituisce le pagine impostate per visualizzare le gallery
  18.     public static function getGalleries() {
  19.         return [
  20.             'la-biblioteca' => [
  21.                 'totalPhotos' => 12,
  22.                 'title'       => "La Biblioteca",
  23.                 'alt'         => "Galleria La Biblioteca - Don Uva",
  24.                 'imgUri'      => "assets/images/pages/biblioteca/galleria/la_biblioteca",
  25.             ],
  26.             '17-luglio-2019' => [
  27.                 'totalPhotos' => 3,
  28.                 'title'       => "17 Luglio 2019",
  29.                 'alt'         => "Galleria 17 Luglio 2019 - Don Uva",
  30.                 'imgUri'      => "assets/images/pages/biblioteca/galleria/17_luglio_2019",
  31.             ],
  32.             '13-agosto-2019' => [
  33.                 'totalPhotos' => 4,
  34.                 'title'       => "13 Agosto 2019",
  35.                 'alt'         => "Galleria 13 Agosto 2019 - Don Uva",
  36.                 'imgUri'      => "assets/images/pages/biblioteca/galleria/13_agosto_2019",
  37.             ],
  38.             'settembre-2019' => [
  39.                 'totalPhotos' => 8,
  40.                 'title'       => "Settembre 2019",
  41.                 'alt'         => "Galleria Settembre 2019 - Don Uva",
  42.                 'imgUri'      => "assets/images/pages/biblioteca/galleria/settembre_2019",
  43.             ],
  44.             '25-ottobre-2019' => [
  45.                 'totalPhotos' => 12,
  46.                 'title'       => "25 Ottobre 2019",
  47.                 'alt'         => "Galleria 25 Ottobre 2019 - Don Uva",
  48.                 'imgUri'      => "assets/images/pages/biblioteca/galleria/25_ottobre_2019",
  49.             ],
  50.             '29-ottobre-2019' => [
  51.                 'totalPhotos' => 9,
  52.                 'title'       => "29 Ottobre 2019",
  53.                 'alt'         => "Galleria 29 Ottobre 2019 - Don Uva",
  54.                 'imgUri'      => "assets/images/pages/biblioteca/galleria/29_ottobre_2019",
  55.             ],
  56.             '16-novembre-2019' => [
  57.                 'totalPhotos' => 3,
  58.                 'title'       => "16 Novembre 2019",
  59.                 'alt'         => "Galleria 16 Novembre 2019 - Don Uva",
  60.                 'imgUri'      => "assets/images/pages/biblioteca/galleria/16_novembre_2019",
  61.             ],
  62.             '23-novembre-2019' => [
  63.                 'totalPhotos' => 4,
  64.                 'title'       => "23 Novembre 2019",
  65.                 'alt'         => "Galleria 23 Novembre 2019 - Don Uva",
  66.                 'imgUri'      => "assets/images/pages/biblioteca/galleria/23_novembre_2019",
  67.             ],
  68.             // aggiungi qui la nuova galleria
  69.         ];
  70.     }
  71.     /**/
  72.     // METODI di routing
  73.     #[Route('/biblioteca'name'biblioteca'methods: ['GET''HEAD'])]
  74.     public function biblioteca()
  75.     {
  76.         return new Response(
  77.             $this->renderView('pages/biblioteca/biblioteca.html.twig'),
  78.             200
  79.         );
  80.     }
  81.     #[Route('/biblioteca/galleria'name'biblioteca-galleria'methods: ['GET''HEAD'])]
  82.     public function bibliotecaGalleria()
  83.     {
  84.         return new Response(
  85.             $this->renderView('pages/biblioteca/galleria/galleria.html.twig', [
  86.                 'galleries' => self::getGalleries()
  87.             ]),
  88.             200
  89.         );
  90.     }
  91.     #[Route('/biblioteca/galleria/{slug}'name'biblioteca-galleria-slug'methods: ['GET''HEAD'])]
  92.     public function bibliotecaGalleriaSlug(string $slug)
  93.     {
  94.         $galleryPages self::getGalleries();
  95.         if ( ! isset($galleryPages[$slug])) {
  96.             return $this->redirectToRoute('biblioteca-galleria');
  97.         }
  98.         return new Response(
  99.             $this->renderView('pages/biblioteca/galleria/base_gallery.html.twig'$galleryPages[$slug]),
  100.             200
  101.         );
  102.     }
  103. }