src/Controller/ContactController.php line 94
<?php
namespace App\Controller;
use App\Form\DevisType;
use App\Repository\DevisRepository;
use Symfony\Component\Mailer\Mailer;
use Symfony\Component\Mailer\Transport;
use Symfony\Bridge\Twig\Mime\TemplatedEmail;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use App\Entity\Devis;
use App\Repository\PartnerRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Doctrine\ORM\EntityManagerInterface;
use Twig\Environment;
class ContactController extends AbstractController
{
private $twig;
public function __construct(Environment $twig)
{
$this->twig = $twig;
}
#[Route('/contact', name: 'app_contact')]
public function index(Request $request, MailerInterface $mailer, EntityManagerInterface $entityManager): Response
{
$message = new Devis();
$form = $this->createForm(DevisType::class, $message);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$entityManager->persist($message);
$entityManager->flush();
$transport = Transport::fromDsn('smtp://siteweb@guardianfrance.fr:DL3FH4M8p6u4W@smtp.ionos.fr:587?auth_mode=login');
$mailer = new Mailer($transport);
$emailData = [
'firstname' => $message->getFirstName(),
'name' => $message->getName(),
'email_address' => $message->getEmail(),
'phone' => $message->getPhone(),
'society' => $message->getSociety(),
'city' => $message->getCity(),
'adresse' => $message->getAdresse(),
'zip' => $message->getZip(),
'services' => $message->getServices(),
'subject' => $message->getSubject(),
];
$email = (new TemplatedEmail())
->from('siteweb@guardianfrance.fr')
->to('contact@guardianfrance.fr')
->subject('Demande de contact depuis le Guardian France.fr')
->htmlTemplate('email/contact.html.twig')
->context(['emailData' => $emailData]);
$htmlContent = $this->twig->render('email/contact.html.twig', ['emailData' => $emailData]);
$email->html($htmlContent);
$mailer->send($email);
// Ajouter un message flash de succès
$this->addFlash('success', ' Guardian France vous répondra dans les meilleurs délais.');
return $this->redirectToRoute('app_contact');
} else {
// Ajouter un message flash d'erreur
$this->addFlash('error', 'Une erreur s\'est produite lors de l\'envoi du message.');
}
// ...
return $this->render('contact/index.html.twig', [
'controller_name' => 'ContactController',
'form' => $form->createView()
]);
}
#[Route('/devis', name: 'app_devis')]
public function devis(Request $request,PartnerRepository $partnerRepository, MailerInterface $mailer, EntityManagerInterface $entityManager,DevisRepository $DevisRepository,): Response
{
$message = new Devis();
$form = $this->createForm(DevisType::class, $message);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$entityManager->persist($message);
$entityManager->flush();
$transport = Transport::fromDsn('smtp://siteweb@guardianfrance.fr:DL3FH4M8p6u4W@smtp.ionos.fr:587?auth_mode=login');
$mailer = new Mailer($transport);
$emailData = [
'firstname' => $message->getFirstName(),
'name' => $message->getName(),
'email_address' => $message->getEmail(),
'phone' => $message->getPhone(),
'society' => $message->getSociety(),
'city' => $message->getCity(),
'adresse' => $message->getAdresse(),
'zip' => $message->getZip(),
'services' => $message->getServices(),
'subject' => $message->getSubject(),
];
$email = (new TemplatedEmail())
->from('siteweb@guardianfrance.fr')
->to('contact@guardianfrance.fr')
->subject('Demande de contact depuis le Guardian France.fr')
->htmlTemplate('email/contact.html.twig')
->context(['emailData' => $emailData]);
$htmlContent = $this->twig->render('email/contact.html.twig', ['emailData' => $emailData]);
$email->html($htmlContent);
$mailer->send($email);
// Ajouter un message flash de succès
$this->addFlash('success', ' Guardian France vous répondra dans les meilleurs délais.');
return $this->redirectToRoute('app_devis');
} else {
// Ajouter un message flash d'erreur
$this->addFlash('error', 'Une erreur s\'est produite lors de l\'envoi du message.');
}
// ...
return $this->render('contact/devis/index.html.twig', [
'controller_name' => 'ContactController',
'partners' => $partnerRepository->findAll(),
'form' => $form,
]);
}
}