From f27cca08ff786ceff1870147f6d6bad14d71117f Mon Sep 17 00:00:00 2001 From: polo Date: Fri, 23 Oct 2026 00:47:32 +0200 Subject: =?UTF-8?q?dossiers=20avec=20majuscule,=20namespace=20pour=20toute?= =?UTF-8?q?s=20les=20classes,=20autoload=20psr-4,=20UserDataService::creat?= =?UTF-8?q?eZip=20d=C3=A9plac=C3=A9=20dans=20Backup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/View/PostBlockBuilder.php | 90 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 src/View/PostBlockBuilder.php (limited to 'src/View/PostBlockBuilder.php') diff --git a/src/View/PostBlockBuilder.php b/src/View/PostBlockBuilder.php new file mode 100644 index 0000000..850364a --- /dev/null +++ b/src/View/PostBlockBuilder.php @@ -0,0 +1,90 @@ +getName() . '.php'; // = post_block.php, actuellement identique à news_block.php + + if(file_exists($viewFile)) + { + if(!empty($node->getNodeData()->getData())) + { + extract($node->getNodeData()->getData()); + } + + // stratégie d'affichage du contenu (utilisation de méthodes ou de classe List, GridPresentation, etc) + $section_class = $node->getNodeData()->getPresentation(); // = list, grid , mosaic ou carousel + $cols_min_width = ''; + if($section_class === 'grid'){ + $min_width = $node->getNodeData()->getColsMinWidth(); + $cols_min_width = 'grid-template-columns: repeat(auto-fit, minmax(' . (string)$min_width . 'px, 1fr));'; + } + $fetch_button_hidden = $node->getNodeData()->getNumberOfPages() > 1 ? '' : ' hidden'; + + // ajouter un article + // => fait un peu double emploi avec PostBuilder + $new_article = ''; + if(IS_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 = ''; + + $position = ''; + + $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 . $position; + + // 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 -- cgit v1.2.3