diff options
author | polo <ordipolo@gmx.fr> | 2025-10-03 15:42:22 +0200 |
---|---|---|
committer | polo <ordipolo@gmx.fr> | 2025-10-03 15:42:22 +0200 |
commit | 9f88389d78755d7c69c29e9db8f114fd1dbef034 (patch) | |
tree | 2158ac1292fcd973563adf2a5836b13354fc8207 | |
parent | d6d7351259e104ab10b5dda3483c281830ce4ff3 (diff) | |
download | cms-9f88389d78755d7c69c29e9db8f114fd1dbef034.zip |
regression AbstractBuilder->render inaccessible, séparation dans Director __construct/makeMenuAndPaths
-rw-r--r-- | src/controller/Director.php | 14 | ||||
-rw-r--r-- | src/controller/PageManagementController.php | 18 | ||||
-rw-r--r-- | src/controller/ViewController.php | 5 | ||||
-rw-r--r-- | src/model/entities/Node.php | 5 | ||||
-rw-r--r-- | 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 | |||
18 | private ?Node $node; | 18 | private ?Node $node; |
19 | private Node $article; | 19 | private Node $article; |
20 | 20 | ||
21 | public function __construct(EntityManager $entityManager, bool $get_menu = false) | 21 | public function __construct(EntityManager $entityManager) |
22 | { | 22 | { |
23 | $this->entityManager = $entityManager; | 23 | $this->entityManager = $entityManager; |
24 | if($get_menu){ | ||
25 | self::$menu_data = new Menu($entityManager); | ||
26 | self::$page_path = new Path(); | ||
27 | $this->page = self::$page_path->getLast(); | ||
28 | } | ||
29 | $this->node = new Node; // instance mère "vide" ne possédant rien d'autre que des enfants | 24 | $this->node = new Node; // instance mère "vide" ne possédant rien d'autre que des enfants |
30 | } | 25 | } |
31 | 26 | ||
27 | public function makeMenuAndPaths(): void | ||
28 | { | ||
29 | self::$menu_data = new Menu($this->entityManager); | ||
30 | self::$page_path = new Path(); | ||
31 | $this->page = self::$page_path->getLast(); | ||
32 | } | ||
33 | |||
32 | public function getNode(): Node | 34 | public function getNode(): Node |
33 | { | 35 | { |
34 | return $this->node; | 36 | 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 | |||
55 | static public function newPage(EntityManager $entityManager): void | 55 | static public function newPage(EntityManager $entityManager): void |
56 | { | 56 | { |
57 | // titre et chemin | 57 | // titre et chemin |
58 | $director = new Director($entityManager, true); | 58 | $director = new Director($entityManager); |
59 | $director->makeMenuAndPaths(); | ||
59 | //Director::$menu_data = new Menu($entityManager); | 60 | //Director::$menu_data = new Menu($entityManager); |
60 | $previous_page = Director::$menu_data->findPageById((int)$_POST["page_location"]); // (int) à cause de declare(strict_types=1); | 61 | $previous_page = Director::$menu_data->findPageById((int)$_POST["page_location"]); // (int) à cause de declare(strict_types=1); |
61 | $parent = $previous_page->getParent(); | 62 | $parent = $previous_page->getParent(); |
@@ -125,7 +126,8 @@ class PageManagementController | |||
125 | /* partie "blocs" */ | 126 | /* partie "blocs" */ |
126 | static public function addBloc(EntityManager $entityManager): void | 127 | static public function addBloc(EntityManager $entityManager): void |
127 | { | 128 | { |
128 | $director = new Director($entityManager, true); // on a besoin de page_path qui dépend de menu_data | 129 | $director = new Director($entityManager); |
130 | $director->makeMenuAndPaths(); // on a besoin de page_path qui dépend de menu_data | ||
129 | $page = Director::$page_path->getLast(); | 131 | $page = Director::$page_path->getLast(); |
130 | $director->findUniqueNodeByName('main'); | 132 | $director->findUniqueNodeByName('main'); |
131 | $director->findItsChildren(); | 133 | $director->findItsChildren(); |
@@ -182,7 +184,8 @@ class PageManagementController | |||
182 | 184 | ||
183 | static public function deleteBloc(EntityManager $entityManager): void | 185 | static public function deleteBloc(EntityManager $entityManager): void |
184 | { | 186 | { |
185 | $director = new Director($entityManager, true); | 187 | $director = new Director($entityManager); |
188 | $director->makeMenuAndPaths(); | ||
186 | $director->findUniqueNodeByName('main'); | 189 | $director->findUniqueNodeByName('main'); |
187 | $director->findItsChildren(); | 190 | $director->findItsChildren(); |
188 | //$director->findNodeById((int)$_POST['delete_bloc_id']); | 191 | //$director->findNodeById((int)$_POST['delete_bloc_id']); |
@@ -228,7 +231,8 @@ class PageManagementController | |||
228 | static public function SwitchBlocsPositions(EntityManager $entityManager, array $json): void | 231 | static public function SwitchBlocsPositions(EntityManager $entityManager, array $json): void |
229 | { | 232 | { |
230 | if(isset($json['id1']) && is_int($json['id1']) && isset($json['id2']) && is_int($json['id2']) && isset($_GET['page'])){ | 233 | if(isset($json['id1']) && is_int($json['id1']) && isset($json['id2']) && is_int($json['id2']) && isset($_GET['page'])){ |
231 | $director = new Director($entityManager, true); // true pour $director->findItsChildren(); | 234 | $director = new Director($entityManager); |
235 | $director->makeMenuAndPaths(); // true pour $director->findItsChildren(); | ||
232 | $director->findUniqueNodeByName('main'); | 236 | $director->findUniqueNodeByName('main'); |
233 | $director->findItsChildren(); | 237 | $director->findItsChildren(); |
234 | $main = $director->getNode(); | 238 | $main = $director->getNode(); |
@@ -266,7 +270,7 @@ class PageManagementController | |||
266 | static public function changeArticlesOrder(EntityManager $entityManager, array $json): void | 270 | static public function changeArticlesOrder(EntityManager $entityManager, array $json): void |
267 | { | 271 | { |
268 | if(isset($json['id']) && isset($json['chrono_order'])){ | 272 | if(isset($json['id']) && isset($json['chrono_order'])){ |
269 | $director = new Director($entityManager, false); | 273 | $director = new Director($entityManager); |
270 | $director->findNodeById($json['id']); | 274 | $director->findNodeById($json['id']); |
271 | 275 | ||
272 | if($json['chrono_order'] === 'chrono'){ | 276 | if($json['chrono_order'] === 'chrono'){ |
@@ -293,7 +297,7 @@ class PageManagementController | |||
293 | static public function changePresentation(EntityManager $entityManager, array $json): void | 297 | static public function changePresentation(EntityManager $entityManager, array $json): void |
294 | { | 298 | { |
295 | if(isset($json['id']) && isset($json['presentation'])){ | 299 | if(isset($json['id']) && isset($json['presentation'])){ |
296 | $director = new Director($entityManager, false); | 300 | $director = new Director($entityManager); |
297 | $director->findNodeById($json['id']); | 301 | $director->findNodeById($json['id']); |
298 | 302 | ||
299 | if(in_array($json['presentation'], array_keys(Blocks::$presentations))){ | 303 | if(in_array($json['presentation'], array_keys(Blocks::$presentations))){ |
@@ -318,7 +322,7 @@ class PageManagementController | |||
318 | static public function changeColsMinWidth(EntityManager $entityManager, array $json): void | 322 | static public function changeColsMinWidth(EntityManager $entityManager, array $json): void |
319 | { | 323 | { |
320 | if(isset($json['id']) && isset($json['cols_min_width'])){ | 324 | if(isset($json['id']) && isset($json['cols_min_width'])){ |
321 | $director = new Director($entityManager, false); | 325 | $director = new Director($entityManager); |
322 | $director->findNodeById($json['id']); | 326 | $director->findNodeById($json['id']); |
323 | $director->getNode()->getNodeData()->setColsMinWidth((int)$json['cols_min_width']); // attention conversion? | 327 | $director->getNode()->getNodeData()->setColsMinWidth((int)$json['cols_min_width']); // attention conversion? |
324 | 328 | ||
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 | |||
45 | return new Response($this->html, 302); | 45 | return new Response($this->html, 302); |
46 | } | 46 | } |
47 | } | 47 | } |
48 | //else // l'id dans l'adresse n'a pas d'effet sur la suite | 48 | //else // l'id dans l'URL n'a pas d'effet ailleurs |
49 | 49 | ||
50 | 50 | ||
51 | /* 2/ accès au modèle */ | 51 | /* 2/ accès au modèle */ |
52 | $director = new Director($entityManager, true); | 52 | $director = new Director($entityManager); |
53 | $director->makeMenuAndPaths(); | ||
53 | $director->getWholePageData($request); | 54 | $director->getWholePageData($request); |
54 | self::$root_node = $director->getNode(); | 55 | self::$root_node = $director->getNode(); |
55 | 56 | ||
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 | |||
177 | } | 177 | } |
178 | } | 178 | } |
179 | 179 | ||
180 | private function sortNews(bool $chrono = false) // affichage du plus récent au plus ancien par défaut | 180 | // remplacée par "ORDER BY a.date_time" en DQL |
181 | /*private function sortNews(bool $chrono = false) // affichage du plus récent au plus ancien par défaut | ||
181 | { | 182 | { |
182 | // tri par insertion similaire à Position::sortChildren | 183 | // tri par insertion similaire à Position::sortChildren |
183 | for($i = 1; $i < count($this->children); $i++){ | 184 | for($i = 1; $i < count($this->children); $i++){ |
@@ -192,7 +193,7 @@ class Node | |||
192 | } | 193 | } |
193 | $this->children[$j + 1] = $tmp; | 194 | $this->children[$j + 1] = $tmp; |
194 | } | 195 | } |
195 | } | 196 | }*/ |
196 | 197 | ||
197 | public function removeChild(self $child): void | 198 | public function removeChild(self $child): void |
198 | { | 199 | { |
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 | |||
49 | return str_replace('_', '', ucwords($input, '_')); | 49 | return str_replace('_', '', ucwords($input, '_')); |
50 | } | 50 | } |
51 | 51 | ||
52 | protected function render(): string // = getHTML() | 52 | public function render(): string // = getHTML(), nécéssite d'être public |
53 | { | 53 | { |
54 | return $this->html; | 54 | return $this->html; |
55 | } | 55 | } |