aboutsummaryrefslogtreecommitdiff
path: root/src/view/NewBuilder.php
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2026-10-23 00:47:32 +0200
committerpolo <ordipolo@gmx.fr>2026-10-23 00:47:32 +0200
commitf27cca08ff786ceff1870147f6d6bad14d71117f (patch)
treed36597a72025313d6faf4ed228755fa267ebe2f6 /src/view/NewBuilder.php
parentc7309f900ef05bd5cb313110ec159b761af394ec (diff)
downloadcms-f27cca08ff786ceff1870147f6d6bad14d71117f.tar.gz
cms-f27cca08ff786ceff1870147f6d6bad14d71117f.tar.bz2
cms-f27cca08ff786ceff1870147f6d6bad14d71117f.zip
dossiers avec majuscule, namespace pour toutes les classes, autoload psr-4, UserDataService::createZip déplacé dans Backup
Diffstat (limited to 'src/view/NewBuilder.php')
-rw-r--r--src/view/NewBuilder.php152
1 files changed, 0 insertions, 152 deletions
diff --git a/src/view/NewBuilder.php b/src/view/NewBuilder.php
deleted file mode 100644
index 7459cc8..0000000
--- a/src/view/NewBuilder.php
+++ /dev/null
@@ -1,152 +0,0 @@
1<?php
2// src/view/NewBuilder.php
3
4declare(strict_types=1);
5
6use App\Entity\Node;
7
8class NewBuilder extends AbstractBuilder
9{
10 static public bool $new_article_mode = false;
11
12 public function __construct(Node $node)
13 {
14 $viewFile = self::VIEWS_PATH . $node->getName() . '.php';
15
16 if(file_exists($viewFile))
17 {
18 if(self::$new_article_mode){
19 $id = $_GET['id']; // ici l'id est le nom du block news_block parent
20 $title = '';
21 $preview = '';
22
23 // lettre au début de l'id: t = title, p = preview, i = article, d = date
24 $id_title = $id;
25 $id_title[0] = 't';
26 $id_preview = $id;
27 $id_preview[0] = 'p';
28 $id_content = 'i' . $id;
29 $id_content[0] = 'i';
30 $id_date = $id;
31 $id_date[0] = 'd';
32 }
33 else{
34 $id = (string)$node->getId();
35
36 // html, date
37 $title = $node->getArticle()->getTitle();
38 $preview = $node->getArticle()->getPreview();
39
40 // lettre au début de l'id: t = title, p = preview, i = article, d = date
41 $id_title = 't' . $id;
42 $id_preview = 'p' . $id;
43 $id_content = 'i' . $id;
44 $id_date = 'd' . $id;
45 }
46
47 $content = '';
48 if(CURRENT_PAGE === 'article'){
49 $content = $node->getArticle()->getContent();
50 $from_to_button = '<p><a class="link_to_article" href="' . new URL(isset($_GET['from']) ? ['page' => $_GET['from']] : []) . '"><button>Retour</button></a></p>';
51 $overflow = '';
52 }
53 else{
54 $from_to_button = '<p><a class="link_to_article" href="' . new URL(['page' => 'article', 'id' => $id, 'from' => CURRENT_PAGE]) . '"><button><img class="action_icon" src="assets/book-open.svg">Lire la suite</button></a></p>';
55 $overflow = ' overflow_hidden';
56 }
57
58 $date = $node->getArticle()->getDateTime()->format('Y-m-d\TH:i:s.v\Z'); // format: 2025-07-17T13:54:00.000Z
59 // 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
60
61 // partage
62 $share_link = new URL(['page' => 'article', 'id' => $id]);
63 $share_js = 'onclick="copyInClipBoard(\'' . $share_link . '\')"';
64 if(isset($_GET['id']) && $_GET['id'][0] === 'n'){
65 $class = 'class="share hidden"';
66 }
67 else{
68 $class = 'class="share"';
69 }
70 $share_button = '<p ' . $class . ' ' . $share_js . '><img class="action_icon" src="assets/share.svg"></p>' . "\n";
71
72 // modifier un article
73 $title_buttons = '';
74 $preview_buttons = '';
75 $article_buttons = '';
76 $date_buttons = '';
77 $admin_buttons = '';
78 if(IS_ADMIN){
79 if(CURRENT_PAGE === 'article'){
80 $title_js = 'onclick="openEditor(\'' . $id_title . '\')"';
81 $modify_title = '<p id="edit-' . $id_title . '"><button ' . $title_js . '><img class="action_icon" src="assets/edit.svg">Titre</button></p>' . "\n";
82 $close_js_title = 'onclick="closeEditor(\'' . $id_title . '\')"';
83 $close_editor_title = '<p id="cancel-' . $id_title . '" class="hidden"><button ' . $close_js_title . '>Annuler</button></p>';
84 $submit_js_title = 'onclick="submitArticle(\'' . $id_title . '\')"';
85 $submit_title = '<p id="submit-' . $id_title . '" class="hidden"><button ' . $submit_js_title . '>Valider</button></p>';
86 $title_buttons = '<div class="button_zone">' . $modify_title . $close_editor_title . $submit_title . '</div>';
87
88 $preview_js = 'onclick="openEditor(\'' . $id_preview . '\')"';
89 $modify_preview = '<p id="edit-' . $id_preview . '"><button ' . $preview_js . '><img class="action_icon" src="assets/edit.svg">Aperçu</button></a></p>' . "\n";
90 $close_js_preview = 'onclick="closeEditor(\'' . $id_preview . '\')"';
91 $close_editor_preview = '<p id="cancel-' . $id_preview . '" class="hidden"><button ' . $close_js_preview . '>Annuler</button></p>';
92 $submit_js_preview = 'onclick="submitArticle(\'' . $id_preview . '\')"';
93 $submit_preview = '<p id="submit-' . $id_preview . '" class="hidden"><button ' . $submit_js_preview . '>Valider</button></p>';
94 $preview_buttons = '<div class="button_zone">' . $modify_preview . $close_editor_preview . $submit_preview . '</div>';
95
96 $article_js = 'onclick="openEditor(\'' . $id_content . '\')"';
97 $modify_article = '<p id="edit-' . $id_content . '"><button ' . $article_js . '><img class="action_icon" src="assets/edit.svg">Article</button></p>' . "\n";
98 $close_js_article = 'onclick="closeEditor(\'' . $id_content . '\')"';
99 $close_editor_article = '<p id="cancel-' . $id_content . '" class="hidden"><button ' . $close_js_article . '>Annuler</button></p>';
100 $submit_js_article = 'onclick="submitArticle(\'' . $id_content . '\')"';
101 $submit_article = '<p id="submit-' . $id_content . '" class="hidden"><button ' . $submit_js_article . '>Valider</button></p>';
102 $article_buttons = '<div class="button_zone">' . $modify_article . $close_editor_article . $submit_article . '</div>';
103
104 $date_js = 'onclick="openDatetimeLocalInput(\'' . $id_date . '\', \'article\');';
105 $modify_date = '<p id="edit-' . $id_date . '"><button ' . $date_js . '"><img class="action_icon" src="assets/edit.svg">Date</button></p>' . "\n";
106 $close_js_date = 'onclick="closeInput(\'' . $id_date . '\')"';
107 $close_editor_date = '<p id="cancel-' . $id_date . '" class="hidden"><button ' . $close_js_date . '>Annuler</button></p>';
108 $submit_js_date = 'onclick="submitDate(\'' . $id_date . '\')"';
109 $submit_date = '<p id="submit-' . $id_date . '" class="hidden"><button ' . $submit_js_date . '>Valider</button></p>';
110 $date_buttons = '<div class="button_zone">' . $modify_date . $close_editor_date . $submit_date . '</div>';
111
112 // mode nouvel article
113 if(self::$new_article_mode){
114 $delete_article = '';
115 // valider la création d'un nouvel article
116 $submit_js = 'onclick="submitArticle(\'' . $_GET['id'] . '\')"';
117 $submit_article = '<p id="save-' . $id . '"><img class="action_icon delete_button" src="assets/save.svg" ' . $submit_js . '></p>' . "\n";
118 }
119 // mode article existant
120 else{
121 $url = new URL(['action' => 'delete_article', 'id' => $_GET['id'], 'from' => $_GET['from'] ?? '']);
122 $delete_article = '<form id="delete-' . $id . '" method="post" action="' . $url . '">
123 <p>
124 <img src="assets/delete-bin.svg" alt="Supprimer l\'article" class="action_icon" style="cursor: pointer;" onclick="if(confirm(\'Voulez-vous vraiment supprimer cet article ?\')) { this.closest(\'form\').submit(); }"
125 </p>
126 </form>' . "\n"; // this.closest('form').submit() = submit du formulaire avec javascript
127 $submit_article = '';
128 }
129
130 $admin_buttons = $share_button . $delete_article . $submit_article . $from_to_button;
131 }
132 // autre page
133 else{
134 $delete_js = 'onclick="deleteArticle(\'' . $id . '\')"';
135 $delete_article = '<p id="delete-' . $id . '"><img class="action_icon" src="assets/delete-bin.svg" ' . $delete_js . '></p>' . "\n";
136
137 $close_editor = '<p id="cancel-' . $id . '" class="hidden"></p>';
138 $submit_article = '<p id="submit-' . $id . '" class="hidden"></p>';
139
140 $admin_buttons = $from_to_button . $share_button . $delete_article . $close_editor . $submit_article;
141 }
142 }
143 else{
144 $admin_buttons = $share_button . $from_to_button;
145 }
146
147 ob_start();
148 require($viewFile);
149 $this->html .= ob_get_clean();
150 }
151 }
152}