summaryrefslogtreecommitdiff
path: root/src/controller/ViewController.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/controller/ViewController.php')
-rw-r--r--src/controller/ViewController.php39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/controller/ViewController.php b/src/controller/ViewController.php
new file mode 100644
index 0000000..69955c6
--- /dev/null
+++ b/src/controller/ViewController.php
@@ -0,0 +1,39 @@
1<?php
2// src/view/ViewController.php
3//
4// génère le HTML avec des Builder
5
6declare(strict_types=1);
7
8use App\Entity\Node;
9use Doctrine\ORM\EntityManager;
10use Symfony\Component\HttpFoundation\Request;
11use Symfony\Component\HttpFoundation\Response;
12
13class ViewController extends AbstractBuilder
14{
15 static public Node $root_node;
16
17 public function __construct(){}
18
19 public function buildView(Request $request, EntityManager $entityManager): Response
20 {
21 // accès au modèle
22 $director = new Director($entityManager, true);
23 $director->makeRootNode(htmlspecialchars($request->query->get('id') ?? ''));
24 self::$root_node = $director->getNode();
25
26 // mode modification d'une page activé
27 if($_SESSION['admin'] && $request->query->has('page')
28 && $request->query->has('action') && $request->query->get('action') === 'modif_page'
29 && $request->query->get('page') !== 'connexion' && $request->query->get('page') !== 'article' && $request->query->get('page') !== 'nouvelle_page' && $request->query->get('page') !== 'menu_chemins'){
30 // les contrôles de la 2è ligne devraient utiliser un tableau
31 MainBuilder::$modif_mode = true;
32 }
33
34 // construction de la page
35 $this->useChildrenBuilder(self::$root_node);
36
37 return new Response($this->html, 200);
38 }
39} \ No newline at end of file