aboutsummaryrefslogtreecommitdiff
path: root/src/router.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/router.php')
-rw-r--r--src/router.php31
1 files changed, 19 insertions, 12 deletions
diff --git a/src/router.php b/src/router.php
index 773a25c..8d19e49 100644
--- a/src/router.php
+++ b/src/router.php
@@ -1,7 +1,7 @@
1<?php 1<?php
2// src/router.php 2// src/router.php
3// 3//
4/* fonctionnement du routeur 4/* fonctionnement:
5=> 1er test, méthode http: GET, POST ou autre chose 5=> 1er test, méthode http: GET, POST ou autre chose
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
@@ -13,22 +13,27 @@ $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest' requête AJAX xhs, non uti
13 13
14declare(strict_types=1); 14declare(strict_types=1);
15 15
16if($_SERVER['REQUEST_METHOD'] === 'GET'){ 16if($request->getMethod() === 'GET'){
17 // table "user" vide 17 // table "user" vide
18 if(!UserController::existUsers($entityManager)){ 18 if(!UserController::existUsers($entityManager)){
19 require '../src/view/templates/user_create.php'; 19 require AbstractBuilder::VIEWS_PATH . 'user_create.php';
20 die; 20 die;
21 } 21 }
22 22
23 // bouton déconnexion 23 // bouton déconnexion (méthode GET parce que l'utilisateur ne modifie plus de données à partir de là)
24 if($request->query->has('action') && $request->query->get('action') === 'deconnection'){ 24 if($request->query->has('action') && $request->query->get('action') === 'deconnection'){
25 UserController::disconnect($entityManager); 25 UserController::disconnect($entityManager);
26 } 26 }
27 27
28 // articles suivants
29 if($request->query->has('fetch') && $request->query->get('fetch') === 'next_articles'){
30 ArticleController::fetch($entityManager, $request);
31 }
32
28 // données du calendrier 33 // données du calendrier
29 // création du calendrier et changement de dates affichées (boutons flèches mais pas changement de vue) 34 // création du calendrier et changement de dates affichées (boutons flèches mais pas changement de vue)
30 if($_SERVER['REQUEST_METHOD'] === 'GET' && $request->query->has('action') && $request->query->get('action') === 'get_events' 35 if($request->query->has('action') && $request->query->get('action') === 'get_events'
31 && $request->query->has('start') && $request->query->has('end') && empty($_POST)) 36 && $request->query->has('start') && $request->query->has('end') && empty($request->getPayload()->all())) // getPayload ne récupère pas que des POST
32 { 37 {
33 CalendarController::getData($entityManager); 38 CalendarController::getData($entityManager);
34 } 39 }
@@ -43,7 +48,7 @@ if($_SERVER['REQUEST_METHOD'] === 'GET'){
43} 48}
44 49
45 50
46elseif($_SERVER['REQUEST_METHOD'] === 'POST'){ 51elseif($request->getMethod() === 'POST'){
47 /* -- contrôleurs appellables par tout le monde -- */ 52 /* -- contrôleurs appellables par tout le monde -- */
48 53
49 // table "user" vide 54 // table "user" vide
@@ -54,8 +59,7 @@ elseif($_SERVER['REQUEST_METHOD'] === 'POST'){
54 // requêtes JSON avec fetch() 59 // requêtes JSON avec fetch()
55 if($_SERVER['CONTENT_TYPE'] === 'application/json') 60 if($_SERVER['CONTENT_TYPE'] === 'application/json')
56 { 61 {
57 $data = file_get_contents('php://input'); 62 $json = json_decode($request->getContent(), true); // = json_decode(file_get_contents('php://input'), true);
58 $json = json_decode($data, true);
59 63
60 if(isset($_GET['action'])) 64 if(isset($_GET['action']))
61 { 65 {
@@ -195,6 +199,9 @@ elseif($_SERVER['REQUEST_METHOD'] === 'POST'){
195 elseif($request->query->get('bloc_edit') === 'change_cols_min_width'){ 199 elseif($request->query->get('bloc_edit') === 'change_cols_min_width'){
196 PageManagementController::changeColsMinWidth($entityManager, $json); 200 PageManagementController::changeColsMinWidth($entityManager, $json);
197 } 201 }
202 elseif($request->query->get('bloc_edit') === 'change_pagination_limit'){
203 PageManagementController::changePaginationLimit($entityManager, $json);
204 }
198 } 205 }
199 } 206 }
200 207
@@ -316,7 +323,7 @@ if(isset($response)){
316 header('Location: ' . new URL(['page' => !empty($_GET['from']) ? $_GET['from'] : 'accueil'])); 323 header('Location: ' . new URL(['page' => !empty($_GET['from']) ? $_GET['from'] : 'accueil']));
317 } 324 }
318 // redirection après traitement de formulaires HTTP 325 // redirection après traitement de formulaires HTTP
319 elseif($_SERVER['REQUEST_METHOD'] === 'POST' && $_SERVER['CONTENT_TYPE'] === 'application/x-www-form-urlencoded'){ 326 elseif($request->getMethod() === 'POST' && $_SERVER['CONTENT_TYPE'] === 'application/x-www-form-urlencoded'){
320 $response_data = json_decode(($response)->getContent(), true); 327 $response_data = json_decode(($response)->getContent(), true);
321 $url = new URL(['page' => !empty($_GET['from']) ? $_GET['from'] : 'accueil']); 328 $url = new URL(['page' => !empty($_GET['from']) ? $_GET['from'] : 'accueil']);
322 $url->addParams(['success' => $response_data['success'], 'message' => $response_data['message']]); 329 $url->addParams(['success' => $response_data['success'], 'message' => $response_data['message']]);
@@ -329,7 +336,7 @@ if(isset($response)){
329} 336}
330// pas utilisation de RESPONSE (cas destiné à disparaître) 337// pas utilisation de RESPONSE (cas destiné à disparaître)
331else{ 338else{
332 if($_SERVER['REQUEST_METHOD'] === 'POST' && $_SERVER['CONTENT_TYPE'] === 'application/x-www-form-urlencoded'){ 339 if($request->getMethod() === 'POST' && $_SERVER['CONTENT_TYPE'] === 'application/x-www-form-urlencoded'){
333 header("Location: " . new URL(['error' => 'erreur côté serveur'])); 340 header("Location: " . new URL(['error' => 'erreur côté serveur']));
334 } 341 }
335 else{ 342 else{
@@ -337,4 +344,4 @@ else{
337 echo "erreur côté serveur"; 344 echo "erreur côté serveur";
338 } 345 }
339} 346}
340//die; // inutile normalement \ No newline at end of file 347//die; // inutile \ No newline at end of file