aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2025-10-03 15:42:22 +0200
committerpolo <ordipolo@gmx.fr>2025-10-03 15:42:22 +0200
commit9f88389d78755d7c69c29e9db8f114fd1dbef034 (patch)
tree2158ac1292fcd973563adf2a5836b13354fc8207
parentd6d7351259e104ab10b5dda3483c281830ce4ff3 (diff)
downloadcms-9f88389d78755d7c69c29e9db8f114fd1dbef034.zip
regression AbstractBuilder->render inaccessible, séparation dans Director __construct/makeMenuAndPaths
-rw-r--r--src/controller/Director.php14
-rw-r--r--src/controller/PageManagementController.php18
-rw-r--r--src/controller/ViewController.php5
-rw-r--r--src/model/entities/Node.php5
-rw-r--r--src/view/AbstractBuilder.php2
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 }