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.tar.gz cms-9f88389d78755d7c69c29e9db8f114fd1dbef034.tar.bz2 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 | } |
