src/Controller/FrontController.php line 67
<?php
namespace App\Controller;
use App\Entity\Activity;
use App\Entity\Contact;
use App\Entity\Customer;
use App\Entity\Emplacement;
use App\Entity\Sector;
use App\Form\ActivityType;
use App\Form\ContactType;
use App\Form\CustomerType;
use App\Form\EmplacementType;
use App\Form\SectorType;
use App\Repository\ActivityRepository;
use App\Repository\ContactRepository;
use App\Repository\CustomerRepository;
use App\Repository\EmplacementRepository;
use App\Repository\SectorRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class FrontController extends AbstractController
{
#[Route('/', name: 'homepage')]
public function homepage(): Response
{
return $this->render('front/homepage.html.twig', [
'page_title' => 'CreaCard',
]);
}
#[Route('/clients', name: 'customer_index', methods: ['GET'])]
public function customer_index(CustomerRepository $customerRepository): Response
{
return $this->render('front/customer_index.html.twig', [
'customers' => $customerRepository->findAll(),
'page_title' => 'Clients',
]);
}
#[Route('/clients/{activity}', name: 'customer_index_activity', methods: ['GET'])]
public function customer_index_activity(ActivityRepository $activityRepository, CustomerRepository $customerRepository, string $activity): Response
{
$activity = $activityRepository->findOneBy(['slug' => $activity]);
$customers = $customerRepository->findBy(['activity' => $activity]);
return $this->render('front/customer_index_activity.html.twig', [
'customers' => $customers,
'page_title' => $activity->getName(),
'bg_color' => $activity->getSlug(),
]);
}
#[Route('/emplacements', name: 'emplacement_index', methods: ['GET'])]
public function emplacement_index(EmplacementRepository $emplacementRepository): Response
{
return $this->render('front/emplacement_index.html.twig', [
'emplacements' => $emplacementRepository->findAll(),
'page_title' => 'Emplacements',
]);
}
#[Route('/emplacements/{secteur}', name: 'emplacement_index_sector', methods: ['GET'])]
public function emplacement_index_sector(SectorRepository $sectorRepository, EmplacementRepository $emplacementRepository, string $secteur): Response
{
$secteur = $sectorRepository->findOneBy(['slug' => $secteur]);
$emplacements = $emplacementRepository->findBy(['secteur' => $secteur]);
return $this->render('front/emplacement_index_sector.html.twig', [
'emplacements' => $emplacements,
'page_title' => $secteur->getName(),
'page_slug' => $secteur->getSlug(),
]);
}
#[Route('/emplacements/{secteur}/{slug}', name: 'emplacement', methods: ['GET'])]
public function emplacement(string $secteur, string $slug, Request $request, EmplacementRepository $emplacementRepository, SectorRepository $sectorRepository): Response
{
$emplacement = $emplacementRepository->findOneBy([
'slug' => $slug,
'secteur' => $sectorRepository->findOneBy(['slug' => $secteur]),
]);
if (!$emplacement) {
throw $this->createNotFoundException('L\'emplacement n\'existe pas');
}
return $this->render('front/emplacement.html.twig', [
'emplacement' => $emplacement,
'page_title' => $emplacement->getName(),
]);
}
#[Route('/contact', name: 'contact', methods: ['GET', 'POST'])]
public function admin_contact_new(Request $request, ContactRepository $contactRepository): Response
{
$contact = new Contact();
$form = $this->createForm(ContactType::class, $contact);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$contact->setCreatedAt(new \DateTimeImmutable());
$contactRepository->save($contact, true);
return $this->redirectToRoute('homepage', [], Response::HTTP_SEE_OTHER);
}
return $this->renderForm('front/contact.html.twig', [
'contact' => $contact,
'form' => $form,
'page_title' => 'nous contacter',
]);
}
}