aboutsummaryrefslogtreecommitdiff
path: root/src/service/router.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/service/router.php')
-rw-r--r--src/service/router.php62
1 files changed, 51 insertions, 11 deletions
diff --git a/src/service/router.php b/src/service/router.php
index 98f8fd6..8ddaf7f 100644
--- a/src/service/router.php
+++ b/src/service/router.php
@@ -2,7 +2,7 @@
2// src/service/router.php 2// src/service/router.php
3// 3//
4/* fonctionnement: 4/* fonctionnement:
5=> 1er test, méthode http: GET, POST ou autre chose 5=> 1er test, méthode http GET? POST?
6=> 2ème test, type de contenu (méthode POST uniquement): 6=> 2ème test, type de contenu (méthode POST uniquement):
7"application/x-www-form-urlencoded" = formulaire 7"application/x-www-form-urlencoded" = formulaire
8"application/json" = requête AJAX avec fetch() 8"application/json" = requête AJAX avec fetch()
@@ -46,7 +46,7 @@ if($request->getMethod() === 'GET'){
46 46
47 if(IS_ADMIN === true){ 47 if(IS_ADMIN === true){
48 if($request->query->has('action') && $request->query->get('action') === 'get_mysqldump'){ 48 if($request->query->has('action') && $request->query->get('action') === 'get_mysqldump'){
49 MaintenanceController::getLastDump($entityManager); 49 MaintenanceController::getLastDump();
50 die; 50 die;
51 } 51 }
52 } 52 }
@@ -88,7 +88,6 @@ elseif($request->getMethod() === 'POST'){
88 } 88 }
89 } 89 }
90 90
91
92 if(IS_ADMIN === true) 91 if(IS_ADMIN === true)
93 { 92 {
94 /* -- requêtes AJAX -- */ 93 /* -- requêtes AJAX -- */
@@ -244,8 +243,8 @@ elseif($request->getMethod() === 'POST'){
244 } 243 }
245 } 244 }
246 245
247 // upload avec FormData 246 /* -- upload avec FormData OU formulaire HTML AVEC fichier -- */
248 elseif(strpos($_SERVER['CONTENT_TYPE'], 'multipart/form-data') !== false) 247 elseif(str_starts_with($request->headers->get('Content-Type'), 'multipart/form-data')) // = $_SERVER['CONTENT_TYPE']
249 { 248 {
250 // dans tinymce avec le plugin (bouton "insérer une image" de l'éditeur ou glisser-déposer) 249 // dans tinymce avec le plugin (bouton "insérer une image" de l'éditeur ou glisser-déposer)
251 if($request->query->has('action') && $request->query->get('action') === 'upload_image_tinymce'){ 250 if($request->query->has('action') && $request->query->get('action') === 'upload_image_tinymce'){
@@ -258,17 +257,38 @@ elseif($request->getMethod() === 'POST'){
258 elseif($request->query->has('head_foot_image')){ 257 elseif($request->query->has('head_foot_image')){
259 HeadFootController::uploadAsset($entityManager, $request->query->get('head_foot_image')); 258 HeadFootController::uploadAsset($entityManager, $request->query->get('head_foot_image'));
260 } 259 }
260
261 /* -- page Maintenance -- */
262 elseif($request->query->has('action') && $request->query->get('action') === 'restore_database'
263 && $request->request->has('hidden') && $request->get('hidden') === ''
264 && $request->files->has('uploaded_sql'))
265 {
266 $url = new URL;
267 if($request->query->has('from')){
268 $url->addParams(['page' => $request->query->get('from')]);
269 }
270
271 try{
272 MaintenanceController::downloadSQL($entityManager, $request->files->get('uploaded_sql'));
273 $url->addParams(['database_restauration' => 'successful']);
274 }
275 catch(Exception $e){
276 $url->addParams(['database_restauration' => $e->getMessage()]);
277 }
278
279 header('Location: ' . $url);
280 die;
281 }
261 } 282 }
262 283
263 // requêtes XMLHttpRequest 284 // requêtes XMLHttpRequest
264 elseif(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') 285 elseif(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')
265 { 286 {
266 //echo "requête XMLHttpRequest reçue par le serveur";
267 echo json_encode(['success' => false]); // noyer le poisson en laissant penser que le site gère les requêtes XHR 287 echo json_encode(['success' => false]); // noyer le poisson en laissant penser que le site gère les requêtes XHR
268 die; 288 die;
269 } 289 }
270 290
271 /* -- envoi formulaire HTML -- */ 291 /* -- formulaire HTML SANS fichier -- */
272 elseif($_SERVER['CONTENT_TYPE'] === 'application/x-www-form-urlencoded') 292 elseif($_SERVER['CONTENT_TYPE'] === 'application/x-www-form-urlencoded')
273 { 293 {
274 if($request->query->has('action') && $request->query->get('action') === 'delete_article' && isset($_GET['id'])){ 294 if($request->query->has('action') && $request->query->get('action') === 'delete_article' && isset($_GET['id'])){
@@ -294,7 +314,6 @@ elseif($request->getMethod() === 'POST'){
294 314
295 315
296 /* -- mode Modification d'une page -- */ 316 /* -- mode Modification d'une page -- */
297
298 // modification du chemins en snake_case 317 // modification du chemins en snake_case
299 elseif(isset($_POST['page_menu_path']) && $_POST['page_menu_path'] !== null 318 elseif(isset($_POST['page_menu_path']) && $_POST['page_menu_path'] !== null
300 && isset($_POST['page_id']) && $_POST['page_id'] !== null 319 && isset($_POST['page_id']) && $_POST['page_id'] !== null
@@ -318,7 +337,6 @@ elseif($request->getMethod() === 'POST'){
318 337
319 338
320 /* -- page Menu et chemins -- */ 339 /* -- page Menu et chemins -- */
321
322 // création d'une entrée de menu avec une URL 340 // création d'une entrée de menu avec une URL
323 elseif(isset($_POST["label_input"]) && isset($_POST["url_input"]) && isset($_POST["location"])){ 341 elseif(isset($_POST["label_input"]) && isset($_POST["url_input"]) && isset($_POST["location"])){
324 MenuAndPathsController::newUrlMenuEntry($entityManager); 342 MenuAndPathsController::newUrlMenuEntry($entityManager);
@@ -339,12 +357,35 @@ elseif($request->getMethod() === 'POST'){
339 UserController::updatePassword($entityManager); 357 UserController::updatePassword($entityManager);
340 } 358 }
341 359
360 /* -- page Maintenance -- */
361 elseif($request->query->has('action') && $request->query->get('action') === 'restore_database'
362 && $request->request->has('hidden') && $request->get('hidden') === ''
363 && $request->request->has('selected_sql'))
364 {
365 $url = new URL;
366 if($request->query->has('from')){
367 $url->addParams(['page' => $request->query->get('from')]);
368 }
369
370 try{
371 MaintenanceController::handleBackupSelection($entityManager, $request->request->get('selected_sql'));
372 $url->addParams(['database_restauration' => 'successful']);
373 }
374 catch(Exception $e){
375 $url->addParams(['database_restauration' => $e->getMessage()]);
376 }
377
378 header('Location: ' . $url);
379 die;
380 }
381
342 // redirection page d'accueil 382 // redirection page d'accueil
343 else{ 383 else{
344 header("Location: " . new URL(['error' => 'paramètres inconnus'])); 384 header("Location: " . new URL(['error' => 'paramètres inconnus']));
345 die; 385 die;
346 } 386 }
347 } 387 }
388
348 // POST admin ne matchant pas 389 // POST admin ne matchant pas
349 else{ 390 else{
350 echo json_encode(['success' => false]); 391 echo json_encode(['success' => false]);
@@ -393,5 +434,4 @@ else{
393 http_response_code(500); 434 http_response_code(500);
394 echo "erreur côté serveur"; 435 echo "erreur côté serveur";
395 } 436 }
396} 437} \ No newline at end of file
397//die; // inutile \ No newline at end of file