summaryrefslogtreecommitdiff
path: root/src/controller/post.php
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2025-05-07 01:11:27 +0200
committerpolo <ordipolo@gmx.fr>2025-05-07 01:11:27 +0200
commit2d8ec75f4aaf3b93fd9f6758f8dcb4f1f9f03d0c (patch)
treedfa6f5e31ed96f9ddcf9238304364e7887c26a7d /src/controller/post.php
parent5fc1a655e0271b583f3caa009524ea9d99a8bd3e (diff)
downloadcms-2d8ec75f4aaf3b93fd9f6758f8dcb4f1f9f03d0c.zip
page menu et chemins, partie5
Diffstat (limited to 'src/controller/post.php')
-rw-r--r--src/controller/post.php56
1 files changed, 50 insertions, 6 deletions
diff --git a/src/controller/post.php b/src/controller/post.php
index 66de5a0..d2e4477 100644
--- a/src/controller/post.php
+++ b/src/controller/post.php
@@ -3,15 +3,59 @@
3 3
4declare(strict_types=1); 4declare(strict_types=1);
5 5
6use App\Entity\Page;
7
6if($_SERVER['REQUEST_METHOD'] === 'POST' && $_SESSION['admin'] === true) 8if($_SERVER['REQUEST_METHOD'] === 'POST' && $_SESSION['admin'] === true)
7{ 9{
8 /* -- formulaires HTML -- */ 10 /* -- formulaires HTML classiques -- */
9 /*if(isset($_POST['from']) // page d'où vient la requête 11 if($_SERVER['CONTENT_TYPE'] === 'application/x-www-form-urlencoded')
10 && isset($_POST)) // données
11 { 12 {
12 echo "requête envoyée en validant un formulaire"; 13 // création d'une entrée de menu avec une URL
13 }*/ 14 if(isset($_POST["label_input"]) && isset($_POST["url_input"]) && isset($_POST["location"])){
15 echo $_POST["label_input"] . '<br>';
16 echo $_POST["url_input"] . '<br>';
17 echo $_POST["location"] . '<br>'; // id entrée précédente
18
19 Director::$menu_data = new Menu($entityManager);
20 $previous_page = Director::$menu_data->findPageById((int)$_POST["location"]); // (int) à cause de declare(strict_types=1);
21 $parent = $previous_page->getParent();
22
23 $page = new Page($_POST["label_input"], $_POST["url_input"], true, true, false, $previous_page->getPosition(), $parent);
24 // on indique pour la nouvelle entrée la même position que la précédente, puis addChild l'ajoute à la fin du tableau "children" avant de déclencher un tri
25 // exemple avec 2 comme position demandée: 1 2 3 4 2 devient 1 2 3 4 5 et la nouvelle entrée sera en 3è position
26 if($parent == null){
27 $parent = Director::$menu_data;
28 }
29 $parent->addChild($page); // true pour réindexer les positions en BDD
30 $parent->reindex();
31
32 $entityManager->persist($page);
33 $entityManager->flush();
34
35 header("Location: " . new URL(['page' => $_GET['from']]));
36 }
37 // suppression d'une entrée de menu avec une URL
38 elseif(isset($_POST['delete']) && isset($_POST['x']) && isset($_POST['y'])){ // 2 params x et y sont là parce qu'on a cliqué sur une image
39 Director::$menu_data = new Menu($entityManager);
40 $page = Director::$menu_data->findPageById((int)$_POST["delete"]);
41 $parent = $page->getParent();
42 if($parent == null){
43 $parent = Director::$menu_data;
44 }
45
46 $parent->removeChild($page); // suppression de $children avant de trier
47 $parent->reindex();
14 48
49 $entityManager->remove($page); // suppression en BDD
50 $entityManager->flush();
51 header("Location: " . new URL(['page' => $_GET['from']]));
52 }
53 else{
54 header("Location: " . new URL(['error' => 'paramètres inconnus']));
55 }
56 }
15 /* -- requêtes AJAX -- */ 57 /* -- requêtes AJAX -- */
16 require '../src/controller/ajax.php'; 58 else{
59 require '../src/controller/ajax.php';
60 }
17} 61}