blob: 0830a5bff5d6e694103e99efea2f7a1ec2ca4b0f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
<?php
// src/view/ViewController.php
//
// génère le HTML avec des Builder
declare(strict_types=1);
use App\Entity\Node;
use Doctrine\ORM\EntityManager;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class ViewController extends AbstractBuilder
{
static public Node $root_node;
public function __construct(){}
public function buildView(EntityManager $entityManager, Request $request): Response
{
// accès au modèle
$director = new Director($entityManager, true);
$director->makeRootNode(htmlspecialchars($request->query->get('id') ?? ''));
self::$root_node = $director->getNode();
// 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->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
$this->useChildrenBuilder(self::$root_node);
return new Response($this->html, 200);
}
}
|