src/Controller/GalleryController.php line 25

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\GalleryImage;
  4. use App\Helper\ImageHelper;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  8. use Symfony\Component\HttpFoundation\JsonResponse;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use App\Entity\Gallery;
  12. class GalleryController extends AbstractController
  13. {
  14.     /**
  15.      * @Route("/bilder", name="gallery")
  16.      * @param EntityManagerInterface $em
  17.      * @return Response
  18.      */
  19.     public function home(EntityManagerInterface $em) {
  20.         return $this->render("gallery/gallery.html.twig", [
  21.             "galleries" => $em->getRepositoryGallery::class)->findBy(['published' => 1]),
  22.             "backButton" => $this->generateUrl('home'),
  23.         ]);
  24.     }
  25.     /**
  26.      * @Route("/bilder/update-images", name="gallery_update_images")
  27.      * @param EntityManagerInterface $em
  28.      * @param ParameterBagInterface $parameterBag
  29.      * @return JsonResponse
  30.      */
  31.     public function updateImages(EntityManagerInterface $emParameterBagInterface $parameterBag) {
  32.         $galleries $em->getRepository(Gallery::class)->findAll();
  33.         $dir $parameterBag->get('kernel.project_dir')."/public/images/gallery/";
  34.         foreach($galleries as $gallery) {
  35.             echo "Process: ".$gallery->getName()."<br />";
  36.             $images scandir($dir.$gallery->getSlug()."/big/");
  37.             # Delete Images from Gallery
  38.             foreach($gallery->getGalleryImages() as $image)
  39.                 $em->remove($image);
  40.             $em->flush();
  41.             # add Images to Gallery
  42.             foreach($images as $image) {
  43.                 if($image == "." || $image == "..") continue;
  44.                 echo ".";
  45.                 $dbImage = new GalleryImage();
  46.                 $dbImage->setFile($image)
  47.                     ->setGallery($gallery);
  48.                 $em->persist($dbImage);
  49.             }
  50.             $em->flush();
  51.             echo "<br /><br />";
  52.         }
  53.         return new JsonResponse(["status" => "success"]);
  54.     }
  55.     /**
  56.      * @Route("/bilder/{slug}", name="gallery_gallery")
  57.      * @param $slug
  58.      * @param EntityManagerInterface $em
  59.      * @return Response
  60.      */
  61.     public function gallery($slugEntityManagerInterface $emParameterBagInterface $parameterBag) {
  62.         $gallery $em->getRepository(Gallery::class)->findOneBy(["slug" => $slug]);
  63.         $dir $parameterBag->get('kernel.project_dir')."/public/images/gallery/".$gallery->getSlug()."/thumbs/";
  64.         return $this->render("gallery/detail.html.twig", [
  65.             "gallery" => $gallery,
  66.             "images" => ImageHelper::getGallery($dir),
  67.             "page" => [
  68.                 "title" => $gallery->getName(),
  69.                 "header" => "small",
  70.                 "buttons" => false,
  71.             ],
  72.             "headerImage" => "galleryHeader",
  73.             "backButton" => $this->generateUrl('gallery')."#reisen",
  74.         ]);
  75.     }
  76. }