aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2025-09-17 16:52:43 +0200
committerpolo <ordipolo@gmx.fr>2025-09-17 16:52:43 +0200
commit027af942de75f7c5bc519fabfa5fa11de9bc89ea (patch)
treef8074c57d59e99e036152369f2808046aa0004ec
parent07819d9f9e151e9fed6a6490dcad53ba2d57a550 (diff)
downloadcms-027af942de75f7c5bc519fabfa5fa11de9bc89ea.zip
optimisation récursivité dans sortChildren uniquement avec les pages, regression constructeur MenuBuilder
-rw-r--r--src/Config.php2
-rw-r--r--src/controller/MenuAndPathsController.php2
-rw-r--r--src/model/Position.php10
-rw-r--r--src/view/MenuBuilder.php2
4 files changed, 9 insertions, 7 deletions
diff --git a/src/Config.php b/src/Config.php
index baf4d6d..662344b 100644
--- a/src/Config.php
+++ b/src/Config.php
@@ -25,7 +25,7 @@ class Config
25 static public string $smtp_secure = ''; // tls (smarttls) ou ssl (smtps) ou plain_text/chaine vide 25 static public string $smtp_secure = ''; // tls (smarttls) ou ssl (smtps) ou plain_text/chaine vide
26 static public string $email_from = 'mon_adresse@email.fr'; 26 static public string $email_from = 'mon_adresse@email.fr';
27 static public string $email_from_name = 'site web'; 27 static public string $email_from_name = 'site web';
28 static public string $email_dest = 'mon_adresse@email.fr'; 28 static public string $email_dest = '';
29 static public string $email_dest_name = 'destinataire formulaire'; 29 static public string $email_dest_name = 'destinataire formulaire';
30 30
31 // copier dans ce tableau les variables contenant des chemins 31 // copier dans ce tableau les variables contenant des chemins
diff --git a/src/controller/MenuAndPathsController.php b/src/controller/MenuAndPathsController.php
index 5779b39..3ff7d54 100644
--- a/src/controller/MenuAndPathsController.php
+++ b/src/controller/MenuAndPathsController.php
@@ -101,7 +101,6 @@ class MenuAndPathsController
101 101
102 //Director::$menu_data->addChild($page); // => pour sortChildren 102 //Director::$menu_data->addChild($page); // => pour sortChildren
103 $page->getParent()->addChild($page); // => pour sortChildren 103 $page->getParent()->addChild($page); // => pour sortChildren
104 //Director::$menu_data->sortChildren(true); // positions décaléees des nouveaux petits frères
105 $page->getParent()->sortChildren(true); // positions décaléees des nouveaux petits frères 104 $page->getParent()->sortChildren(true); // positions décaléees des nouveaux petits frères
106 $page->setParent(null); 105 $page->setParent(null);
107 106
@@ -116,7 +115,6 @@ class MenuAndPathsController
116 $page->getParent()->sortChildren(true); // positions décaléees des nouveaux petits frères 115 $page->getParent()->sortChildren(true); // positions décaléees des nouveaux petits frères
117 $page->fillChildrenPagePath($page->getParent()->getPagePath()); 116 $page->fillChildrenPagePath($page->getParent()->getPagePath());
118 } 117 }
119 //$parent->sortChildren(true); // positions des enfants restants, inutile si la fonction est récursive?
120 $entityManager->flush(); 118 $entityManager->flush();
121 119
122 // affichage 120 // affichage
diff --git a/src/model/Position.php b/src/model/Position.php
index 8035481..fdba271 100644
--- a/src/model/Position.php
+++ b/src/model/Position.php
@@ -23,9 +23,13 @@ trait Position
23 $this->children[$j + 1] = $tmp; 23 $this->children[$j + 1] = $tmp;
24 } 24 }
25 25
26 foreach($this->children as $child) { 26 // récursivité (utile dans Menu et chemin)
27 if(count($child->children) > 0) { 27 // appel dans Page et dans MenuAndPathController (un tri supplémentaire à faire?)
28 $child->sortChildren($reindexation); 28 if(self::class === 'App\Entity\Page'){
29 foreach($this->children as $child) {
30 if(count($child->children) > 0) {
31 $child->sortChildren($reindexation);
32 }
29 } 33 }
30 } 34 }
31 35
diff --git a/src/view/MenuBuilder.php b/src/view/MenuBuilder.php
index bc64e30..8ea4b8e 100644
--- a/src/view/MenuBuilder.php
+++ b/src/view/MenuBuilder.php
@@ -13,7 +13,7 @@ class MenuBuilder extends AbstractBuilder
13 //private int $margin_left_multiplier = 29; 13 //private int $margin_left_multiplier = 29;
14 private string $options = ''; 14 private string $options = '';
15 15
16 public function __construct(Node $node, bool $template = true) 16 public function __construct(?Node $node, bool $template = true)
17 { 17 {
18 // impossible de me rappeler pourquoi j'ai écrit ce test sur $node, pourquoi $node serait null? 18 // impossible de me rappeler pourquoi j'ai écrit ce test sur $node, pourquoi $node serait null?
19 $viewFile = $node === null ? self::VIEWS_PATH . 'menu.php' : self::VIEWS_PATH . $node->getName() . '.php'; 19 $viewFile = $node === null ? self::VIEWS_PATH . 'menu.php' : self::VIEWS_PATH . $node->getName() . '.php';