From 46b455a0d3e96099e78975f53a25365a2ca9dcb4 Mon Sep 17 00:00:00 2001 From: polo Date: Fri, 5 Sep 2025 11:27:37 +0200 Subject: =?UTF-8?q?classe=20Editor=20et=20encapsulation,=20placement=20art?= =?UTF-8?q?icle=20premier=20ou=20dernier,=20variable=20window.Config.page,?= =?UTF-8?q?=20s=C3=A9paration=20openEditor=20et=20initEditor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controller/ArticleController.php | 26 +++++++++++++++----------- src/controller/PageManagementController.php | 7 ++++++- 2 files changed, 21 insertions(+), 12 deletions(-) (limited to 'src/controller') diff --git a/src/controller/ArticleController.php b/src/controller/ArticleController.php index b8af290..5cebad6 100644 --- a/src/controller/ArticleController.php +++ b/src/controller/ArticleController.php @@ -16,15 +16,15 @@ class ArticleController { $id = $json['id']; $director = new Director($entityManager); + $content = $json['content']; - // cas d'une nouvelle "news" - if(is_array($json['content'])){ - foreach($json['content'] as $one_input){ + // nettoyage + if(is_array($content)){ // cas d'une nouvelle "news" + foreach($content as $one_input){ $one_input = Security::secureHTML($one_input); } - $content = $json['content']; } - else{ + else{ // autres cas $content = Security::secureHTML($json['content']); } @@ -39,21 +39,25 @@ class ArticleController $director->makeSectionNode(); $node = $director->getNode(); // =
- if(is_array($content)){ + if(is_array($content)){ // cas d'une nouvelle "news" $date = new \DateTime($content['d']); $article = new Article($content['i'], $date, $content['t'], $content['p']); $article_node = new Node('new', 'i' . (string)$date->getTimestamp(), [], count($node->getChildren()) + 1, $node, $node->getPage(), $article); - - // id_node tout juste généré - //$article_node->getId(); } - else{ + else{ // autres cas $timestamp = time(); $date = new \DateTime; $date->setTimestamp($timestamp); $article = new Article($content, $date); // le "current" timestamp est obtenu par la BDD - $article_node = new Node('post', 'i' . (string)$timestamp, [], count($node->getChildren()) + 1, $node, $node->getPage(), $article); + + $placement = $json['placement'] === 'first' ? 0 : count($node->getChildren()) + 1; // + $article_node = new Node('post', 'i' . (string)$timestamp, [], $placement, $node, $node->getPage(), $article); + + if($json['placement'] === 'first'){ + $node->addChild($article_node); + $node->reindexPositions(); // régénère les positions (0 devient 1, 1 devient 2...) + } } $entityManager->persist($article_node); diff --git a/src/controller/PageManagementController.php b/src/controller/PageManagementController.php index 4528810..75967eb 100644 --- a/src/controller/PageManagementController.php +++ b/src/controller/PageManagementController.php @@ -286,7 +286,12 @@ class PageManagementController $director->getNode()->getNodeData()->setPresentation($presentation); $entityManager->flush(); - echo json_encode(['success' => true, 'presentation' => $json['presentation'], 'cols_min_width' => $director->getNode()->getNodeData()->getColsMinWidth()]); + + $response_data = ['success' => true, 'presentation' => $json['presentation']]; + if($json['presentation'] === 'grid'){ + $response_data['cols_min_width'] = $director->getNode()->getNodeData()->getColsMinWidth(); + } + echo json_encode($response_data); } else{ echo json_encode(['success' => false]); -- cgit v1.2.3