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 .= '