From 1e2cee519264f9ab2660540723915aec72bc2116 Mon Sep 17 00:00:00 2001 From: polo Date: Mon, 20 Oct 2025 01:57:21 +0200 Subject: =?UTF-8?q?noeud=20"head"=20unique,=20noms=20fichiers=20CSS=20et?= =?UTF-8?q?=20JSS=20dans=20page,=20nombreux=20changements=20en=20cons?= =?UTF-8?q?=C3=A9quences?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controller/ArticleController.php | 4 +-- src/controller/MenuAndPathsController.php | 2 +- src/controller/PageManagementController.php | 38 +++++------------------------ 3 files changed, 9 insertions(+), 35 deletions(-) (limited to 'src/controller') diff --git a/src/controller/ArticleController.php b/src/controller/ArticleController.php index 06562e7..7061897 100644 --- a/src/controller/ArticleController.php +++ b/src/controller/ArticleController.php @@ -92,7 +92,7 @@ class ArticleController $date = new \DateTime($content['d'] . ':' . (new \DateTime)->format('s')); // l'input type="datetime-local" ne donne pas les secondes, on les ajoute: 'hh:mm' . ':ss' $article = new Article($content['i'], $date, $content['t'], $content['p']); - $article_node = new Node('new', [], count($node->getChildren()) + 1, $node, $node->getPage(), $article); + $article_node = new Node('new', count($node->getChildren()) + 1, $node, $node->getPage(), $article); } else{ // autres cas $timestamp = time(); @@ -101,7 +101,7 @@ class ArticleController $article = new Article($content, $date); // le "current" timestamp est obtenu par la BDD $placement = $json['placement'] === 'first' ? 0 : count($node->getChildren()) + 1; // - $article_node = new Node('post', [], $placement, $node, $node->getPage(), $article); + $article_node = new Node('post', $placement, $node, $node->getPage(), $article); if($json['placement'] === 'first'){ $node->addChild($article_node); diff --git a/src/controller/MenuAndPathsController.php b/src/controller/MenuAndPathsController.php index f0553ad..a32b210 100644 --- a/src/controller/MenuAndPathsController.php +++ b/src/controller/MenuAndPathsController.php @@ -22,7 +22,7 @@ class MenuAndPathsController $page = new Page( trim(htmlspecialchars($_POST["label_input"])), - $url_input, + $url_input, '', true, true, false, $previous_page->getPosition(), $parent); // peut et DOIT être null si on est au 1er niveau diff --git a/src/controller/PageManagementController.php b/src/controller/PageManagementController.php index 9dce952..c45f3f3 100644 --- a/src/controller/PageManagementController.php +++ b/src/controller/PageManagementController.php @@ -68,6 +68,8 @@ class PageManagementController true, true, false, $previous_page->getPosition(), $parent); // peut et DOIT être null si on est au 1er niveau + $page->useDefaultCSS(); + $page->useDefaultJS(); // on a donné à la nouvelle entrée la même position qu'à la précédente, // addChild l'ajoute à la fin du tableau "children" puis on trie @@ -80,24 +82,7 @@ class PageManagementController $page->setPagePath(ltrim($parent->getPagePath() . '/' . $page->getEndOfPath(), '/')); - // noeud "head" - $node = new Node('head', [], - 1, // position d'un head = 1 - null, // pas de parent - $page); - $node->useDefaultAttributes(); // fichiers CSS et JS - - $data = new NodeData([], $node); - - $bulk_data = $entityManager - ->createQuery('SELECT n FROM App\Entity\Image n WHERE n.file_name LIKE :name') - ->setParameter('name', '%favicon%') - ->getResult(); - $data->setImages(new ArrayCollection($bulk_data)); - $entityManager->persist($page); - $entityManager->persist($node); - $entityManager->persist($data); $entityManager->flush(); // page créée, direction la page en mode modification pour ajouter des blocs @@ -142,26 +127,15 @@ class PageManagementController } if($_POST["bloc_select"] === 'calendar' || $_POST["bloc_select"] === 'form'){ - $dql = 'SELECT n FROM App\Entity\Node n WHERE n.page = :page AND n.name_node = :name'; // noeud 'head' de la page - $bulk_data = $entityManager - ->createQuery($dql) - ->setParameter('page', $page) - ->setParameter('name', 'head') - ->getResult(); - - if(count($bulk_data) != 1){ // 1 head par page - header("Location: " . new URL(['page' => $_GET['page'], 'error' => 'head_node_not_found'])); - die; - } + $page->setCSS(array_merge($page->getCSS(), [$_POST["bloc_select"]])); - $bulk_data[0]->addAttribute('css_array', $_POST["bloc_select"]); if($_POST["bloc_select"] === 'form'){ - $bulk_data[0]->addAttribute('js_array', $_POST["bloc_select"]); + $page->setJS(array_merge($page->getJS(), [$_POST["bloc_select"]])); } - $entityManager->persist($bulk_data[0]); + $entityManager->persist($page); } - $block = new Node($_POST["bloc_select"], [], $position, $main, $page); + $block = new Node($_POST["bloc_select"], $position, $main, $page); $data = new NodeData(['title' => trim(htmlspecialchars($_POST["bloc_title"]))], $block); // valeurs par défaut -- cgit v1.2.3