aboutsummaryrefslogtreecommitdiff
path: root/src/controller
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2026-06-16 23:52:55 +0200
committerpolo <ordipolo@gmx.fr>2026-06-16 23:52:55 +0200
commit63fb854560c2a437ebd72f3ab8b97349fd3eb61d (patch)
tree350eece664c163efaf87017f09296239d29a8595 /src/controller
parent361287c4b7f543b9ea0fc8182777a864f6f9f335 (diff)
downloadcms-main.tar.gz
cms-main.tar.bz2
cms-main.zip
séparation par rôle de ViewDirector et ViewControllerHEADmain
Diffstat (limited to 'src/controller')
-rw-r--r--src/controller/ViewController.php (renamed from src/controller/ViewDirector.php)25
1 files changed, 5 insertions, 20 deletions
diff --git a/src/controller/ViewDirector.php b/src/controller/ViewController.php
index 7c368b6..1acb19a 100644
--- a/src/controller/ViewDirector.php
+++ b/src/controller/ViewController.php
@@ -1,23 +1,16 @@
1<?php 1<?php
2// src/controller/ViewDirector.php 2// src/controller/ViewController.php
3//
4// génère le HTML avec des Builder
5 3
6declare(strict_types=1); 4declare(strict_types=1);
7 5
8use App\Entity\Node;
9use Doctrine\ORM\EntityManager; 6use Doctrine\ORM\EntityManager;
10use Symfony\Component\HttpFoundation\Request; 7use Symfony\Component\HttpFoundation\Request;
11use Symfony\Component\HttpFoundation\Response; 8use Symfony\Component\HttpFoundation\Response;
12use Symfony\Component\HttpFoundation\RedirectResponse; 9use Symfony\Component\HttpFoundation\RedirectResponse;
13 10
14class ViewDirector extends AbstractBuilder // ViewDirector est aussi le premier Builder 11class ViewController
15{ 12{
16 public Node $root_node; 13 static function getWebPage(EntityManager $entityManager, Request $request): RedirectResponse
17
18 public function __construct(){} // surcharge celui de AbstractBuilder
19
20 public function buildView(EntityManager $entityManager, Request $request): Response
21 { 14 {
22 /* 1/ 1er contrôle des paramètres */ 15 /* 1/ 1er contrôle des paramètres */
23 16
@@ -53,25 +46,17 @@ class ViewDirector extends AbstractBuilder // ViewDirector est aussi le premier
53 $model = new Model($entityManager); 46 $model = new Model($entityManager);
54 $model->makeMenuAndPaths(); 47 $model->makeMenuAndPaths();
55 $model->getWholePageData($request); 48 $model->getWholePageData($request);
56 $this->root_node = $model->getNode();
57 49
58 50
59 /* 3/ 2ème contrôle des paramètres avec les données récupérées */ 51 /* 3/ 2ème contrôle des paramètres avec les données récupérées */
60 52
61 // article non trouvé en BDD 53 // article non trouvé en BDD
62 if(CURRENT_PAGE === 'article' && !IS_ADMIN && $this->root_node->getNodeByName('main')->getAdoptedChild() === null){ 54 if(CURRENT_PAGE === 'article' && !IS_ADMIN && $model->getNode()->getNodeByName('main')->getAdoptedChild() === null){
63 return new RedirectResponse((string)new URL(['page' => $request->query->get('from') ?? ''])); 55 return new RedirectResponse((string)new URL(['page' => $request->query->get('from') ?? '']));
64 } 56 }
65 57
66 58
67 /* 4/ construction de la page avec builders et vues */ 59 /* 4/ construction de la page avec builders et vues */
68 $this->useChildrenBuilder($this->root_node); 60 return new Response((new ViewDirector)->buildHTML($model->getNode()));
69
70 if(isset($_SESSION['flash_message'])){
71 $this->html .= '<script>window.flash_message = "' . $_SESSION['flash_message'] . '";</script>';
72 unset($_SESSION['flash_message']);
73 }
74
75 return new Response($this->html);
76 } 61 }
77} \ No newline at end of file 62} \ No newline at end of file