<?php
namespace App\Controller;
use App\Form\ContactType;
use App\Entity\CategoryServices;
use App\Entity\Service;
use App\Entity\Team;
use App\Entity\Partenaires;
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;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\Email;
class HomeController extends AbstractController
{
/**
* @var EntityManagerInterface
*/
private $em;
public function __construct(EntityManagerInterface $em)
{
$this->em = $em;
}
/**
* @Route("/intro", name="index")
* @return Response
*/
public function index(): Response {
$catServiceRepo = $this->em->getRepository(CategoryServices::class);
$category_services = $catServiceRepo->findBy(['status' => 1]);
$podcasts = $this->em->getRepository(Service::class)->findOneBy(['slug' => 'studio-podcast']);
return $this->render('home/index-intro.html.twig', [
'category_services' => $category_services
]);
}
/**
* @Route("/", name="homepage")
* @return Response
*/
public function home(): Response {
$catServiceRepo = $this->em->getRepository(CategoryServices::class);
$category_services = $catServiceRepo->findBy(['status' => 1]);
$podcast = $this->em->getRepository(Service::class)->findOneBy(['slug' => 'studio-podcast']);
$team = $this->em->getRepository(Team::class)->findBy(['status' => 1 ]);
$partenaires = $this->em->getRepository(Partenaires::class)->findBy(['status' => 1 ]);
//dd($podcast);
return $this->render('home/index.html.twig', [
'category_services' => $category_services,
'podcast' => $podcast,
'teams' => $team,
'partenaires' => $partenaires
]);
}
/**
* @Route("/contact", name="app_contact")
* @return Response
*/
public function contact_us(Request $request, MailerInterface $mailer): Response
{
$form = $this->createForm(ContactType::class);
$form->handleRequest($request);
$sent = false;
if ($form->isSubmitted() && $form->isValid()) {
$data = $form->getData();
$email = (new Email())
->from('contact@rawstudiocompany.com')
->to('mitchconcept@gmail.com')
->subject('Nouveau message — ' . $data['fullName'])
->text(sprintf(
"De : %s (%s)\nService : %s\n\n%s",
$data['fullName'],
$data['email'],
$data['service'] ?? 'Non précisé',
$data['message']
));
$mailer->send($email);
$sent = true;
$form = $this->createForm(ContactType::class); // reset du formulaire
}
return $this->render('pages/contact.html.twig', [
'form' => $form->createView(),
'sent' => $sent,
]);
}
}