diff options
| author | polo <ordipolo@gmx.fr> | 2025-06-30 17:22:26 +0200 |
|---|---|---|
| committer | polo <ordipolo@gmx.fr> | 2025-06-30 17:22:26 +0200 |
| commit | ea3eaf84c6de3f96d6bb73e817147f8571fd6c1f (patch) | |
| tree | a1a27445fd758c16bbb15baa1830118a4f01eca1 | |
| parent | ef60a4bd581ec9fb85384c6a262b499373a37d67 (diff) | |
| download | cms-ea3eaf84c6de3f96d6bb73e817147f8571fd6c1f.tar.gz cms-ea3eaf84c6de3f96d6bb73e817147f8571fd6c1f.tar.bz2 cms-ea3eaf84c6de3f96d6bb73e817147f8571fd6c1f.zip | |
formulaire de contact 2
| -rw-r--r-- | public/css/body.css | 4 | ||||
| -rw-r--r-- | public/css/tinymce.css | 4 | ||||
| -rw-r--r-- | public/js/form.js | 15 | ||||
| -rw-r--r-- | src/controller/ajax.php | 18 | ||||
| -rw-r--r-- | src/model/entities/Node.php | 2 | ||||
| -rw-r--r-- | src/view/FormBuilder.php | 23 | ||||
| -rw-r--r-- | src/view/templates/form.php | 2 |
7 files changed, 46 insertions, 22 deletions
diff --git a/public/css/body.css b/public/css/body.css index a2b099a..eb198e6 100644 --- a/public/css/body.css +++ b/public/css/body.css | |||
| @@ -7,6 +7,10 @@ body | |||
| 7 | background-color: #0cceec; | 7 | background-color: #0cceec; |
| 8 | } | 8 | } |
| 9 | 9 | ||
| 10 | .hidden{ | ||
| 11 | display: none; | ||
| 12 | } | ||
| 13 | |||
| 10 | #bloc_page | 14 | #bloc_page |
| 11 | {} | 15 | {} |
| 12 | 16 | ||
diff --git a/public/css/tinymce.css b/public/css/tinymce.css index 55639e0..1a99de9 100644 --- a/public/css/tinymce.css +++ b/public/css/tinymce.css | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | .tox-promotion{ | 1 | .tox-promotion{ |
| 2 | display: none; | 2 | display: none; |
| 3 | } | 3 | } |
| 4 | .hidden{ | 4 | /*.hidden{ |
| 5 | display: none; | 5 | display: none; |
| 6 | } \ No newline at end of file | 6 | }*/ \ No newline at end of file |
diff --git a/public/js/form.js b/public/js/form.js index 6386ea8..1752f55 100644 --- a/public/js/form.js +++ b/public/js/form.js | |||
| @@ -1,24 +1,23 @@ | |||
| 1 | //function sendMessage(){} | 1 | //function sendMessage(){} |
| 2 | 2 | ||
| 3 | function changeRecipient(){ | 3 | function changeRecipient(id){ |
| 4 | const email = document.getElementById('recipient').value; | 4 | const email = document.getElementById('recipient').value; |
| 5 | const id_form = ''; | 5 | const warning = document.querySelector('.no_recipient_warning'); |
| 6 | 6 | ||
| 7 | fetch('index.php?action=recipient_email', { | 7 | fetch('index.php?action=recipient_email', { |
| 8 | method: 'POST', | 8 | method: 'POST', |
| 9 | headers: { | 9 | headers: { |
| 10 | 'Content-Type': 'application/json' | 10 | 'Content-Type': 'application/json' |
| 11 | }, | 11 | }, |
| 12 | body: JSON.stringify({ id_form: id_form, email: email }) | 12 | body: JSON.stringify({ id: id, email: email }) |
| 13 | }) | 13 | }) |
| 14 | .then(response => response.json()) | 14 | .then(response => response.json()) |
| 15 | .then(data => { | 15 | .then(data => { |
| 16 | if(data.success) | 16 | if(data.success){ |
| 17 | { | 17 | warning.classList.add('hidden'); |
| 18 | toastNotify('Adresse e-mail de destination modifiée'); | 18 | toastNotify('Adresse e-mail de destination modifiée'); |
| 19 | } | 19 | } |
| 20 | else { | 20 | else{ |
| 21 | |||
| 22 | console.error('Erreur: echec de la modification de l\'adresse e-mail de destination'); | 21 | console.error('Erreur: echec de la modification de l\'adresse e-mail de destination'); |
| 23 | } | 22 | } |
| 24 | }) | 23 | }) |
diff --git a/src/controller/ajax.php b/src/controller/ajax.php index a462921..ae43b75 100644 --- a/src/controller/ajax.php +++ b/src/controller/ajax.php | |||
| @@ -353,6 +353,24 @@ if($_SERVER['CONTENT_TYPE'] === 'application/json'){ | |||
| 353 | echo json_encode(['success' => true]); | 353 | echo json_encode(['success' => true]); |
| 354 | die; | 354 | die; |
| 355 | } | 355 | } |
| 356 | |||
| 357 | // config formulaire | ||
| 358 | elseif($_GET['action'] === 'recipient_email'){ | ||
| 359 | $form_data = $entityManager->find('App\Entity\NodeData', $json['id']); | ||
| 360 | $email = htmlspecialchars(trim($json['email'])); | ||
| 361 | |||
| 362 | if(filter_var($email, FILTER_VALIDATE_EMAIL)){ | ||
| 363 | $form_data->updateData('email', $json['email']); | ||
| 364 | $entityManager->persist($form_data); | ||
| 365 | $entityManager->flush(); | ||
| 366 | echo json_encode(['success' => true]); | ||
| 367 | die; | ||
| 368 | } | ||
| 369 | else{ | ||
| 370 | echo json_encode(['success' => false]); | ||
| 371 | die; | ||
| 372 | } | ||
| 373 | } | ||
| 356 | } | 374 | } |
| 357 | 375 | ||
| 358 | 376 | ||
diff --git a/src/model/entities/Node.php b/src/model/entities/Node.php index c4d0830..93363d3 100644 --- a/src/model/entities/Node.php +++ b/src/model/entities/Node.php | |||
| @@ -56,7 +56,7 @@ class Node | |||
| 56 | 56 | ||
| 57 | private array $children = []; // tableau de Node | 57 | private array $children = []; // tableau de Node |
| 58 | private ?self $adopted = null; // = "new" est un enfant de "main" lorsque la page est "article" | 58 | private ?self $adopted = null; // = "new" est un enfant de "main" lorsque la page est "article" |
| 59 | static private array $default_attributes = ['css_array' => ['body', 'head', 'nav', 'foot', 'calendar'],'js_array' => ['main']]; | 59 | static private array $default_attributes = ['css_array' => ['body', 'head', 'nav', 'foot'],'js_array' => ['main']]; |
| 60 | 60 | ||
| 61 | public function __construct(string $name = '', ?string $article_timestamp = null, array $attributes = [], int $position = 0, ?self $parent = null, ?Page $page = null, ?Article $article = null) | 61 | public function __construct(string $name = '', ?string $article_timestamp = null, array $attributes = [], int $position = 0, ?self $parent = null, ?Page $page = null, ?Article $article = null) |
| 62 | { | 62 | { |
diff --git a/src/view/FormBuilder.php b/src/view/FormBuilder.php index b3a96f3..5f8545c 100644 --- a/src/view/FormBuilder.php +++ b/src/view/FormBuilder.php | |||
| @@ -23,25 +23,28 @@ class FormBuilder extends AbstractBuilder | |||
| 23 | $captcha = new Captcha; | 23 | $captcha = new Captcha; |
| 24 | $_SESSION['captcha'] = $captcha->getSolution(); | 24 | $_SESSION['captcha'] = $captcha->getSolution(); |
| 25 | 25 | ||
| 26 | $no_recipient_warning = ''; | 26 | $recipient_found = false; |
| 27 | if(isset($email)){ | ||
| 28 | $recipient_found = true; | ||
| 29 | } | ||
| 30 | else{ | ||
| 31 | $email = ''; | ||
| 32 | } | ||
| 33 | |||
| 27 | $admin_content = ''; | 34 | $admin_content = ''; |
| 28 | if($_SESSION['admin']) | 35 | if($_SESSION['admin']) |
| 29 | { | 36 | { |
| 30 | $admin_content = '<script src="js/form.js"></script> | 37 | $admin_content = '<script src="js/form.js"></script> |
| 31 | <h3>Configuration du formulaire</h3> | 38 | <h3>Configuration du formulaire</h3> |
| 32 | <div class="admin_form"> | 39 | <div class="admin_form"> |
| 33 | <label for="recipient">E-mail du destinataire</label> | 40 | <label for="recipient">E-mail de destination</label> |
| 34 | <input id="recipient" type="email" name="recipient" placeholder="mon-adresse@email.fr" value=""> | 41 | <input id="recipient" type="email" name="recipient" placeholder="mon-adresse@email.fr" value="' . $email . '"> |
| 35 | <button onclick="changeRecipient()">Valider</button> | 42 | <button onclick="changeRecipient(' . $node->getNodeData()->getId() . ')">Valider</button> |
| 36 | </div>'; | 43 | </div>'; |
| 37 | } | 44 | } |
| 38 | |||
| 39 | $recipient_found = false; | ||
| 40 | // recherche BDD | ||
| 41 | 45 | ||
| 42 | if(!$recipient_found){ // vérifier qu'une adresse de destination est bien configurée | 46 | // vérifier qu'une adresse de destination est bien configurée |
| 43 | $no_recipient_warning = '<p class="no_recipient_warning">Aucune adresse de destination n\'a été configurée, envoi d\'e-mail impossible!</p>'; | 47 | $no_recipient_warning = '<p class="no_recipient_warning ' . ($recipient_found ? 'hidden' : '') . '">Aucune adresse de destination n\'a été configurée, envoi d\'e-mail impossible!</p>'; |
| 44 | } | ||
| 45 | 48 | ||
| 46 | ob_start(); | 49 | ob_start(); |
| 47 | require $viewFile; | 50 | require $viewFile; |
diff --git a/src/view/templates/form.php b/src/view/templates/form.php index 97d53d4..0c44bf8 100644 --- a/src/view/templates/form.php +++ b/src/view/templates/form.php | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | <h3><?= $title ?></h3> | 4 | <h3><?= $title ?></h3> |
| 5 | <?= $no_recipient_warning ?> | 5 | <?= $no_recipient_warning ?> |
| 6 | <form method="post" action="<?= $action_url ?>"> | 6 | <form method="post" action="<?= $action_url ?>"> |
| 7 | <label for="email">Adresse e-mail</label> | 7 | <label for="email">Votre e-mail</label> |
| 8 | <input type="email" name="email" placeholder="mon-adresse@email.fr" value="" required> | 8 | <input type="email" name="email" placeholder="mon-adresse@email.fr" value="" required> |
| 9 | 9 | ||
| 10 | <label for="subject">Objet</label> | 10 | <label for="subject">Objet</label> |
