From f477314613beb26b0ce4c61ec0b1900df1de1cb1 Mon Sep 17 00:00:00 2001 From: polo Date: Mon, 1 Sep 2025 18:52:17 +0200 Subject: =?UTF-8?q?renommage=20des=20pr=C3=A9sentations,modif=20pr=C3=A9se?= =?UTF-8?q?ntation=20des=20blocs=20et=20largeur=20min=20(donc=20nb=20de=20?= =?UTF-8?q?colonnes)=20en=20mode=20grid,=20corrections=20de=20bugs=20et=20?= =?UTF-8?q?erreurs=20404,=20le=20param=20page=5Fmodif=20n'est=20plus=20une?= =?UTF-8?q?=20action,=20l=C3=A9g=C3=A8re=20symfonyfication=20du=20routeur?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controller/ViewController.php | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'src/controller/ViewController.php') diff --git a/src/controller/ViewController.php b/src/controller/ViewController.php index 0830a5b..668fa25 100644 --- a/src/controller/ViewController.php +++ b/src/controller/ViewController.php @@ -5,16 +5,17 @@ declare(strict_types=1); +use App\Entity\Article; use App\Entity\Node; use Doctrine\ORM\EntityManager; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; -class ViewController extends AbstractBuilder +class ViewController extends AbstractBuilder // ViewController est aussi le premier Builder { static public Node $root_node; - public function __construct(){} + public function __construct(){} // surcharge celui de AbstractBuilder public function buildView(EntityManager $entityManager, Request $request): Response { @@ -25,13 +26,28 @@ class ViewController extends AbstractBuilder // mode modification d'une page activé if($_SESSION['admin'] && $request->query->has('page') - && $request->query->has('action') && $request->query->get('action') === 'modif_page' + && $request->query->has('mode') && $request->query->get('mode') === 'page_modif' && $request->query->get('page') !== 'connexion' && $request->query->get('page') !== 'article' && $request->query->get('page') !== 'nouvelle_page' && $request->query->get('page') !== 'menu_chemins'){ // les contrôles de la 2è ligne devraient utiliser un tableau MainBuilder::$modif_mode = true; } - // construction de la page + // page article: mode création et erreurs d'id + if($_SESSION['admin'] && $request->query->has('page') && $request->query->get('page') === 'article'){ + if(!$request->query->has('id')){ + return new Response($this->html, 302); + } + else{ + if($request->query->get('id')[0] === 'n'){ // mode création d'article (vérification de l'id du bloc dans ArticleController) + NewBuilder::$new_article_mode = true; + } + elseif(self::$root_node->getNodeByName('main')->getAdoptedChild() === null){ // id inconnu + return new Response($this->html, 302); + } + } + } + + //début de la construction de la page $this->useChildrenBuilder(self::$root_node); return new Response($this->html, 200); -- cgit v1.2.3