summaryrefslogtreecommitdiff
path: root/src/controller/ContactFormController.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/controller/ContactFormController.php')
-rw-r--r--src/controller/ContactFormController.php44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/controller/ContactFormController.php b/src/controller/ContactFormController.php
new file mode 100644
index 0000000..9d62a77
--- /dev/null
+++ b/src/controller/ContactFormController.php
@@ -0,0 +1,44 @@
1<?php
2// src/controller/ContactFormController.php
3
4declare(strict_types=1);
5
6use Doctrine\ORM\EntityManager;
7
8class ContactFormController
9{
10 static public function updateRecipient(EntityManager $entityManager, array $json): void
11 {
12 $email = htmlspecialchars(trim($json['email']));
13
14 if((filter_var($email, FILTER_VALIDATE_EMAIL) // nouvel e-mail
15 || ($json['email'] === '' && !empty(Config::$email_dest))) // e-mail par défaut
16 && isset($json['hidden']) && empty($json['hidden']))
17 {
18 $form_data = $entityManager->find('App\Entity\NodeData', $json['id']);
19 $form_data->updateData('email', $email);
20 $entityManager->persist($form_data);
21 $entityManager->flush();
22
23 echo json_encode(['success' => true]);
24 }
25 else{
26 echo json_encode(['success' => false]);
27 }
28 die;
29 }
30 static public function sendTestEmail(EntityManager $entityManager, array $json): void
31 {
32 // destinataire = e-mail par défaut dans config.ini OU choisi par l'utilisateur
33 $form_data = $entityManager->find('App\Entity\NodeData', $json['id']);
34 $recipient = $form_data->getData()['email'] ?? Config::$email_dest;
35
36 if(EmailController::send($recipient, false, 'nom du visiteur', 'adresse@du_visiteur.fr', "TEST d'un envoi d'e-mail depuis le site web")){
37 echo json_encode(['success' => true]);
38 }
39 else{
40 echo json_encode(['success' => false]);
41 }
42 die;
43 }
44} \ No newline at end of file