summaryrefslogtreecommitdiff
path: root/src/view/ArticleBuilder.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/view/ArticleBuilder.php')
-rw-r--r--src/view/ArticleBuilder.php60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/view/ArticleBuilder.php b/src/view/ArticleBuilder.php
new file mode 100644
index 0000000..989da0d
--- /dev/null
+++ b/src/view/ArticleBuilder.php
@@ -0,0 +1,60 @@
1<?php
2// src/view/ArticleBuilder.php
3
4use App\Entity\Node;
5
6class ArticleBuilder extends AbstractBuilder
7{
8 public function __construct(Node $node)
9 {
10 $viewFile = self::VIEWS_PATH . $node->getName() . '.php';
11
12 if(file_exists($viewFile))
13 {
14 // id (timestamp)
15 if(!empty($node->getAttributes()))
16 {
17 extract($node->getAttributes());
18 }
19
20 // html
21 $title = $node->getArticle()->getTitle();
22 $html = $node->getArticle()->getContent();
23 $id = $node->getArticleTimestamp();
24
25 // partage
26 $share_link = new URL(['page' => CURRENT_PAGE], $id);
27 $share_js = 'onclick="copyInClipBoard(\'' . $share_link . '\')"';
28 $share_button = '<p><a href="' . $share_link . '" ' . $share_js . '><img class="action_icon" src="assets/share.svg"></a></p>' . "\n";
29
30 // modifier un article
31 $admin_buttons = '';
32 if($_SESSION['admin'])
33 {
34 $modify_js = 'onclick="openEditor(\'' . $id . '\')"';
35 $modify_article = '<p id="edit-' . $id . '"><a href="#"><img class="action_icon" src="assets/edit.svg" ' . $modify_js . '></a></p>' . "\n";
36
37 $up_link = new URL(['page' => CURRENT_PAGE, 'id' => $id, 'action' => 'position_up']);
38 $up_button = '<p id="position_up-' . $id . '"><a href="' . $up_link . '"><img class="action_icon" src="assets/arrow-up.svg"></a></p>' . "\n";
39
40 $down_link = new URL(['page' => CURRENT_PAGE, 'id' => $id, 'action' => 'position_down']);
41 $down_button = '<p id="position_down-' . $id . '"><a href="' . $down_link . '"><img class="action_icon" src="assets/arrow-down.svg"></a></p>' . "\n";
42
43 $delete_js = 'onclick="deleteArticle(\'' . $id . '\')"';
44 $delete_article = '<p id="delete-' . $id . '"><a href="#"><img class="action_icon" src="assets/delete-bin.svg" ' . $delete_js . '></a></p>' . "\n";
45
46 $close_js = 'onclick="closeEditor(\'' . $id . '\')"';
47 $close_editor = '<p id="cancel-' . $id . '" class="hidden"><a href="#"><button ' . $close_js . '>Annuler</button></a></p>';
48
49 $submit_js = 'onclick="submitArticle(\'' . $id . '\')"';
50 $submit_article = '<p id="submit-' . $id . '" class="hidden"><a href="#"><button ' . $submit_js . '>Valider</button></a></p>';
51
52 $admin_buttons = $modify_article . $up_button . $down_button . $delete_article . $close_editor . $submit_article;
53 }
54
55 ob_start();
56 require($viewFile);
57 $this->html .= ob_get_clean();
58 }
59 }
60}