From 0fa852ee4e9c3060ba7fc0daf4b08a44ea151f7f Mon Sep 17 00:00:00 2001 From: polo Date: Thu, 2 Jul 2026 00:01:31 +0200 Subject: =?UTF-8?q?entit=C3=A9=20Presentation,=20MAJ=20filtre=20ViewContro?= =?UTF-8?q?ller::SPECIAL=5FPAGES,=20table=20node=5Fdata=20non=20all=C3=A9g?= =?UTF-8?q?=C3=A9e=20pour=20l'instant?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controller/ArticleController.php | 7 ++++--- src/controller/PageManagementController.php | 12 +++++++++--- src/controller/ViewController.php | 7 ++++--- 3 files changed, 17 insertions(+), 9 deletions(-) (limited to 'src/controller') diff --git a/src/controller/ArticleController.php b/src/controller/ArticleController.php index 7019f5c..0ddb0e1 100644 --- a/src/controller/ArticleController.php +++ b/src/controller/ArticleController.php @@ -5,6 +5,7 @@ declare(strict_types=1); use App\Entity\Node; use App\Entity\Article; +use App\Entity\Presentation; use Doctrine\ORM\EntityManager; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -21,7 +22,7 @@ class ArticleController $model->findNodeById($id); $parent_block = $model->getNode(); - if(Blocks::hasPresentation($parent_block->getName())){ + if(Presentation::hasPresentation($parent_block->getName())){ $get_articles_return = $model->getNextArticles($parent_block, $request); $bulk_data = $get_articles_return[0]; @@ -44,11 +45,11 @@ class ArticleController return new JsonResponse(['success' => true, 'html' => $html, 'truncated' => $get_articles_return[1]]); } else{ - return new JsonResponse(['success' => false, 'error' => 'server side error']); + return new JsonResponse(['success' => false, 'error' => 'server side error'], JsonResponse::HTTP_INTERNAL_SERVER_ERROR); } } else{ - return new JsonResponse(['success' => false, 'error' => 'bad parameters']); + return new JsonResponse(['success' => false, 'error' => 'bad parameters'], JsonResponse::HTTP_BAD_REQUEST); } } diff --git a/src/controller/PageManagementController.php b/src/controller/PageManagementController.php index c575077..bfad474 100644 --- a/src/controller/PageManagementController.php +++ b/src/controller/PageManagementController.php @@ -7,6 +7,7 @@ use App\Entity\Page; use App\Entity\Node; use App\Entity\NodeData; use App\Entity\EmailForm; +use App\Entity\Presentation; //use App\Entity\Image; use Doctrine\ORM\EntityManager; use Symfony\Component\HttpFoundation\InputBag; @@ -131,7 +132,7 @@ class PageManagementController $main = $model->getNode(); $position = count($main->getChildren()) + 1; // position dans la fraterie - if(!in_array($request->request->get("bloc_select"), array_keys(Blocks::$blocks), true)){ // 3è param: contrôle du type + if(!in_array($request->request->get("bloc_select"), array_keys(Presentation::$blocks), true)){ // 3è param: contrôle du type // utiliser une flash error return new RedirectResponse((string)new URL(['page' => $request->query->get('page'), 'error' => 'bad_bloc_type'])); } @@ -146,7 +147,12 @@ class PageManagementController $block = new Node($request->request->get("bloc_select"), $position, $main, $page); - $DataClass = $request->request->get("bloc_select") === 'form' ? EmailForm::class : NodeData::class; // cas particulier avec bloc 'email_form' + $DataClass = match($request->request->get("bloc_select")){ + 'form' => EmailForm::class, + 'post_block', 'news_block' => Presentation::class, + 'calendar' => NodeData::class, + default => throw new InvalidArgumentException("Erreur: type de bloc inconnu"), + }; $data = new $DataClass(['title' => trim(htmlspecialchars($request->request->get("bloc_title")))], $block); // valeurs par défaut @@ -305,7 +311,7 @@ class PageManagementController $model = new Model($entityManager); $model->findNodeById($json['id']); - if(in_array($json['presentation'], array_keys(Blocks::$presentations))){ + if(in_array($json['presentation'], array_keys(Presentation::$presentations))){ $model->getNode()->getNodeData()->setPresentation($json['presentation']); $entityManager->flush(); diff --git a/src/controller/ViewController.php b/src/controller/ViewController.php index 43db6a6..d1aaee7 100644 --- a/src/controller/ViewController.php +++ b/src/controller/ViewController.php @@ -8,8 +8,9 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\RedirectResponse; -class ViewController -{ +class ViewController{ + const SPECIAL_PAGES = ['article', 'new_page', 'menu_paths', 'user_edit', 'connection', 'emails', 'maintenance']; + static function getWebPage(EntityManager $entityManager, Request $request): Response { /* 1/ 1er contrôle des paramètres */ @@ -17,7 +18,7 @@ class ViewController // mode modification d'une page if(IS_ADMIN && $request->query->has('mode') && $request->query->get('mode') === 'page_modif' - && !in_array(CURRENT_PAGE, ['article', 'new_page', 'menu_paths', 'user_edit', 'connection'])) + && !in_array(CURRENT_PAGE, self::SPECIAL_PAGES)) { MainBuilder::$modif_mode = true; } -- cgit v1.2.3