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(); // id (timestamp) if(!empty($node->getAttributes())) { extract($node->getAttributes()); } // 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 = ''; // page article unique if(Director::$page_path->getLast()->getEndOfPath() === 'article'){ $content = $node->getArticle()->getContent(); $from_to_button = '

'; } else{ $from_to_button = '

'; } $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($_SESSION['admin']){ if(Director::$page_path->getLast()->getEndOfPath() === '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(); } } }