aboutsummaryrefslogtreecommitdiff
path: root/src/view/NewsBlockBuilder.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/view/NewsBlockBuilder.php')
-rw-r--r--src/view/NewsBlockBuilder.php73
1 files changed, 0 insertions, 73 deletions
diff --git a/src/view/NewsBlockBuilder.php b/src/view/NewsBlockBuilder.php
deleted file mode 100644
index f1fe12b..0000000
--- a/src/view/NewsBlockBuilder.php
+++ /dev/null
@@ -1,73 +0,0 @@
1<?php
2// src/view/NewsBlockBuilder.php
3
4declare(strict_types=1);
5
6use App\Entity\Node;
7
8class NewsBlockBuilder extends AbstractBuilder
9{
10 public function __construct(Node $node)
11 {
12 parent::__construct($node);
13
14 // à remplacer par list.php/grid.php (une vue par stratégie) le jour ou ou a besoin de les différencier
15 $viewFile = self::VIEWS_PATH . $node->getName() . '.php'; // = news_block.php, actuellement identique à post_block.php
16
17 if(file_exists($viewFile))
18 {
19 if(!empty($node->getNodeData()->getData()))
20 {
21 extract($node->getNodeData()->getData());
22 }
23
24 // stratégie d'affichage du contenu (utilisation de méthodes ou de classe List, GridPresentation, etc)
25 $section_class = $node->getNodeData()->getPresentation(); // = list, grid , mosaic ou carousel
26 $cols_min_width = '';
27 if($section_class === 'grid'){
28 $min_width = $node->getNodeData()->getColsMinWidth();
29 $cols_min_width = 'grid-template-columns: repeat(auto-fit, minmax(' . (string)$min_width . 'px, 1fr));';
30 }
31 $fetch_button_hidden = $node->getNodeData()->getNumberOfPages() > 1 ? '' : ' hidden';
32
33 // ajouter un article
34 $new_article = '';
35 if(IS_ADMIN)
36 {
37 $id = 'n' . $this->id_node;
38
39 $share_button = '<p class="share hidden"><img class="action_icon" src="assets/share.svg"></p>';
40
41 $new_button = '<p><a class="link_to_article" href="' . new URL(['page' => 'article', 'id' => $id, 'from' => CURRENT_PAGE]) . '"><button><img class="action_icon" src="assets/edit.svg">Nouvel article</button></a></p>';
42
43 $modify_js = 'onclick="openEditor(\'' . $id . '\')"';
44 $modify_article = '<p id="edit-' . $id . '" class="hidden"><img class="action_icon" src="assets/edit.svg" ' . $modify_js . '></p>' . "\n";
45
46 $delete_js = 'onclick="deleteArticle(\'' . $id . '\')"';
47 $delete_article = '<p id="delete-' . $id . '" class="hidden"><img class="action_icon" src="assets/delete-bin.svg" ' . $delete_js . '></p>' . "\n";
48
49 $close_js = 'onclick="closeEditor(\'' . $id . '\')"';
50 $close_editor = '<p id="cancel-' . $id . '" class="hidden"><button ' . $close_js . '>Annuler</button></p>';
51
52 $submit_js = 'onclick="submitArticle(\'' . $id . '\', clone' . $this->id_node . ')"';
53 $submit_article = '<p id="submit-' . $id . '" class="hidden"><button ' . $submit_js . '>Valider</button></p>';
54
55 $html = '';
56 $admin_buttons = $new_button . $modify_article . $delete_article . $close_editor . $submit_article;
57
58 // insérer post.php pour le bouton "Nouvel article", new.php pour les vrais articles
59 ob_start();
60 require self::VIEWS_PATH . 'post.php'; // nécéssite $admin_buttons et $html
61 $new_article = ob_get_clean();
62 }
63
64 // articles existants
65 $this->useChildrenBuilder($node);
66 $content = $this->html;
67
68 ob_start();
69 require $viewFile; // utilise $content
70 $this->html = ob_get_clean(); // nouveau contenu
71 }
72 }
73} \ No newline at end of file