diff options
| author | polo <ordipolo@gmx.fr> | 2026-06-16 23:52:55 +0200 |
|---|---|---|
| committer | polo <ordipolo@gmx.fr> | 2026-06-16 23:52:55 +0200 |
| commit | 63fb854560c2a437ebd72f3ab8b97349fd3eb61d (patch) | |
| tree | 350eece664c163efaf87017f09296239d29a8595 /src/controller | |
| parent | 361287c4b7f543b9ea0fc8182777a864f6f9f335 (diff) | |
| download | cms-63fb854560c2a437ebd72f3ab8b97349fd3eb61d.tar.gz cms-63fb854560c2a437ebd72f3ab8b97349fd3eb61d.tar.bz2 cms-63fb854560c2a437ebd72f3ab8b97349fd3eb61d.zip | |
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 | ||
| 6 | declare(strict_types=1); | 4 | declare(strict_types=1); |
| 7 | 5 | ||
| 8 | use App\Entity\Node; | ||
| 9 | use Doctrine\ORM\EntityManager; | 6 | use Doctrine\ORM\EntityManager; |
| 10 | use Symfony\Component\HttpFoundation\Request; | 7 | use Symfony\Component\HttpFoundation\Request; |
| 11 | use Symfony\Component\HttpFoundation\Response; | 8 | use Symfony\Component\HttpFoundation\Response; |
| 12 | use Symfony\Component\HttpFoundation\RedirectResponse; | 9 | use Symfony\Component\HttpFoundation\RedirectResponse; |
| 13 | 10 | ||
| 14 | class ViewDirector extends AbstractBuilder // ViewDirector est aussi le premier Builder | 11 | class 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 |
