From f4df3e9b9df3d54ce58796f923da70ff7e566018 Mon Sep 17 00:00:00 2001 From: polo Date: Tue, 26 Aug 2025 01:15:33 +0200 Subject: =?UTF-8?q?s=C3=A9paration=20bloc=20/=20mise=20en=20page,=20bloc?= =?UTF-8?q?=20sp=C3=A9cial=20pour=20les=20actus,=20renommage=20de=20classe?= =?UTF-8?q?s,=20fichiers,=20etc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/view/ArticleBuilder.php | 62 ------------------------------- src/view/BlogBuilder.php | 70 ----------------------------------- src/view/GaleryBuilder.php | 2 +- src/view/GridBuilder.php | 76 -------------------------------------- src/view/MainBuilder.php | 34 +++-------------- src/view/NewBuilder.php | 11 ++---- src/view/NewsBlockBuilder.php | 76 ++++++++++++++++++++++++++++++++++++++ src/view/PostBlockBuilder.php | 77 +++++++++++++++++++++++++++++++++++++++ src/view/PostBuilder.php | 62 +++++++++++++++++++++++++++++++ src/view/templates/article.php | 14 ------- src/view/templates/blog.php | 11 ------ src/view/templates/grid.php | 11 ------ src/view/templates/news_block.php | 11 ++++++ src/view/templates/post.php | 14 +++++++ src/view/templates/post_block.php | 11 ++++++ 15 files changed, 261 insertions(+), 281 deletions(-) delete mode 100644 src/view/ArticleBuilder.php delete mode 100644 src/view/BlogBuilder.php delete mode 100644 src/view/GridBuilder.php create mode 100644 src/view/NewsBlockBuilder.php create mode 100644 src/view/PostBlockBuilder.php create mode 100644 src/view/PostBuilder.php delete mode 100644 src/view/templates/article.php delete mode 100644 src/view/templates/blog.php delete mode 100644 src/view/templates/grid.php create mode 100644 src/view/templates/news_block.php create mode 100644 src/view/templates/post.php create mode 100644 src/view/templates/post_block.php (limited to 'src/view') diff --git a/src/view/ArticleBuilder.php b/src/view/ArticleBuilder.php deleted file mode 100644 index 3b9de87..0000000 --- a/src/view/ArticleBuilder.php +++ /dev/null @@ -1,62 +0,0 @@ -getName() . '.php'; - - if(file_exists($viewFile)) - { - // id (timestamp) - if(!empty($node->getAttributes())) - { - extract($node->getAttributes()); - } - - // html - $title = $node->getArticle()->getTitle(); - $html = $node->getArticle()->getContent(); - $id = $node->getArticleTimestamp(); - - // partage - $share_link = new URL(['page' => CURRENT_PAGE], $id); - $share_js = 'onclick="copyInClipBoard(\'' . $share_link . '\')"'; - $share_button = '

' . "\n"; - - // modifier un article - $admin_buttons = ''; - if($_SESSION['admin']) - { - $modify_js = 'onclick="openEditor(\'' . $id . '\')"'; - $modify_article = '

' . "\n"; - - $up_js = 'onclick="switchPositions(\'' . $id . '\', \'up\')"'; - $up_button = '

' . "\n"; - - $down_js = 'onclick="switchPositions(\'' . $id . '\', \'down\')"'; - $down_button = '

' . "\n"; - - $delete_js = 'onclick="deleteArticle(\'' . $id . '\')"'; - $delete_article = '

' . "\n"; - - $close_js = 'onclick="closeEditor(\'' . $id . '\')"'; - $close_editor = ''; - - $submit_js = 'onclick="submitArticle(\'' . $id . '\')"'; - $submit_article = ''; - - $admin_buttons = $modify_article . $up_button . $down_button . $delete_article . $close_editor . $submit_article; - } - - ob_start(); - require($viewFile); - $this->html .= ob_get_clean(); - } - } -} diff --git a/src/view/BlogBuilder.php b/src/view/BlogBuilder.php deleted file mode 100644 index d646d5f..0000000 --- a/src/view/BlogBuilder.php +++ /dev/null @@ -1,70 +0,0 @@ -getName() . '.php'; - - if(file_exists($viewFile)) - { - if(!empty($node->getNodeData()->getData())) - { - extract($node->getNodeData()->getData()); - } - - // ajouter un article - $new_article = ''; - if($_SESSION['admin']) - { - $id = 'n' . $this->id_node; - $js = 'onclick="openEditor(\'' . $id . '\')"'; - - $share_button = ''; - $html = ''; - - $new_button = '

' . "\n" . - '

'; - - $modify_js = 'onclick="openEditor(\'' . $id . '\')"'; - $modify_article = '' . "\n"; - - $up_js = 'onclick="switchPositions(\'' . $id . '\', \'up\')"'; - $up_button = '' . "\n"; - - $down_js = 'onclick="switchPositions(\'' . $id . '\', \'down\')"'; - $down_button = '' . "\n"; - - $delete_js = 'onclick="deleteArticle(\'' . $id . '\')"'; - $delete_article = '' . "\n"; - - $close_js = 'onclick="closeEditor(\'' . $id . '\')"'; - $close_editor = ''; - - $submit_js = 'onclick="submitArticle(\'' . $id . '\', \'\', clone' . $this->id_node . ')"'; - $submit_article = ''; - - $admin_buttons = $new_button . $modify_article . $up_button . $down_button . $delete_article . $close_editor . $submit_article; - - // squelette d'un nouvel article - ob_start(); - require self::VIEWS_PATH . 'article.php'; - $new_article = ob_get_clean(); - } - - // articles existants - $this->useChildrenBuilder($node); - $content = $this->html; - - ob_start(); - require $viewFile; - $this->html = ob_get_clean(); // pas de concaténation ici, on écrase - } - } -} \ No newline at end of file diff --git a/src/view/GaleryBuilder.php b/src/view/GaleryBuilder.php index f2dafc2..749cb30 100644 --- a/src/view/GaleryBuilder.php +++ b/src/view/GaleryBuilder.php @@ -54,7 +54,7 @@ class GaleryBuilder extends AbstractBuilder // squelette d'un nouvel article ob_start(); - require self::VIEWS_PATH . 'article.php'; + require self::VIEWS_PATH . 'post.php'; $new_article = ob_get_clean(); } diff --git a/src/view/GridBuilder.php b/src/view/GridBuilder.php deleted file mode 100644 index 30a9040..0000000 --- a/src/view/GridBuilder.php +++ /dev/null @@ -1,76 +0,0 @@ -getName() . '.php'; - - if(file_exists($viewFile)) - { - if(!empty($node->getNodeData()->getData())) - { - extract($node->getNodeData()->getData()); - } - - // ajouter un article - $new_article = ''; - if($_SESSION['admin']) - { - $id = 'n' . $this->id_node; - $js = 'onclick="openEditor(\'' . $id . '\')"'; - - $share_button = ''; - $html = ''; - - if(Director::$page_path->getLast()->getEndOfPath() === 'accueil'){ - $new_button = '

-

'; - } - else{ - $new_button = '

' . "\n" . - '

'; - } - - $modify_js = 'onclick="openEditor(\'' . $id . '\')"'; - $modify_article = '' . "\n"; - - $up_js = 'onclick="switchPositions(\'' . $id . '\', \'up\')"'; - $up_button = '' . "\n"; - - $down_js = 'onclick="switchPositions(\'' . $id . '\', \'down\')"'; - $down_button = '' . "\n"; - - $delete_js = 'onclick="deleteArticle(\'' . $id . '\')"'; - $delete_article = '' . "\n"; - - $close_js = 'onclick="closeEditor(\'' . $id . '\')"'; - $close_editor = ''; - - $submit_js = 'onclick="submitArticle(\'' . $id . '\', \'\', clone' . $this->id_node . ')"'; - $submit_article = ''; - - $admin_buttons = $new_button . $modify_article . $up_button . $down_button . $delete_article . $close_editor . $submit_article; - - // squelette d'un nouvel article - ob_start(); - require self::VIEWS_PATH . 'article.php'; - $new_article = ob_get_clean(); - } - - // articles existants - $this->useChildrenBuilder($node); - $content = $this->html; - - ob_start(); - require $viewFile; // utilise $content - $this->html = ob_get_clean(); // nouveau contenu - } - } -} \ No newline at end of file diff --git a/src/view/MainBuilder.php b/src/view/MainBuilder.php index 889df37..d7a0dfa 100644 --- a/src/view/MainBuilder.php +++ b/src/view/MainBuilder.php @@ -36,13 +36,13 @@ class MainBuilder extends AbstractBuilder $this->html .= $builder->render(); } else{ - // si action = "modif_page", affiche des commandes pour modifier + // si action = "modif_page", affiche des commandes supplémentaires if($_SESSION['admin'] && self::$modif_mode){ // ajouter un contrôle du champ in_menu $this->viewEditBlocks($node); } - // cas normal + // dans tous les cas $this->useChildrenBuilder($node); } @@ -53,42 +53,18 @@ class MainBuilder extends AbstractBuilder private function viewEditBlocks($node): void { $viewFile = self::VIEWS_PATH . $node->getName() . '.php'; // mode modification uniquement - - // blocs disponibles, même liste dans post.php - $blocks = [ // créer une classe pour ça? - ['type' => 'blog', 'name' => 'Blog'], - ['type' => 'grid', 'name' => 'Grille'], - ['type' => 'calendar', 'name' => 'Calendrier'], - ['type' => 'galery', 'name' => 'Galerie'], - ['type' => 'form', 'name' => 'Formulaire']]; - - function getBlockName(array $blocks, string $type){ // créer une classe pour ça? - for($i=0; $i < count($blocks); $i++){ - if($blocks[$i]['type'] === $type){ - return $blocks[$i]['name']; - } - } - } + $blocks = Blocks::getTypeNamePairs(); $options = ''; for($i = 0; $i < count($blocks); $i++){ $options .= '\n"; } - // blabla - /*$this->html .= '' . "\n";*/ - //$page_id = Director::$page_path->getLast()->getId(); $head_node = null; foreach(ViewController::$root_node->getChildren() as $first_level_node){ if($first_level_node->getName() === 'head'){ - $head_node = $first_level_node; // normallement c'est le 1er enfant + $head_node = $first_level_node; // normalement c'est le 1er enfant break; } } @@ -97,7 +73,7 @@ class MainBuilder extends AbstractBuilder foreach($node->getChildren() as $child_node){ // renommage d'un bloc $bloc_edit .= '
-

+

'. "\n"; // déplacement d'un bloc diff --git a/src/view/NewBuilder.php b/src/view/NewBuilder.php index c410eb7..fc6ade6 100644 --- a/src/view/NewBuilder.php +++ b/src/view/NewBuilder.php @@ -35,21 +35,18 @@ class NewBuilder extends AbstractBuilder $content = ''; // page article unique - if(Director::$page_path->getLast()->getEndOfPath() === 'article') - { + if(Director::$page_path->getLast()->getEndOfPath() === 'article'){ $content = $node->getArticle()->getContent(); - $from_to_button = '

'; + $from_to_button = '

'; } // page d'accueil (avec des news) - else - { - $from_to_button = '

'; + else{ + $from_to_button = '

'; } $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' => 'article', 'id' => $id]); diff --git a/src/view/NewsBlockBuilder.php b/src/view/NewsBlockBuilder.php new file mode 100644 index 0000000..eebeadb --- /dev/null +++ b/src/view/NewsBlockBuilder.php @@ -0,0 +1,76 @@ +getName() . '.php'; // = news_block.php, actuellement identique à post_block.php + + if(file_exists($viewFile)) + { + if(!empty($node->getNodeData()->getData())) + { + extract($node->getNodeData()->getData()); + } + + $presentation = $node->getNodeData()->getPresentation()->getName(); // affichage list ou grid + + // exécution de la stratégie (utilisation d'une méthode ou d'une classe) + $section_class = $presentation; + $section_child_class = $presentation === 'grid' ? 'grid_columns' : ''; + + // ajouter un article + $new_article = ''; + if($_SESSION['admin']) + { + $id = 'n' . $this->id_node; + + $share_button = ''; + + $new_button = '

'; + + $modify_js = 'onclick="openEditor(\'' . $id . '\')"'; + $modify_article = '' . "\n"; + + $up_js = 'onclick="switchPositions(\'' . $id . '\', \'up\')"'; + $up_button = '' . "\n"; + + $down_js = 'onclick="switchPositions(\'' . $id . '\', \'down\')"'; + $down_button = '' . "\n"; + + $delete_js = 'onclick="deleteArticle(\'' . $id . '\')"'; + $delete_article = '' . "\n"; + + $close_js = 'onclick="closeEditor(\'' . $id . '\')"'; + $close_editor = ''; + + $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; + + // post vide mis là pour le bouton "Nouvel article" => déplace vers page "article" + ob_start(); + require self::VIEWS_PATH . 'post.php'; // nécéssite $admin_buttons et $html + $new_article = ob_get_clean(); + } + + // articles existants + $this->useChildrenBuilder($node); + $content = $this->html; + + ob_start(); + require $viewFile; // utilise $content + $this->html = ob_get_clean(); // nouveau contenu + } + } +} \ No newline at end of file diff --git a/src/view/PostBlockBuilder.php b/src/view/PostBlockBuilder.php new file mode 100644 index 0000000..fadae31 --- /dev/null +++ b/src/view/PostBlockBuilder.php @@ -0,0 +1,77 @@ +getName() . '.php'; + $viewFile = self::VIEWS_PATH . 'post_block.php'; // actuellement identique à news_block.php + + if(file_exists($viewFile)) + { + if(!empty($node->getNodeData()->getData())) + { + extract($node->getNodeData()->getData()); + } + + $presentation = $node->getNodeData()->getPresentation()->getName(); // affichage list ou grid + + // exécution de la stratégie (utilisation d'une méthode ou d'une classe) + $section_class = $presentation; + $section_child_class = $presentation === 'grid' ? 'grid_columns' : ''; + + // ajouter un article + $new_article = ''; + if($_SESSION['admin']) + { + $id = 'n' . $this->id_node; + + $share_button = ''; + + $new_button = '

' . "\n" . '

'; + + $modify_js = 'onclick="openEditor(\'' . $id . '\')"'; + $modify_article = '' . "\n"; + + $up_js = 'onclick="switchPositions(\'' . $id . '\', \'up\')"'; + $up_button = '' . "\n"; + + $down_js = 'onclick="switchPositions(\'' . $id . '\', \'down\')"'; + $down_button = '' . "\n"; + + $delete_js = 'onclick="deleteArticle(\'' . $id . '\')"'; + $delete_article = '' . "\n"; + + $close_js = 'onclick="closeEditor(\'' . $id . '\')"'; + $close_editor = ''; + + $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; + + // squelette d'un nouvel article + ob_start(); + require self::VIEWS_PATH . 'post.php'; + $new_article = ob_get_clean(); + } + + // articles existants + $this->useChildrenBuilder($node); + $content = $this->html; + + ob_start(); + require $viewFile; + $this->html = ob_get_clean(); // pas de concaténation ici, on écrase + } + } +} \ No newline at end of file diff --git a/src/view/PostBuilder.php b/src/view/PostBuilder.php new file mode 100644 index 0000000..03a6990 --- /dev/null +++ b/src/view/PostBuilder.php @@ -0,0 +1,62 @@ +getName() . '.php'; + + if(file_exists($viewFile)) + { + // id (timestamp) + if(!empty($node->getAttributes())) + { + extract($node->getAttributes()); + } + + // html + $title = $node->getArticle()->getTitle(); + $html = $node->getArticle()->getContent(); + $id = $node->getArticleTimestamp(); + + // partage + $share_link = new URL(['page' => CURRENT_PAGE], $id); + $share_js = 'onclick="copyInClipBoard(\'' . $share_link . '\')"'; + $share_button = '' . "\n"; + + // modifier un article + $admin_buttons = ''; + if($_SESSION['admin']) + { + $modify_js = 'onclick="openEditor(\'' . $id . '\')"'; + $modify_article = '

' . "\n"; + + $up_js = 'onclick="switchPositions(\'' . $id . '\', \'up\')"'; + $up_button = '

' . "\n"; + + $down_js = 'onclick="switchPositions(\'' . $id . '\', \'down\')"'; + $down_button = '

' . "\n"; + + $delete_js = 'onclick="deleteArticle(\'' . $id . '\')"'; + $delete_article = '

' . "\n"; + + $close_js = 'onclick="closeEditor(\'' . $id . '\')"'; + $close_editor = ''; + + $submit_js = 'onclick="submitArticle(\'' . $id . '\')"'; + $submit_article = ''; + + $admin_buttons = $modify_article . $up_button . $down_button . $delete_article . $close_editor . $submit_article; + } + + ob_start(); + require($viewFile); + $this->html .= ob_get_clean(); + } + } +} diff --git a/src/view/templates/article.php b/src/view/templates/article.php deleted file mode 100644 index 5cf35c2..0000000 --- a/src/view/templates/article.php +++ /dev/null @@ -1,14 +0,0 @@ - -
-
-
- -
-
- -
-
- -
-
-
\ No newline at end of file diff --git a/src/view/templates/blog.php b/src/view/templates/blog.php deleted file mode 100644 index dfb65b5..0000000 --- a/src/view/templates/blog.php +++ /dev/null @@ -1,11 +0,0 @@ - -
-

- - -
- -
-
\ No newline at end of file diff --git a/src/view/templates/grid.php b/src/view/templates/grid.php deleted file mode 100644 index 71c052b..0000000 --- a/src/view/templates/grid.php +++ /dev/null @@ -1,11 +0,0 @@ - -
-

- - -
- -
-
\ No newline at end of file diff --git a/src/view/templates/news_block.php b/src/view/templates/news_block.php new file mode 100644 index 0000000..d88d780 --- /dev/null +++ b/src/view/templates/news_block.php @@ -0,0 +1,11 @@ + +
+

+ + +
+ +
+
\ No newline at end of file diff --git a/src/view/templates/post.php b/src/view/templates/post.php new file mode 100644 index 0000000..5cf35c2 --- /dev/null +++ b/src/view/templates/post.php @@ -0,0 +1,14 @@ + +
+
+
+ +
+
+ +
+
+ +
+
+
\ No newline at end of file diff --git a/src/view/templates/post_block.php b/src/view/templates/post_block.php new file mode 100644 index 0000000..d88d780 --- /dev/null +++ b/src/view/templates/post_block.php @@ -0,0 +1,11 @@ + +
+

+ + +
+ +
+
\ No newline at end of file -- cgit v1.2.3