<?php
namespace App\Controller;
use App\Entity\CategorySeance;
use App\Entity\Faq;
use App\Entity\Seance;
use App\Form\CategorySeanceType;
use App\Repository\CategorySeanceRepository;
use App\Repository\SeanceRepository;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
#[Route('/studio/seance')]
class CategorySeanceController extends AbstractController
{
/* #[Route('/', name: 'app_category_seance_index', methods: ['GET'])]
public function index(CategorySeanceRepository $categorySeanceRepository): Response
{
return $this->render('category_seance/index.html.twig', [
'category_seances' => $categorySeanceRepository->findAll(),
]);
}*/
/*
#[Route('/categorie/new', name: 'app_category_seance_new', methods: ['GET', 'POST'])]
public function new(Request $request, CategorySeanceRepository $categorySeanceRepository): Response
{
$categorySeance = new CategorySeance();
$form = $this->createForm(CategorySeanceType::class, $categorySeance);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$categorySeanceRepository->save($categorySeance, true);
// On récupère les images transmises
$image = $form->get('images')->getData();
// On boucle sur les images
// On génère un nouveau nom de fichier
$fichier = md5(uniqid()) . '.' . $image->guessExtension();
// On copie le fichier dans le dossier uploads
$image->move(
$this->getParameter('images_illustration_directory'),
$fichier
);
// On crée l'image dans la base de données
$categorySeance->setImage($fichier);
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($categorySeance);
$entityManager->flush();
return $this->redirectToRoute('app_category_seance_index', [], Response::HTTP_SEE_OTHER);
}
return $this->renderForm('category_seance/new.html.twig', [
'category_seance' => $categorySeance,
'form' => $form,
]);
}*/
#[Route('/{slug_category}', name: 'app_category_seance_show', methods: ['GET'])]
public function show(EntityManagerInterface $entityManager, $slug_category): Response
{
//On récupère l'objet categorie par le nom de la catégorie
$categorySeance = $entityManager->getRepository(CategorySeance::class)
->findOneBy(array('slug' => $slug_category));
if (isset($categorySeance) && $categorySeance->isIsActive() == true) {
//On récupère l'objet seance par le nom de la seance
$seances = $entityManager->getRepository(Seance::class)
->findBy(array('category' => $categorySeance->getId()));
} else {
$this->addFlash('error', "Cette catégorie de séance n'existe pas.");
return $this->redirectToRoute('app_home_studio');
}
$directory = $this->getParameter('images_gallery_directory');
$images = glob($directory . "/$slug_category/*");
foreach ($images as $key => $image) {
$images[$key] = substr($image, strrpos($image, '/') + 1);
}
//On récupère l'objet faq par l'id' de la catégorie
$faqs = $entityManager->getRepository(Faq::class)
->findBy(array('categorySeance' => $categorySeance->getId(), 'isActive' => 1));
return $this->render('category_seance/show.html.twig', [
'category_seance' => $categorySeance,
'seances' => $seances,
'images' => $images,
'faqs' => $faqs
]);
}
/*
#[Route('/{slug_category}/edit', name: 'app_category_seance_edit', methods: ['GET', 'POST'])]
public function edit(Request $request, CategorySeance $categorySeance, CategorySeanceRepository $categorySeanceRepository): Response
{
$form = $this->createForm(CategorySeanceType::class, $categorySeance);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$categorySeanceRepository->save($categorySeance, true);
return $this->redirectToRoute('app_category_seance_index', [], Response::HTTP_SEE_OTHER);
}
return $this->renderForm('category_seance/edit.html.twig', [
'category_seance' => $categorySeance,
'form' => $form,
]);
}
#[Route('/{id}', name: 'app_category_seance_delete', methods: ['POST'])]
public function delete(Request $request, CategorySeance $categorySeance, CategorySeanceRepository $categorySeanceRepository): Response
{
if ($this->isCsrfTokenValid('delete' . $categorySeance->getId(), $request->request->get('_token'))) {
$categorySeanceRepository->remove($categorySeance, true);
}
return $this->redirectToRoute('app_category_seance_index', [], Response::HTTP_SEE_OTHER);
}
*/
}