src/Controller/DefaultController.php line 26
<?phpnamespace App\Controller;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Routing\Annotation\Route;use App\Entity\Account;use App\Form\ContactSupportType;use Doctrine\Persistence\ManagerRegistry;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\Mailer\MailerInterface;use Symfony\Component\Mime\Email;use Symfony\Contracts\Translation\TranslatorInterface;use Ntl\PaymentBundle\Entity\OnlinePaymentOrder;/*** Main controller.*/class DefaultController extends AbstractController{/*** Index page.*/#[Route('/', name: 'app_index', methods: ['GET', 'HEAD'])]public function index(): Response{return $this->render('default/index.html.twig');}/*** Payment page*/#[Route('/{id}', name: 'app_payment', condition: "params['id'] matches '/^[0-9a-fA-F]{30}$/'", methods: ['GET', 'HEAD'])]public function payment($id){return $this->forward('App\Controller\PaymentController::paymentOrder', ["id" => $id]);}/*** Support contact form*/#[Route('/contact/support', name: 'contact_support', methods: ['GET', 'HEAD', 'POST'])]public function contactSupport(ManagerRegistry $doctrine, Request $request, TranslatorInterface $translator, MailerInterface $mailer): Response{$entityManager = $doctrine->getManager();$form = $this->createForm(ContactSupportType::class, null, ['force_subject' => $request->get("subject"),'action' => $this->generateUrl($request->attributes->get('_route'), ["subject" => $request->get("subject")]),'custom_message' => $translator->trans("msg.support.custom_message", [], "account"),]);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$data = $form->getData();try {$email = (new Email())->to(...$this->getParameter("support_mailing_list"))->subject($data["subject"])->text($data["message"] . "\n Expéditeur: " . $data["email"]);// using the default transport$email->getHeaders()->addTextHeader('X-Transport', 'default');$mailer->send($email);return $this->json(['result' => true,'type' => "info",'message' => $translator->trans("msg.support.message_sent.title", [], $entityManager->getClassMetadata(Account::class)->getTableName())]);} catch (\Exception $exc) {return $this->json(['result' => true,'type' => "warning",'message' => $translator->trans("msg.support.message_sent_error.title", [], $entityManager->getClassMetadata(Account::class)->getTableName()) . " :: " . $exc->getMessage()]);}}return $this->render('default/form/form.html.twig', ['form' => $form->createView()]);}#[Route('/ipn', name: '_ipn', methods: ['GET', 'POST'])]public function paymentIpn(){return $this->forward('App\Controller\PaymentController::paymentIpn');}}