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 ++++++- src/view/MainBuilder.php | 6 +++--- src/view/NewBuilder.php | 20 ++++++++++---------- src/view/NewsBlockBuilder.php | 2 +- src/view/PostBlockBuilder.php | 13 +++++++++++-- src/view/PostBuilder.php | 1 + src/view/templates/head.php | 1 + 8 files changed, 48 insertions(+), 28 deletions(-) (limited to 'src') 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]); diff --git a/src/view/MainBuilder.php b/src/view/MainBuilder.php index fc80cd1..b07fa81 100644 --- a/src/view/MainBuilder.php +++ b/src/view/MainBuilder.php @@ -85,10 +85,10 @@ class MainBuilder extends AbstractBuilder

'. "\n"; // déplacement d'un bloc - $bloc_edit .= '
+ $bloc_edit .= '

- - + +

' . "\n"; // suppression d'un bloc $bloc_edit .= '
diff --git a/src/view/NewBuilder.php b/src/view/NewBuilder.php index 2d66238..332d92b 100644 --- a/src/view/NewBuilder.php +++ b/src/view/NewBuilder.php @@ -69,27 +69,27 @@ class NewBuilder extends AbstractBuilder if($_SESSION['admin']) { if(Director::$page_path->getLast()->getEndOfPath() === 'article'){ - $title_js = 'onclick="openEditor(\'' . $id_title . '\', \'article\')"'; + $title_js = 'onclick="openEditor(\'' . $id_title . '\')"'; $modify_title = '

' . "\n"; - $close_js_title = 'onclick="closeEditor(\'' . $id_title . '\', \'article\', \'preview\')"'; + $close_js_title = 'onclick="closeEditor(\'' . $id_title . '\')"'; $close_editor_title = ''; - $submit_js_title = 'onclick="submitArticle(\'' . $id_title . '\', \'article\')"'; + $submit_js_title = 'onclick="submitArticle(\'' . $id_title . '\')"'; $submit_title = ''; $title_buttons = '
' . $modify_title . $close_editor_title . $submit_title . '
'; - $preview_js = 'onclick="openEditor(\'' . $id_preview . '\', \'article\')"'; + $preview_js = 'onclick="openEditor(\'' . $id_preview . '\')"'; $modify_preview = '

' . "\n"; - $close_js_preview = 'onclick="closeEditor(\'' . $id_preview . '\', \'article\', \'preview\')"'; + $close_js_preview = 'onclick="closeEditor(\'' . $id_preview . '\')"'; $close_editor_preview = ''; - $submit_js_preview = 'onclick="submitArticle(\'' . $id_preview . '\', \'article\')"'; + $submit_js_preview = 'onclick="submitArticle(\'' . $id_preview . '\')"'; $submit_preview = ''; $preview_buttons = '
' . $modify_preview . $close_editor_preview . $submit_preview . '
'; - $article_js = 'onclick="openEditor(\'' . $id . '\', \'article\')"'; + $article_js = 'onclick="openEditor(\'' . $id . '\')"'; $modify_article = '

' . "\n"; - $close_js_article = 'onclick="closeEditor(\'' . $id . '\', \'article\')"'; + $close_js_article = 'onclick="closeEditor(\'' . $id . '\')"'; $close_editor_article = ''; - $submit_js_article = 'onclick="submitArticle(\'' . $id . '\', \'article\')"'; + $submit_js_article = 'onclick="submitArticle(\'' . $id . '\')"'; $submit_article = ''; $article_buttons = '
' . $modify_article . $close_editor_article . $submit_article . '
'; @@ -105,7 +105,7 @@ class NewBuilder extends AbstractBuilder if(self::$new_article_mode){ $delete_article = ''; // valider la création d'un nouvel article - $submit_js = 'onclick="submitArticle(\'' . $_GET['id'] . '\', \'' . Director::$page_path->getLast()->getEndOfPath() . '\')"'; + $submit_js = 'onclick="submitArticle(\'' . $_GET['id'] . '\')"'; $submit_article = '

' . "\n"; } // mode article existant diff --git a/src/view/NewsBlockBuilder.php b/src/view/NewsBlockBuilder.php index 861949a..4716c63 100644 --- a/src/view/NewsBlockBuilder.php +++ b/src/view/NewsBlockBuilder.php @@ -53,7 +53,7 @@ class NewsBlockBuilder extends AbstractBuilder $close_js = 'onclick="closeEditor(\'' . $id . '\')"'; $close_editor = ''; - $submit_js = 'onclick="submitArticle(\'' . $id . '\', \'\', clone' . $this->id_node . ')"'; + $submit_js = 'onclick="submitArticle(\'' . $id . '\', clone' . $this->id_node . ')"'; $submit_article = ''; $html = ''; diff --git a/src/view/PostBlockBuilder.php b/src/view/PostBlockBuilder.php index 8ad0498..017e78e 100644 --- a/src/view/PostBlockBuilder.php +++ b/src/view/PostBlockBuilder.php @@ -29,6 +29,7 @@ class PostBlockBuilder extends AbstractBuilder } // ajouter un article + // => fait un peu double emploi avec PostBuilder $new_article = ''; if($_SESSION['admin']) { @@ -52,12 +53,20 @@ class PostBlockBuilder extends AbstractBuilder $close_js = 'onclick="closeEditor(\'' . $id . '\')"'; $close_editor = ''; + + $position = ''; - $submit_js = 'onclick="submitArticle(\'' . $id . '\', \'\', clone' . $this->id_node . ')"'; + $submit_js = 'onclick="submitArticle(\'' . $id . '\', clone' . $this->id_node . ')"'; $submit_article = ''; $html = ''; - $admin_buttons = $new_button . $modify_article . $up_button . $down_button . $delete_article . $close_editor . $submit_article; + $admin_buttons = $new_button . $modify_article . $up_button . $down_button . $delete_article . $close_editor . $submit_article . $position; // squelette d'un nouvel article ob_start(); diff --git a/src/view/PostBuilder.php b/src/view/PostBuilder.php index 03a6990..ae5cc9b 100644 --- a/src/view/PostBuilder.php +++ b/src/view/PostBuilder.php @@ -30,6 +30,7 @@ class PostBuilder extends AbstractBuilder $share_button = '' . "\n"; // modifier un article + // => fait un peu double emploi avec PostBlockBuilder $admin_buttons = ''; if($_SESSION['admin']) { diff --git a/src/view/templates/head.php b/src/view/templates/head.php index b74335e..83a0e7c 100644 --- a/src/view/templates/head.php +++ b/src/view/templates/head.php @@ -7,6 +7,7 @@ + \ No newline at end of file -- cgit v1.2.3