aboutsummaryrefslogtreecommitdiff
path: root/src/router.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/router.php')
-rw-r--r--src/router.php149
1 files changed, 83 insertions, 66 deletions
diff --git a/src/router.php b/src/router.php
index 8aa0aa9..92dccb6 100644
--- a/src/router.php
+++ b/src/router.php
@@ -39,7 +39,7 @@ if($_SERVER['REQUEST_METHOD'] === 'GET'){
39 } 39 }
40 40
41 // construction d'une page 41 // construction d'une page
42 $response = (new ViewController)->buildView($entityManager, $request); 42 $response = (new ViewController)->buildView($entityManager, $request); // utilise Director
43} 43}
44 44
45 45
@@ -87,25 +87,19 @@ elseif($_SERVER['REQUEST_METHOD'] === 'POST'){
87 $data = file_get_contents('php://input'); 87 $data = file_get_contents('php://input');
88 $json = json_decode($data, true); 88 $json = json_decode($data, true);
89 89
90 if(isset($_GET['action'])) 90 if($request->query->has('action'))
91 { 91 {
92 /* -- manipulation des articles -- */ 92 /* -- manipulation des articles -- */
93 if($_GET['action'] === 'editor_submit' && isset($json['id']) && isset($json['content'])) 93 if($_GET['action'] === 'editor_submit' && isset($json['id']) && isset($json['content'])){
94 {
95 ArticleController::editorSubmit($entityManager, $json); 94 ArticleController::editorSubmit($entityManager, $json);
96 } 95 }
97 elseif($_GET['action'] === 'delete_article' && isset($json['id'])){ 96 elseif($_GET['action'] === 'delete_article' && isset($json['id'])){
98 $response = ArticleController::deleteArticle($entityManager, $json); // version AJAX 97 $response = ArticleController::deleteArticle($entityManager, $json); // version AJAX
99 $response->send();
100 die;
101 } 98 }
102 // inversion de la position de deux noeuds 99 elseif($_GET['action'] === 'switch_positions' && isset($json['id1']) && isset($json['id2'])){
103 elseif($_GET['action'] === 'switch_positions' && isset($json['id1']) && isset($json['id2']))
104 {
105 ArticleController::switchPositions($entityManager, $json); 100 ArticleController::switchPositions($entityManager, $json);
106 } 101 }
107 elseif($_GET['action'] === 'date_submit' && isset($json['id']) && isset($json['date'])) 102 elseif($_GET['action'] === 'date_submit' && isset($json['id']) && isset($json['date'])){
108 {
109 ArticleController::dateSubmit($entityManager, $json); 103 ArticleController::dateSubmit($entityManager, $json);
110 } 104 }
111 105
@@ -116,29 +110,54 @@ elseif($_SERVER['REQUEST_METHOD'] === 'POST'){
116 elseif($_GET['action'] === 'test_email'){ 110 elseif($_GET['action'] === 'test_email'){
117 ContactFormController::sendTestEmail($entityManager, $json); 111 ContactFormController::sendTestEmail($entityManager, $json);
118 } 112 }
113
114
115 /* -- upload d'image dans tinymce par copier-coller -- */
116 // collage de HTML contenant une ou plusieurs balises <img>
117 elseif($request->query->get('action') === 'upload_image_url'){
118 ImageUploadController::uploadImageHtml();
119 }
120 // collage d'une image (code base64 dans le presse-papier) non encapsulée dans du HTML
121 elseif($request->query->get('action') === 'upload_image_base64'){
122 ImageUploadController::uploadImageBase64();
123 }
124
125
126 /* -- requêtes spécifiques au calendrier -- */
127 elseif($request->query->get('action') === 'new_event'){
128 CalendarController::newEvent($json, $entityManager);
129 }
130 elseif($request->query->get('action') === 'update_event'){
131 CalendarController::updateEvent($json, $entityManager);
132 }
133 elseif($request->query->get('action') === 'remove_event'){
134 CalendarController::removeEvent($json, $entityManager);
135 }
136 else{
137 echo json_encode(['success' => false]);
138 die;
139 }
119 } 140 }
120 141
142
121 /* -- page Menu et chemins -- */ 143 /* -- page Menu et chemins -- */
122 elseif(isset($_GET['menu_edit'])) 144 elseif(isset($_GET['menu_edit']))
123 { 145 {
124 // récupération des données (serait peut-être mieux dans la classe) 146 // ne suit pas la règle, faire ça dans un contrôleur
125 Director::$menu_data = new Menu($entityManager); 147 Director::$menu_data = new Menu($entityManager); // récupération des données
126 148
127 // flèche gauche <=: position = position du parent + 1, parent = grand-parent, recalculer les positions 149 // flèche gauche <=: position = position du parent + 1, parent = grand-parent, recalculer les positions
128 if($_GET['menu_edit'] === 'move_one_level_up' && isset($json['id'])){ 150 if($_GET['menu_edit'] === 'move_one_level_up' && isset($json['id'])){
129 MenuAndPathsController::MoveOneLevelUp($entityManager, $json); 151 MenuAndPathsController::MoveOneLevelUp($entityManager, $json);
130 } 152 }
131
132 // flèche droite =>: position = nombre d'éléments de la fraterie + 1, l'élément précédent devient le parent 153 // flèche droite =>: position = nombre d'éléments de la fraterie + 1, l'élément précédent devient le parent
133 if($_GET['menu_edit'] === 'move_one_level_down' && isset($json['id'])){ 154 elseif($_GET['menu_edit'] === 'move_one_level_down' && isset($json['id'])){
134 MenuAndPathsController::MoveOneLevelDown($entityManager, $json); 155 MenuAndPathsController::MoveOneLevelDown($entityManager, $json);
135 } 156 }
136 157 elseif($_GET['menu_edit'] === 'switch_positions' && isset($json['id1']) && isset($json['id2'])){
137 if($_GET['menu_edit'] === 'switch_positions' && isset($json['id1']) && isset($json['id2'])){
138 MenuAndPathsController::switchPositions($entityManager, $json); 158 MenuAndPathsController::switchPositions($entityManager, $json);
139 } 159 }
140 160 elseif($_GET['menu_edit'] === 'displayInMenu' && isset($json['id']) && isset($json['checked'])){
141 if($_GET['menu_edit'] === 'displayInMenu' && isset($json['id']) && isset($json['checked'])){
142 MenuAndPathsController::displayInMenu($entityManager, $json); 161 MenuAndPathsController::displayInMenu($entityManager, $json);
143 } 162 }
144 } 163 }
@@ -161,45 +180,18 @@ elseif($_SERVER['REQUEST_METHOD'] === 'POST'){
161 elseif($request->query->has('bloc_edit')) 180 elseif($request->query->has('bloc_edit'))
162 { 181 {
163 // renommage d'un bloc 182 // renommage d'un bloc
164 if($request->query->get('bloc_edit') === 'rename_page_bloc') 183 if($request->query->get('bloc_edit') === 'rename_page_bloc'){
165 {
166 PageManagementController::renameBloc($entityManager, $json); 184 PageManagementController::renameBloc($entityManager, $json);
167 } 185 }
168 // inversion des positions de deux blocs 186 // inversion des positions de deux blocs
169 elseif($request->query->get('bloc_edit') === 'switch_blocs_positions') 187 elseif($request->query->get('bloc_edit') === 'switch_blocs_positions'){
170 {
171 PageManagementController::SwitchBlocsPositions($entityManager, $json); 188 PageManagementController::SwitchBlocsPositions($entityManager, $json);
172 } 189 }
173 } 190 }
174
175 /* -- upload d'image dans tinymce par copier-coller -- */
176 // collage de HTML contenant une ou plusieurs balises <img>
177 if($request->query->has('action') && $request->query->get('action') == 'upload_image_html'){
178 ImageUploadController::uploadImageHtml();
179 }
180 // collage d'une image (code base64 dans le presse-papier) non encapsulée dans du HTML
181 elseif($request->query->has('action') && $request->query->get('action') == 'upload_image_base64'){
182 ImageUploadController::uploadImageBase64();
183 }
184
185 /* -- requêtes spécifiques au calendrier -- */
186 if($request->query->get('action') === 'new_event'){
187 CalendarController::newEvent($json, $entityManager);
188 }
189 elseif($request->query->get('action') === 'update_event'){
190 CalendarController::updateEvent($json, $entityManager);
191 }
192 elseif($request->query->get('action') === 'remove_event'){
193 CalendarController::removeEvent($json, $entityManager);
194 }
195 else{
196 echo json_encode(['success' => false]);
197 }
198 die;
199 } 191 }
200 192
201 // upload d'image dans tinymce avec le plugin (bouton "insérer une image" de l'éditeur) 193 // upload d'image dans tinymce avec le plugin (bouton "insérer une image" de l'éditeur)
202 elseif(strpos($_SERVER['CONTENT_TYPE'], 'multipart/form-data') !== false && $request->query->has('action') && $request->query->get('action') === 'upload_image') 194 elseif(strpos($_SERVER['CONTENT_TYPE'], 'multipart/form-data') !== false && $request->query->has('action') && $request->query->get('action') === 'upload_image_tinymce')
203 { 195 {
204 ImageUploadController::imageUploadTinyMce(); 196 ImageUploadController::imageUploadTinyMce();
205 } 197 }
@@ -207,7 +199,7 @@ elseif($_SERVER['REQUEST_METHOD'] === 'POST'){
207 elseif(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') 199 elseif(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')
208 { 200 {
209 //echo "requête XMLHttpRequest reçue par le serveur"; 201 //echo "requête XMLHttpRequest reçue par le serveur";
210 echo json_encode(['success' => false]); // ça marche mais ça marche pas... 202 echo json_encode(['success' => false]); // noyer le poisson en laissant penser que le site gère les requêtes XHR
211 die; 203 die;
212 } 204 }
213 205
@@ -215,14 +207,7 @@ elseif($_SERVER['REQUEST_METHOD'] === 'POST'){
215 elseif($_SERVER['CONTENT_TYPE'] === 'application/x-www-form-urlencoded') 207 elseif($_SERVER['CONTENT_TYPE'] === 'application/x-www-form-urlencoded')
216 { 208 {
217 if($_GET['action'] === 'delete_article' && isset($_GET['id'])){ 209 if($_GET['action'] === 'delete_article' && isset($_GET['id'])){
218 $response = json_decode(ArticleController::deleteArticle($entityManager, $_GET)->getContent(), true); // version formulaire 210 $response = ArticleController::deleteArticle($entityManager, $_GET); // version formulaire
219 $url = new URL;
220 if(isset($_GET['from'])){
221 $url->addParams(['page' => $_GET['from']]);
222 }
223 $url->addParams(['success' => $response['success'], 'message' => $response['message']]);
224 header('Location: ' . $url);
225 die;
226 } 211 }
227 212
228 /* -- nouvelle page -- */ 213 /* -- nouvelle page -- */
@@ -242,6 +227,7 @@ elseif($_SERVER['REQUEST_METHOD'] === 'POST'){
242 PageManagementController::deletePage($entityManager); 227 PageManagementController::deletePage($entityManager);
243 } 228 }
244 229
230
245 /* -- mode Modification d'une page -- */ 231 /* -- mode Modification d'une page -- */
246 232
247 // modification du chemins en snake_case 233 // modification du chemins en snake_case
@@ -294,20 +280,51 @@ elseif($_SERVER['REQUEST_METHOD'] === 'POST'){
294 die; 280 die;
295 } 281 }
296 } 282 }
283 // POST admin ne matchant pas
284 else{
285 echo json_encode(['success' => false]);
286 die;
287 }
288 }
289 // POST non admin ne matchant pas
290 else{
291 echo json_encode(['success' => false]);
292 die;
297 } 293 }
298
299 // rien ne match
300 header("Location: " . new URL);
301 die;
302} 294}
303 295
304 296// méthode inconnue
305else{ 297else{
306 header("Location: " . new URL(['error' => 'tu fais quoi là mec?'])); 298 header("Location: " . new URL(['error' => 'tu fais quoi là mec?']));
307 die; 299 die;
308} 300}
309 301
310// enlever le test isset à terme 302
303
304/* -- utilisation de la réponse -- */
311if(isset($response)){ 305if(isset($response)){
312 $response->send(); 306 if($_SERVER['REQUEST_METHOD'] === 'POST' && $_SERVER['CONTENT_TYPE'] === 'application/x-www-form-urlencoded')
313} \ No newline at end of file 307 {
308 $response_data = json_decode(($response)->getContent(), true);
309 $url = new URL;
310 if(isset($_GET['from'])){
311 $url->addParams(['page' => $_GET['from']]);
312 }
313 $url->addParams(['success' => $response_data['success'], 'message' => $response_data['message']]);
314 header('Location: ' . $url);
315 }
316 else{
317 $response->send();
318 }
319}
320else{
321 if($_SERVER['REQUEST_METHOD'] === 'POST' && $_SERVER['CONTENT_TYPE'] === 'application/x-www-form-urlencoded')
322 {
323 header("Location: " . new URL(['error' => 'erreur côté serveur']));
324 }
325 else{
326 http_response_code(500);
327 echo "erreur côté serveur";
328 }
329}
330//die; // inutile normalement \ No newline at end of file