From 9f88389d78755d7c69c29e9db8f114fd1dbef034 Mon Sep 17 00:00:00 2001 From: polo Date: Fri, 3 Oct 2025 15:42:22 +0200 Subject: =?UTF-8?q?regression=20AbstractBuilder->render=20inaccessible,=20?= =?UTF-8?q?s=C3=A9paration=20dans=20Director=20=5F=5Fconstruct/makeMenuAnd?= =?UTF-8?q?Paths?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controller/Director.php | 14 ++++++++------ src/controller/PageManagementController.php | 18 +++++++++++------- src/controller/ViewController.php | 5 +++-- src/model/entities/Node.php | 5 +++-- src/view/AbstractBuilder.php | 2 +- 5 files changed, 26 insertions(+), 18 deletions(-) diff --git a/src/controller/Director.php b/src/controller/Director.php index 4b9293c..8f038fa 100644 --- a/src/controller/Director.php +++ b/src/controller/Director.php @@ -18,17 +18,19 @@ class Director private ?Node $node; private Node $article; - public function __construct(EntityManager $entityManager, bool $get_menu = false) + public function __construct(EntityManager $entityManager) { $this->entityManager = $entityManager; - if($get_menu){ - self::$menu_data = new Menu($entityManager); - self::$page_path = new Path(); - $this->page = self::$page_path->getLast(); - } $this->node = new Node; // instance mère "vide" ne possédant rien d'autre que des enfants } + public function makeMenuAndPaths(): void + { + self::$menu_data = new Menu($this->entityManager); + self::$page_path = new Path(); + $this->page = self::$page_path->getLast(); + } + public function getNode(): Node { return $this->node; diff --git a/src/controller/PageManagementController.php b/src/controller/PageManagementController.php index 27bf2c2..2cc88a5 100644 --- a/src/controller/PageManagementController.php +++ b/src/controller/PageManagementController.php @@ -55,7 +55,8 @@ class PageManagementController static public function newPage(EntityManager $entityManager): void { // titre et chemin - $director = new Director($entityManager, true); + $director = new Director($entityManager); + $director->makeMenuAndPaths(); //Director::$menu_data = new Menu($entityManager); $previous_page = Director::$menu_data->findPageById((int)$_POST["page_location"]); // (int) à cause de declare(strict_types=1); $parent = $previous_page->getParent(); @@ -125,7 +126,8 @@ class PageManagementController /* partie "blocs" */ static public function addBloc(EntityManager $entityManager): void { - $director = new Director($entityManager, true); // on a besoin de page_path qui dépend de menu_data + $director = new Director($entityManager); + $director->makeMenuAndPaths(); // on a besoin de page_path qui dépend de menu_data $page = Director::$page_path->getLast(); $director->findUniqueNodeByName('main'); $director->findItsChildren(); @@ -182,7 +184,8 @@ class PageManagementController static public function deleteBloc(EntityManager $entityManager): void { - $director = new Director($entityManager, true); + $director = new Director($entityManager); + $director->makeMenuAndPaths(); $director->findUniqueNodeByName('main'); $director->findItsChildren(); //$director->findNodeById((int)$_POST['delete_bloc_id']); @@ -228,7 +231,8 @@ class PageManagementController static public function SwitchBlocsPositions(EntityManager $entityManager, array $json): void { if(isset($json['id1']) && is_int($json['id1']) && isset($json['id2']) && is_int($json['id2']) && isset($_GET['page'])){ - $director = new Director($entityManager, true); // true pour $director->findItsChildren(); + $director = new Director($entityManager); + $director->makeMenuAndPaths(); // true pour $director->findItsChildren(); $director->findUniqueNodeByName('main'); $director->findItsChildren(); $main = $director->getNode(); @@ -266,7 +270,7 @@ class PageManagementController static public function changeArticlesOrder(EntityManager $entityManager, array $json): void { if(isset($json['id']) && isset($json['chrono_order'])){ - $director = new Director($entityManager, false); + $director = new Director($entityManager); $director->findNodeById($json['id']); if($json['chrono_order'] === 'chrono'){ @@ -293,7 +297,7 @@ class PageManagementController static public function changePresentation(EntityManager $entityManager, array $json): void { if(isset($json['id']) && isset($json['presentation'])){ - $director = new Director($entityManager, false); + $director = new Director($entityManager); $director->findNodeById($json['id']); if(in_array($json['presentation'], array_keys(Blocks::$presentations))){ @@ -318,7 +322,7 @@ class PageManagementController static public function changeColsMinWidth(EntityManager $entityManager, array $json): void { if(isset($json['id']) && isset($json['cols_min_width'])){ - $director = new Director($entityManager, false); + $director = new Director($entityManager); $director->findNodeById($json['id']); $director->getNode()->getNodeData()->setColsMinWidth((int)$json['cols_min_width']); // attention conversion? diff --git a/src/controller/ViewController.php b/src/controller/ViewController.php index 9818c6e..feee0a0 100644 --- a/src/controller/ViewController.php +++ b/src/controller/ViewController.php @@ -45,11 +45,12 @@ class ViewController extends AbstractBuilder // ViewController est aussi le prem return new Response($this->html, 302); } } - //else // l'id dans l'adresse n'a pas d'effet sur la suite + //else // l'id dans l'URL n'a pas d'effet ailleurs /* 2/ accès au modèle */ - $director = new Director($entityManager, true); + $director = new Director($entityManager); + $director->makeMenuAndPaths(); $director->getWholePageData($request); self::$root_node = $director->getNode(); diff --git a/src/model/entities/Node.php b/src/model/entities/Node.php index ec5f081..76ef74b 100644 --- a/src/model/entities/Node.php +++ b/src/model/entities/Node.php @@ -177,7 +177,8 @@ class Node } } - private function sortNews(bool $chrono = false) // affichage du plus récent au plus ancien par défaut + // remplacée par "ORDER BY a.date_time" en DQL + /*private function sortNews(bool $chrono = false) // affichage du plus récent au plus ancien par défaut { // tri par insertion similaire à Position::sortChildren for($i = 1; $i < count($this->children); $i++){ @@ -192,7 +193,7 @@ class Node } $this->children[$j + 1] = $tmp; } - } + }*/ public function removeChild(self $child): void { diff --git a/src/view/AbstractBuilder.php b/src/view/AbstractBuilder.php index dd83a42..ab5e389 100644 --- a/src/view/AbstractBuilder.php +++ b/src/view/AbstractBuilder.php @@ -49,7 +49,7 @@ abstract class AbstractBuilder return str_replace('_', '', ucwords($input, '_')); } - protected function render(): string // = getHTML() + public function render(): string // = getHTML(), nécéssite d'être public { return $this->html; } -- cgit v1.2.3