From 895cf7a438929f74c2e11996667685245a571f2a Mon Sep 17 00:00:00 2001 From: polo Date: Sun, 10 May 2026 17:01:21 +0200 Subject: partie client de la restauration de BDD, script bin/mysqldump.php, changements permissions dossiers, renommage ViewDirector --- src/controller/MaintenanceController.php | 2 +- src/controller/ViewController.php | 71 ------------------------------ src/controller/ViewDirector.php | 74 ++++++++++++++++++++++++++++++++ 3 files changed, 75 insertions(+), 72 deletions(-) delete mode 100644 src/controller/ViewController.php create mode 100644 src/controller/ViewDirector.php (limited to 'src/controller') diff --git a/src/controller/MaintenanceController.php b/src/controller/MaintenanceController.php index fca45f1..c60ca1c 100644 --- a/src/controller/MaintenanceController.php +++ b/src/controller/MaintenanceController.php @@ -52,7 +52,7 @@ class MaintenanceController static public function getLastDump(EntityManager $entityManager): void { try{ - $file_path = Backup::mySQLdump($entityManager); + $file_path = Backup::getLastBackupName(); header('Content-Type: application/octet-stream'); // signifie fichier quelconque, du binaire quoi! header('Content-Disposition: attachment; filename="' . basename($file_path) . '"'); // pour provoquer un téléchargement et non pour afficher header('Content-Length: ' . filesize($file_path)); // peut servir côté client (barre de progression...) diff --git a/src/controller/ViewController.php b/src/controller/ViewController.php deleted file mode 100644 index cf3477c..0000000 --- a/src/controller/ViewController.php +++ /dev/null @@ -1,71 +0,0 @@ -query->has('mode') && $request->query->get('mode') === 'page_modif' - && !in_array(CURRENT_PAGE, ['article', 'new_page', 'menu_paths', 'user_edit', 'connection'])) - { - MainBuilder::$modif_mode = true; - } - // page article: mode création et erreurs d'id - if(CURRENT_PAGE === 'article'){ - if(IS_ADMIN){ - if(!$request->query->has('id')){ - return new Response($this->html, 302); - } - else{ - // mode création d'article - // l'id du bloc et 'from=' sont vérifiés dans ArticleController::editorSubmit - if($request->query->get('id')[0] === 'n' && $request->query->has('from') && !empty($request->query->get('from'))){ - NewBuilder::$new_article_mode = true; - } - } - } - elseif($request->query->get('id')[0] === 'n'){ // accès page nouvelle article interdit sans être admin - return new Response($this->html, 302); - } - } - //else // l'id dans l'URL n'a pas d'effet ailleurs - - - /* 2/ accès au modèle */ - $model = new Model($entityManager); - $model->makeMenuAndPaths(); - $model->getWholePageData($request); - self::$root_node = $model->getNode(); - - - /* 3/ 2ème contrôle des paramètres avec les données récupérées */ - - // article non trouvé en BDD - if(CURRENT_PAGE === 'article' && !IS_ADMIN && self::$root_node->getNodeByName('main')->getAdoptedChild() === null){ - return new Response($this->html, 302); - } - - - /* 4/ construction de la page avec builders et vues */ - $this->useChildrenBuilder(self::$root_node); - - return new Response($this->html, 200); - } -} \ No newline at end of file diff --git a/src/controller/ViewDirector.php b/src/controller/ViewDirector.php new file mode 100644 index 0000000..6883b73 --- /dev/null +++ b/src/controller/ViewDirector.php @@ -0,0 +1,74 @@ +query->has('mode') && $request->query->get('mode') === 'page_modif' + && !in_array(CURRENT_PAGE, ['article', 'new_page', 'menu_paths', 'user_edit', 'connection'])) + { + MainBuilder::$modif_mode = true; + } + // page article: mode création et erreurs d'id + if(CURRENT_PAGE === 'article'){ + if(IS_ADMIN){ + if(!$request->query->has('id')){ + return new Response($this->html, 302); + } + else{ + // mode création d'article + // l'id du bloc et 'from=' sont vérifiés dans ArticleController::editorSubmit + if($request->query->get('id')[0] === 'n' && $request->query->has('from') && !empty($request->query->get('from'))){ + NewBuilder::$new_article_mode = true; + } + } + } + elseif($request->query->get('id')[0] === 'n'){ // accès page nouvelle article interdit sans être admin + return new Response($this->html, 302); + } + } + //else // l'id dans l'URL n'a pas d'effet ailleurs + + + /* 2/ accès au modèle */ + $model = new Model($entityManager); + $model->makeMenuAndPaths(); + $model->getWholePageData($request); + self::$root_node = $model->getNode(); + + + /* 3/ 2ème contrôle des paramètres avec les données récupérées */ + + // article non trouvé en BDD + if(CURRENT_PAGE === 'article' && !IS_ADMIN && self::$root_node->getNodeByName('main')->getAdoptedChild() === null){ + return new Response($this->html, 302); + } + elseif(CURRENT_PAGE === 'maintenance'){ + Backup::mySQLdump($entityManager); // créer un nouveau backup + } + + + /* 4/ construction de la page avec builders et vues */ + $this->useChildrenBuilder(self::$root_node); + + return new Response($this->html, 200); + } +} \ No newline at end of file -- cgit v1.2.3