diff options
Diffstat (limited to 'src/controller/post.php')
-rw-r--r-- | src/controller/post.php | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/src/controller/post.php b/src/controller/post.php index d437423..631c4ad 100644 --- a/src/controller/post.php +++ b/src/controller/post.php | |||
@@ -13,9 +13,30 @@ if($_SERVER['REQUEST_METHOD'] === 'POST' && $_SESSION['admin'] === true) | |||
13 | if($_SERVER['CONTENT_TYPE'] === 'application/x-www-form-urlencoded') | 13 | if($_SERVER['CONTENT_TYPE'] === 'application/x-www-form-urlencoded') |
14 | { | 14 | { |
15 | /* -- mode Modification d'une page -- */ | 15 | /* -- mode Modification d'une page -- */ |
16 | if(isset($_POST['page_menu_path']) && $_POST['page_menu_path'] !== null | ||
17 | && isset($_POST['page_id']) && $_POST['page_id'] !== null | ||
18 | && isset($_POST['page_name_path_hidden']) && $_POST['page_name_path_hidden'] === '') | ||
19 | { | ||
20 | $director = new Director($entityManager, true); | ||
21 | $page = Director::$page_path->getLast(); | ||
22 | //$page = $entityManager->find('App\Entity\Page', $_POST['page_id']); | ||
23 | $path = htmlspecialchars($_POST['page_menu_path']); | ||
16 | 24 | ||
25 | // mise en snake_case: filtre caractères non-alphanumériques, minuscule, doublons d'underscore, trim des underscores | ||
26 | $path = trim(preg_replace('/_+/', '_', strtolower(preg_replace('/[^a-zA-Z0-9]/', '_', $path))), '_'); | ||
27 | $page->setEndOfPath($path); | ||
28 | foreach(Director::$menu_data->getChildren() as $child){ | ||
29 | if($child->getEndOfPath() === Director::$page_path->getArray()[0]->getEndOfPath()){ | ||
30 | $child->fillChildrenPagePath(); // MAJ de $page_path | ||
31 | } | ||
32 | } | ||
33 | $entityManager->flush(); | ||
34 | header("Location: " . new URL(['page' => $page->getPagePath(), 'action' => 'modif_page'])); | ||
35 | die; | ||
36 | } | ||
17 | // ajout d'un bloc dans une page | 37 | // ajout d'un bloc dans une page |
18 | if(isset($_POST['bloc_title']) && $_POST['bloc_title'] !== null && isset($_POST['bloc_select']) && $_POST['bloc_select'] !== null | 38 | elseif(isset($_POST['bloc_title']) && $_POST['bloc_title'] !== null |
39 | && isset($_POST['bloc_select']) && $_POST['bloc_select'] !== null | ||
19 | && isset($_POST['bloc_title_hidden']) && $_POST['bloc_title_hidden'] === '') // contrôle anti-robot avec input hidden | 40 | && isset($_POST['bloc_title_hidden']) && $_POST['bloc_title_hidden'] === '') // contrôle anti-robot avec input hidden |
20 | { | 41 | { |
21 | $director = new Director($entityManager, true); // on a besoin de page_path qui dépend de menu_data | 42 | $director = new Director($entityManager, true); // on a besoin de page_path qui dépend de menu_data |
@@ -39,6 +60,7 @@ if($_SERVER['REQUEST_METHOD'] === 'POST' && $_SESSION['admin'] === true) | |||
39 | $entityManager->persist($data); | 60 | $entityManager->persist($data); |
40 | $entityManager->flush(); | 61 | $entityManager->flush(); |
41 | header("Location: " . new URL(['page' => $_GET['page'], 'action' => 'modif_page'])); | 62 | header("Location: " . new URL(['page' => $_GET['page'], 'action' => 'modif_page'])); |
63 | die; | ||
42 | } | 64 | } |
43 | // suppression d'un bloc de page | 65 | // suppression d'un bloc de page |
44 | elseif(isset($_POST['delete_bloc_id']) && $_POST['delete_bloc_id'] !== null | 66 | elseif(isset($_POST['delete_bloc_id']) && $_POST['delete_bloc_id'] !== null |
@@ -62,8 +84,9 @@ if($_SERVER['REQUEST_METHOD'] === 'POST' && $_SESSION['admin'] === true) | |||
62 | $entityManager->remove($bloc); // suppression en BDD | 84 | $entityManager->remove($bloc); // suppression en BDD |
63 | $entityManager->flush(); | 85 | $entityManager->flush(); |
64 | header("Location: " . new URL(['page' => $_GET['page'], 'action' => 'modif_page'])); | 86 | header("Location: " . new URL(['page' => $_GET['page'], 'action' => 'modif_page'])); |
87 | die; | ||
65 | } | 88 | } |
66 | 89 | ||
67 | 90 | ||
68 | /* -- page Menu et chemins -- */ | 91 | /* -- page Menu et chemins -- */ |
69 | 92 | ||
@@ -91,6 +114,7 @@ if($_SERVER['REQUEST_METHOD'] === 'POST' && $_SESSION['admin'] === true) | |||
91 | $entityManager->persist($page); | 114 | $entityManager->persist($page); |
92 | $entityManager->flush(); | 115 | $entityManager->flush(); |
93 | header("Location: " . new URL(['page' => $_GET['from']])); | 116 | header("Location: " . new URL(['page' => $_GET['from']])); |
117 | die; | ||
94 | } | 118 | } |
95 | // suppression d'une entrée de menu avec une URL | 119 | // suppression d'une entrée de menu avec une URL |
96 | 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 | 120 | 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 |
@@ -107,9 +131,11 @@ if($_SERVER['REQUEST_METHOD'] === 'POST' && $_SESSION['admin'] === true) | |||
107 | $entityManager->remove($page); // suppression en BDD | 131 | $entityManager->remove($page); // suppression en BDD |
108 | $entityManager->flush(); | 132 | $entityManager->flush(); |
109 | header("Location: " . new URL(['page' => $_GET['from']])); | 133 | header("Location: " . new URL(['page' => $_GET['from']])); |
134 | die; | ||
110 | } | 135 | } |
111 | else{ | 136 | else{ |
112 | header("Location: " . new URL(['error' => 'paramètres inconnus'])); | 137 | header("Location: " . new URL(['error' => 'paramètres inconnus'])); |
138 | die; | ||
113 | } | 139 | } |
114 | } | 140 | } |
115 | 141 | ||