From e4a325c9d5c07f09bc18b7e366ffb82b82c43502 Mon Sep 17 00:00:00 2001 From: polo Date: Wed, 2 Apr 2025 00:00:35 +0200 Subject: =?UTF-8?q?modification=20des=20titres,=20aper=C3=A7us=20et=20date?= =?UTF-8?q?s=20des=20news?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controller/ajax.php | 45 +++++++++++++++++++++++----- src/model/entities/Article.php | 12 ++++++++ src/view/ArticleBuilder.php | 2 +- src/view/NewBuilder.php | 68 ++++++++++++++++++++++++++++++++---------- src/view/templates/article.php | 1 - src/view/templates/new.php | 17 ++++++++--- 6 files changed, 117 insertions(+), 28 deletions(-) (limited to 'src') diff --git a/src/controller/ajax.php b/src/controller/ajax.php index bcba3f2..86acd39 100644 --- a/src/controller/ajax.php +++ b/src/controller/ajax.php @@ -14,16 +14,32 @@ if($_SERVER['CONTENT_TYPE'] === 'application/json' && isset($_GET['action'])) { if(json_last_error() === JSON_ERROR_NONE) { - $articleId = $json['id']; + $id = $json['id']; + $id[0] = 'i'; $content = Security::secureString($json['content']); $director = new Director($entityManager); - if($director->makeArticleNode($articleId)) // une entrée est trouvée + if($director->makeArticleNode($id)) // une entrée est trouvée { $node = $director->getRootNode(); - $node->getArticle()->setContent($content); + switch($json['id'][0]){ + case 'i': + $node->getArticle()->setContent($content); + break; + case 'p': + $node->getArticle()->setPreview($content); // html de l'éditeur + break; + case 't': + $node->getArticle()->setTitle($content); // html de l'éditeur + break; + case 'd': + echo json_encode(['success' => false, 'message' => 'l\'action editor_submit ne supporte pas les dates, utiliser date_submit.']); + die; + default: + echo json_encode(['success' => false, 'message' => 'identifiant non utilisable']); + die; + } $entityManager->flush(); - echo json_encode(['success' => true]); } else{ @@ -37,16 +53,16 @@ if($_SERVER['CONTENT_TYPE'] === 'application/json' && isset($_GET['action'])) } elseif($_GET['action'] === 'delete_article' && isset($json['id'])) { - $articleId = $json['id']; + $id = $json['id']; $director = new Director($entityManager); - $director->makeArticleNode($articleId); + $director->makeArticleNode($id); $node = $director->getRootNode(); $entityManager->remove($node); $entityManager->flush(); // test avec une nouvelle requête qui ne devrait rien trouver - if(!$director->makeArticleNode($articleId)) + if(!$director->makeArticleNode($id)) { echo json_encode(['success' => true]); @@ -72,6 +88,21 @@ if($_SERVER['CONTENT_TYPE'] === 'application/json' && isset($_GET['action'])) $node2->setPosition($tmp); $entityManager->flush(); + echo json_encode(['success' => true]); + die; + } + elseif($_GET['action'] === 'date_submit' && isset($json['id']) && isset($json['date'])) + { + $id = $json['id']; + $id[0] = 'i'; + $date = new DateTime($json['date']); + + $director = new Director($entityManager); + $director->makeArticleNode($id); + $node = $director->getRootNode(); + $node->getArticle()->setDateTime($date); + $entityManager->flush(); + echo json_encode(['success' => true]); die; } diff --git a/src/model/entities/Article.php b/src/model/entities/Article.php index 3b846da..601e573 100644 --- a/src/model/entities/Article.php +++ b/src/model/entities/Article.php @@ -49,6 +49,10 @@ class Article { return $this->date_time; } + public function setDateTime(\DateTime $date_time): void + { + $this->date_time = $date_time; + } public function getTimestamp(): int { return $this->date_time->getTimestamp(); @@ -57,10 +61,18 @@ class Article { return $this->title; } + public function setTitle(string $title): void + { + $this->title = $title; + } public function getPreview(): string { return $this->preview; } + public function setPreview(string $preview): void + { + $this->preview = $preview; + } public function getContent(): string { return $this->content; diff --git a/src/view/ArticleBuilder.php b/src/view/ArticleBuilder.php index 6c2f63c..f86f9bd 100644 --- a/src/view/ArticleBuilder.php +++ b/src/view/ArticleBuilder.php @@ -25,7 +25,7 @@ class ArticleBuilder extends AbstractBuilder // partage $share_link = new URL(['page' => CURRENT_PAGE], $id); $share_js = 'onclick="copyInClipBoard(\'' . $share_link . '\')"'; - $share_button = '

' . "\n"; + $share_button = '' . "\n"; // modifier un article $admin_buttons = ''; diff --git a/src/view/NewBuilder.php b/src/view/NewBuilder.php index 94823bd..acde8b4 100644 --- a/src/view/NewBuilder.php +++ b/src/view/NewBuilder.php @@ -20,14 +20,23 @@ class NewBuilder extends AbstractBuilder // html, date $title = $node->getArticle()->getTitle(); $preview = $node->getArticle()->getPreview(); + + // lettre au début de l'id: i = article, p = preview, t = title, d = date $id = $node->getArticleTimestamp(); + $id_title = $id; + $id_title[0] = 't'; + $id_preview = $id; + $id_preview[0] = 'p'; + $id_date = $id; + $id_date[0] = 'd'; + $content = ''; // page article unique if(Director::$page_path->getLast()->getEndOfPath() === 'article') { $content = $node->getArticle()->getContent(); - $from_to_button = '

'; + $from_to_button = '

'; } // page d'accueil (avec des news) else @@ -38,32 +47,59 @@ class NewBuilder extends AbstractBuilder $date_object = $node->getArticle()->getDateTime(); // class DateTime $date = 'le ' . str_replace(':', 'h', $date_object->format('d-m-Y à H:i')); + //$date = str_replace(':', 'h', $date_object->format('d-m-Y à H:i')); // partage $share_link = new URL(['page' => CURRENT_PAGE], $id); isset($_GET['id']) ? $share_link->addParams(['id' => $_GET['id']]) : ''; $share_js = 'onclick="copyInClipBoard(\'' . $share_link . '\')"'; - $share_button = '

' . "\n"; + $share_button = '' . "\n"; // modifier un article + $title_buttons = ''; + $preview_buttons = ''; + $article_buttons = ''; + $date_buttons = ''; $admin_buttons = ''; if($_SESSION['admin']) { if(Director::$page_path->getLast()->getEndOfPath() === 'article'){ - $modify_js = 'onclick="openEditor(\'' . $id . '\', \'article\')"'; - $modify_article = '

' . "\n"; + $title_js = 'onclick="openEditor(\'' . $id_title . '\', \'article\')"'; + $modify_title = '

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

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

' . "\n"; + $close_js_article = 'onclick="closeEditor(\'' . $id . '\', \'article\')"'; + $close_editor_article = ''; + $submit_js_article = 'onclick="submitArticle(\'' . $id . '\', \'article\')"'; + $submit_article = ''; + $article_buttons = '
' . $modify_article . $close_editor_article . $submit_article . '
'; + + $date_js = 'onclick="changeDate(\'' . $id_date . '\', \'article\');'; + $modify_date = '

' . "\n"; + $close_js_date = 'onclick="closeInput(\'' . $id_date . '\')"'; + $close_editor_date = ''; + $submit_js_date = 'onclick="submitDate(\'' . $id_date . '\')"'; + $submit_date = ''; + $date_buttons = '
' . $modify_date . $close_editor_date . $submit_date . '
'; - $up_button = ''; - $down_button = ''; - $delete_js = 'onclick="deleteArticle(\'' . $id . '\', \'' . CURRENT_PAGE . '\')"'; - $delete_article = '

' . "\n"; - - $close_js = 'onclick="closeEditor(\'' . $id . '\', \'article\')"'; - $close_editor = ''; - - $submit_js = 'onclick="submitArticle(\'' . $id . '\', \'article\')"'; - $submit_article = ''; + $delete_article = '

' . "\n"; + + $admin_buttons = $delete_article; } else{ $modify_article = '

' . "\n"; @@ -81,8 +117,10 @@ class NewBuilder extends AbstractBuilder $submit_article = ''; $submit_article = ''; + + $admin_buttons = $modify_article . $up_button . $down_button . $delete_article . $close_editor . $submit_article; } - $admin_buttons = $modify_article . $up_button . $down_button . $delete_article . $close_editor . $submit_article; + } ob_start(); diff --git a/src/view/templates/article.php b/src/view/templates/article.php index d34697e..f3ab32f 100644 --- a/src/view/templates/article.php +++ b/src/view/templates/article.php @@ -1,7 +1,6 @@
-

diff --git a/src/view/templates/new.php b/src/view/templates/new.php index 9dd8969..9515c70 100644 --- a/src/view/templates/new.php +++ b/src/view/templates/new.php @@ -1,20 +1,29 @@
-

+
+ +
+
-
+
+
+
-

- +

+ + +

+
+
-- cgit v1.2.3