diff options
| author | polo <ordipolo@gmx.fr> | 2025-05-07 01:11:27 +0200 |
|---|---|---|
| committer | polo <ordipolo@gmx.fr> | 2025-05-07 01:11:27 +0200 |
| commit | 2d8ec75f4aaf3b93fd9f6758f8dcb4f1f9f03d0c (patch) | |
| tree | dfa6f5e31ed96f9ddcf9238304364e7887c26a7d /src/controller/post.php | |
| parent | 5fc1a655e0271b583f3caa009524ea9d99a8bd3e (diff) | |
| download | cms-2d8ec75f4aaf3b93fd9f6758f8dcb4f1f9f03d0c.tar.gz cms-2d8ec75f4aaf3b93fd9f6758f8dcb4f1f9f03d0c.tar.bz2 cms-2d8ec75f4aaf3b93fd9f6758f8dcb4f1f9f03d0c.zip | |
page menu et chemins, partie5
Diffstat (limited to 'src/controller/post.php')
| -rw-r--r-- | src/controller/post.php | 56 |
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 | ||
| 4 | declare(strict_types=1); | 4 | declare(strict_types=1); |
| 5 | 5 | ||
| 6 | use App\Entity\Page; | ||
| 7 | |||
| 6 | if($_SERVER['REQUEST_METHOD'] === 'POST' && $_SESSION['admin'] === true) | 8 | if($_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 | } |
