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/NewBuilder.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 src/View/NewBuilder.php (limited to 'src/View/NewBuilder.php') diff --git a/src/View/NewBuilder.php b/src/View/NewBuilder.php new file mode 100644 index 0000000..598bb1c --- /dev/null +++ b/src/View/NewBuilder.php @@ -0,0 +1,157 @@ +getName() . '.php'; + + if(file_exists($viewFile)) + { + if(self::$new_article_mode){ + $id = $_GET['id']; // ici l'id est le nom du block news_block parent + $title = ''; + $preview = ''; + + // lettre au début de l'id: t = title, p = preview, i = article, d = date + $id_title = $id; + $id_title[0] = 't'; + $id_preview = $id; + $id_preview[0] = 'p'; + $id_content = 'i' . $id; + $id_content[0] = 'i'; + $id_date = $id; + $id_date[0] = 'd'; + } + else{ + $id = (string)$node->getId(); + + // html, date + $title = $node->getArticle()->getTitle(); + $preview = $node->getArticle()->getPreview(); + + // lettre au début de l'id: t = title, p = preview, i = article, d = date + $id_title = 't' . $id; + $id_preview = 'p' . $id; + $id_content = 'i' . $id; + $id_date = 'd' . $id; + } + + $content = ''; + if(CURRENT_PAGE === 'article'){ + $content = $node->getArticle()->getContent(); + $from_to_button = '

'; + $overflow = ''; + } + else{ + $from_to_button = '

'; + $overflow = ' overflow_hidden'; + } + + $date = $node->getArticle()->getDateTime()->format('Y-m-d\TH:i:s.v\Z'); // format: 2025-07-17T13:54:00.000Z + // format(\DateTime::ATOM) produit le format: 2025-10-10T12:17:00+00:00, c'est aussi de la norme ISO, mais à éviter pour être compatible avec date.toISOString en JS + + // partage + $share_link = new URL(['page' => 'article', 'id' => $id]); + $share_js = 'onclick="copyInClipBoard(\'' . $share_link . '\')"'; + if(isset($_GET['id']) && $_GET['id'][0] === 'n'){ + $class = 'class="share hidden"'; + } + else{ + $class = 'class="share"'; + } + $share_button = '

' . "\n"; + + // modifier un article + $title_buttons = ''; + $preview_buttons = ''; + $article_buttons = ''; + $date_buttons = ''; + $admin_buttons = ''; + if(IS_ADMIN){ + if(CURRENT_PAGE === 'article'){ + $title_js = 'onclick="openEditor(\'' . $id_title . '\')"'; + $modify_title = '

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

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

' . "\n"; + $close_js_article = 'onclick="closeEditor(\'' . $id_content . '\')"'; + $close_editor_article = ''; + $submit_js_article = 'onclick="submitArticle(\'' . $id_content . '\')"'; + $submit_article = ''; + $article_buttons = '
' . $modify_article . $close_editor_article . $submit_article . '
'; + + $date_js = 'onclick="openDatetimeLocalInput(\'' . $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 . '
'; + + // mode nouvel article + if(self::$new_article_mode){ + $delete_article = ''; + // valider la création d'un nouvel article + $submit_js = 'onclick="submitArticle(\'' . $_GET['id'] . '\')"'; + $submit_article = '

' . "\n"; + } + // mode article existant + else{ + $url = new URL(['action' => 'delete_article', 'id' => $_GET['id'], 'from' => $_GET['from'] ?? '']); + $delete_article = '
+

+ Supprimer l\'article +

' . "\n"; // this.closest('form').submit() = submit du formulaire avec javascript + $submit_article = ''; + } + + $admin_buttons = $share_button . $delete_article . $submit_article . $from_to_button; + } + // autre page + else{ + $delete_js = 'onclick="deleteArticle(\'' . $id . '\')"'; + $delete_article = '

' . "\n"; + + $close_editor = ''; + $submit_article = ''; + + $admin_buttons = $from_to_button . $share_button . $delete_article . $close_editor . $submit_article; + } + } + else{ + $admin_buttons = $share_button . $from_to_button; + } + + ob_start(); + require($viewFile); + $this->html .= ob_get_clean(); + } + } +} -- cgit v1.2.3