src/Controller/CategorySeanceController.php line 70

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\CategorySeance;
  4. use App\Entity\Faq;
  5. use App\Entity\Seance;
  6. use App\Form\CategorySeanceType;
  7. use App\Repository\CategorySeanceRepository;
  8. use App\Repository\SeanceRepository;
  9. use Doctrine\ORM\EntityManagerInterface;
  10. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Component\HttpFoundation\Response;
  13. use Symfony\Component\Routing\Annotation\Route;
  14. #[Route('/studio/seance')]
  15. class CategorySeanceController extends AbstractController
  16. {
  17.    /* #[Route('/', name: 'app_category_seance_index', methods: ['GET'])]
  18.     public function index(CategorySeanceRepository $categorySeanceRepository): Response
  19.     {
  20.         return $this->render('category_seance/index.html.twig', [
  21.             'category_seances' => $categorySeanceRepository->findAll(),
  22.         ]);
  23.     }*/
  24.     /*
  25.     #[Route('/categorie/new', name: 'app_category_seance_new', methods: ['GET', 'POST'])]
  26.     public function new(Request $request, CategorySeanceRepository $categorySeanceRepository): Response
  27.     {
  28.         $categorySeance = new CategorySeance();
  29.         $form = $this->createForm(CategorySeanceType::class, $categorySeance);
  30.         $form->handleRequest($request);
  31.         if ($form->isSubmitted() && $form->isValid()) {
  32.             $categorySeanceRepository->save($categorySeance, true);
  33.             // On récupère les images transmises
  34.             $image = $form->get('images')->getData();
  35.             // On boucle sur les images
  36.             // On génère un nouveau nom de fichier
  37.             $fichier = md5(uniqid()) . '.' . $image->guessExtension();
  38.             // On copie le fichier dans le dossier uploads
  39.             $image->move(
  40.                 $this->getParameter('images_illustration_directory'),
  41.                 $fichier
  42.             );
  43.             // On crée l'image dans la base de données
  44.             $categorySeance->setImage($fichier);
  45.             $entityManager = $this->getDoctrine()->getManager();
  46.             $entityManager->persist($categorySeance);
  47.             $entityManager->flush();
  48.             return $this->redirectToRoute('app_category_seance_index', [], Response::HTTP_SEE_OTHER);
  49.         }
  50.         return $this->renderForm('category_seance/new.html.twig', [
  51.             'category_seance' => $categorySeance,
  52.             'form' => $form,
  53.         ]);
  54.     }*/
  55.     #[Route('/{slug_category}'name'app_category_seance_show'methods: ['GET'])]
  56.     public function show(EntityManagerInterface $entityManager$slug_category): Response
  57.     {
  58.         //On récupère l'objet categorie par le nom de la catégorie 
  59.         $categorySeance $entityManager->getRepository(CategorySeance::class)
  60.             ->findOneBy(array('slug' => $slug_category));
  61.             
  62.         if (isset($categorySeance) && $categorySeance->isIsActive() == true) {
  63.             //On récupère l'objet seance par le nom de la seance
  64.             $seances $entityManager->getRepository(Seance::class)
  65.                 ->findBy(array('category' => $categorySeance->getId()));
  66.         } else {
  67.             $this->addFlash('error'"Cette catégorie de séance n'existe pas.");
  68.             return $this->redirectToRoute('app_home_studio');
  69.         }
  70.         $directory $this->getParameter('images_gallery_directory');
  71.         $images glob($directory "/$slug_category/*");
  72.         foreach ($images as $key => $image) {
  73.             $images[$key] = substr($imagestrrpos($image'/') + 1);
  74.         }
  75.         //On récupère l'objet faq par l'id' de la catégorie 
  76.         $faqs $entityManager->getRepository(Faq::class)
  77.             ->findBy(array('categorySeance' => $categorySeance->getId(), 'isActive' => 1));
  78.         return $this->render('category_seance/show.html.twig', [
  79.             'category_seance' => $categorySeance,
  80.             'seances'         => $seances,
  81.             'images'          => $images,
  82.             'faqs'            => $faqs
  83.         ]);
  84.     }
  85.     /*
  86.     #[Route('/{slug_category}/edit', name: 'app_category_seance_edit', methods: ['GET', 'POST'])]
  87.     public function edit(Request $request, CategorySeance $categorySeance, CategorySeanceRepository $categorySeanceRepository): Response
  88.     {
  89.         $form = $this->createForm(CategorySeanceType::class, $categorySeance);
  90.         $form->handleRequest($request);
  91.         if ($form->isSubmitted() && $form->isValid()) {
  92.             $categorySeanceRepository->save($categorySeance, true);
  93.             return $this->redirectToRoute('app_category_seance_index', [], Response::HTTP_SEE_OTHER);
  94.         }
  95.         return $this->renderForm('category_seance/edit.html.twig', [
  96.             'category_seance' => $categorySeance,
  97.             'form' => $form,
  98.         ]);
  99.     }
  100.     #[Route('/{id}', name: 'app_category_seance_delete', methods: ['POST'])]
  101.     public function delete(Request $request, CategorySeance $categorySeance, CategorySeanceRepository $categorySeanceRepository): Response
  102.     {
  103.         if ($this->isCsrfTokenValid('delete' . $categorySeance->getId(), $request->request->get('_token'))) {
  104.             $categorySeanceRepository->remove($categorySeance, true);
  105.         }
  106.         return $this->redirectToRoute('app_category_seance_index', [], Response::HTTP_SEE_OTHER);
  107.     }
  108.     */
  109. }