aboutsummaryrefslogtreecommitdiff
path: root/src/view
diff options
context:
space:
mode:
Diffstat (limited to 'src/view')
-rw-r--r--src/view/GaleryBuilder.php2
-rw-r--r--src/view/MainBuilder.php34
-rw-r--r--src/view/NewBuilder.php11
-rw-r--r--src/view/NewsBlockBuilder.php (renamed from src/view/GridBuilder.php)30
-rw-r--r--src/view/PostBlockBuilder.php (renamed from src/view/BlogBuilder.php)25
-rw-r--r--src/view/PostBuilder.php (renamed from src/view/ArticleBuilder.php)4
-rw-r--r--src/view/templates/news_block.php (renamed from src/view/templates/blog.php)4
-rw-r--r--src/view/templates/post.php (renamed from src/view/templates/article.php)0
-rw-r--r--src/view/templates/post_block.php (renamed from src/view/templates/grid.php)4
9 files changed, 47 insertions, 67 deletions
diff --git a/src/view/GaleryBuilder.php b/src/view/GaleryBuilder.php
index f2dafc2..749cb30 100644
--- a/src/view/GaleryBuilder.php
+++ b/src/view/GaleryBuilder.php
@@ -54,7 +54,7 @@ class GaleryBuilder extends AbstractBuilder
54 54
55 // squelette d'un nouvel article 55 // squelette d'un nouvel article
56 ob_start(); 56 ob_start();
57 require self::VIEWS_PATH . 'article.php'; 57 require self::VIEWS_PATH . 'post.php';
58 $new_article = ob_get_clean(); 58 $new_article = ob_get_clean();
59 } 59 }
60 60
diff --git a/src/view/MainBuilder.php b/src/view/MainBuilder.php
index 889df37..d7a0dfa 100644
--- a/src/view/MainBuilder.php
+++ b/src/view/MainBuilder.php
@@ -36,13 +36,13 @@ class MainBuilder extends AbstractBuilder
36 $this->html .= $builder->render(); 36 $this->html .= $builder->render();
37 } 37 }
38 else{ 38 else{
39 // si action = "modif_page", affiche des commandes pour modifier 39 // si action = "modif_page", affiche des commandes supplémentaires
40 if($_SESSION['admin'] && self::$modif_mode){ 40 if($_SESSION['admin'] && self::$modif_mode){
41 // ajouter un contrôle du champ in_menu 41 // ajouter un contrôle du champ in_menu
42 $this->viewEditBlocks($node); 42 $this->viewEditBlocks($node);
43 } 43 }
44 44
45 // cas normal 45 // dans tous les cas
46 $this->useChildrenBuilder($node); 46 $this->useChildrenBuilder($node);
47 } 47 }
48 48
@@ -53,42 +53,18 @@ class MainBuilder extends AbstractBuilder
53 private function viewEditBlocks($node): void 53 private function viewEditBlocks($node): void
54 { 54 {
55 $viewFile = self::VIEWS_PATH . $node->getName() . '.php'; // mode modification uniquement 55 $viewFile = self::VIEWS_PATH . $node->getName() . '.php'; // mode modification uniquement
56 56 $blocks = Blocks::getTypeNamePairs();
57 // blocs disponibles, même liste dans post.php
58 $blocks = [ // créer une classe pour ça?
59 ['type' => 'blog', 'name' => 'Blog'],
60 ['type' => 'grid', 'name' => 'Grille'],
61 ['type' => 'calendar', 'name' => 'Calendrier'],
62 ['type' => 'galery', 'name' => 'Galerie'],
63 ['type' => 'form', 'name' => 'Formulaire']];
64
65 function getBlockName(array $blocks, string $type){ // créer une classe pour ça?
66 for($i=0; $i < count($blocks); $i++){
67 if($blocks[$i]['type'] === $type){
68 return $blocks[$i]['name'];
69 }
70 }
71 }
72 57
73 $options = ''; 58 $options = '';
74 for($i = 0; $i < count($blocks); $i++){ 59 for($i = 0; $i < count($blocks); $i++){
75 $options .= '<option value= "' . $blocks[$i]['type'] . '">' . $blocks[$i]['name'] . "</option>\n"; 60 $options .= '<option value= "' . $blocks[$i]['type'] . '">' . $blocks[$i]['name'] . "</option>\n";
76 } 61 }
77 62
78 // blabla
79 /*$this->html .= '<aside class="modif_page_explanations">
80 <p>Modification de la structure d\'une page:</p>
81 <div>
82 <p><img></p>
83 <p><img></p>
84 </div>
85 </aside>' . "\n";*/
86
87 //$page_id = Director::$page_path->getLast()->getId(); 63 //$page_id = Director::$page_path->getLast()->getId();
88 $head_node = null; 64 $head_node = null;
89 foreach(ViewController::$root_node->getChildren() as $first_level_node){ 65 foreach(ViewController::$root_node->getChildren() as $first_level_node){
90 if($first_level_node->getName() === 'head'){ 66 if($first_level_node->getName() === 'head'){
91 $head_node = $first_level_node; // normallement c'est le 1er enfant 67 $head_node = $first_level_node; // normalement c'est le 1er enfant
92 break; 68 break;
93 } 69 }
94 } 70 }
@@ -97,7 +73,7 @@ class MainBuilder extends AbstractBuilder
97 foreach($node->getChildren() as $child_node){ 73 foreach($node->getChildren() as $child_node){
98 // renommage d'un bloc 74 // renommage d'un bloc
99 $bloc_edit .= '<div id="bloc_edit_' . $child_node->getId() . '"> 75 $bloc_edit .= '<div id="bloc_edit_' . $child_node->getId() . '">
100 <p><label for="bloc_rename_' . $child_node->getId() . '"><b>' . getBlockName($blocks, $child_node->getName()) . '</b></label> 76 <p><label for="bloc_rename_' . $child_node->getId() . '"><b>' . Blocks::getNameFromType($child_node->getName()) . '</b></label>
101 <input type="text" id="bloc_rename_' . $child_node->getId() . '" name="bloc_rename_title" value="' . $child_node->getNodeData()->getdata()['title'] . '" required> 77 <input type="text" id="bloc_rename_' . $child_node->getId() . '" name="bloc_rename_title" value="' . $child_node->getNodeData()->getdata()['title'] . '" required>
102 <button onclick="renamePageBloc(' . $child_node->getId() . ')">Renommer</button>'. "\n"; 78 <button onclick="renamePageBloc(' . $child_node->getId() . ')">Renommer</button>'. "\n";
103 // déplacement d'un bloc 79 // déplacement d'un bloc
diff --git a/src/view/NewBuilder.php b/src/view/NewBuilder.php
index c410eb7..fc6ade6 100644
--- a/src/view/NewBuilder.php
+++ b/src/view/NewBuilder.php
@@ -35,21 +35,18 @@ class NewBuilder extends AbstractBuilder
35 $content = ''; 35 $content = '';
36 36
37 // page article unique 37 // page article unique
38 if(Director::$page_path->getLast()->getEndOfPath() === 'article') 38 if(Director::$page_path->getLast()->getEndOfPath() === 'article'){
39 {
40 $content = $node->getArticle()->getContent(); 39 $content = $node->getArticle()->getContent();
41 $from_to_button = '<p><a class="link_to_article" href="' . new URL(['page' => 'accueil']) . '"><button>Page<br>d\'accueil</button></a></p>'; 40 $from_to_button = '<p><a class="link_to_article" href="' . new URL(isset($_GET['from']) ? ['page' => $_GET['from']] : []) . '"><button>Page<br>précédente</button></a></p>';
42 } 41 }
43 // page d'accueil (avec des news) 42 // page d'accueil (avec des news)
44 else 43 else{
45 { 44 $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>';
46 $from_to_button = '<p><a class="link_to_article" href="' . new URL(['page' => 'article', 'id' => $id]) . '"><button><img class="action_icon" src="assets/book-open.svg">Lire la suite</button></a></p>';
47 } 45 }
48 46
49 47
50 $date_object = $node->getArticle()->getDateTime(); // class DateTime 48 $date_object = $node->getArticle()->getDateTime(); // class DateTime
51 $date = 'le ' . str_replace(':', 'h', $date_object->format('d-m-Y à H:i')); 49 $date = 'le ' . str_replace(':', 'h', $date_object->format('d-m-Y à H:i'));
52 //$date = str_replace(':', 'h', $date_object->format('d-m-Y à H:i'));
53 50
54 // partage 51 // partage
55 $share_link = new URL(['page' => 'article', 'id' => $id]); 52 $share_link = new URL(['page' => 'article', 'id' => $id]);
diff --git a/src/view/GridBuilder.php b/src/view/NewsBlockBuilder.php
index 30a9040..eebeadb 100644
--- a/src/view/GridBuilder.php
+++ b/src/view/NewsBlockBuilder.php
@@ -1,16 +1,18 @@
1<?php 1<?php
2// src/view/GridBuilder.php 2// src/view/NewsBlockBuilder.php
3 3
4declare(strict_types=1); 4declare(strict_types=1);
5 5
6use App\Entity\Node; 6use App\Entity\Node;
7 7
8class GridBuilder extends AbstractBuilder 8class NewsBlockBuilder extends AbstractBuilder
9{ 9{
10 public function __construct(Node $node) 10 public function __construct(Node $node)
11 { 11 {
12 parent::__construct($node); 12 parent::__construct($node);
13 $viewFile = self::VIEWS_PATH . $node->getName() . '.php'; 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
14 16
15 if(file_exists($viewFile)) 17 if(file_exists($viewFile))
16 { 18 {
@@ -19,24 +21,21 @@ class GridBuilder extends AbstractBuilder
19 extract($node->getNodeData()->getData()); 21 extract($node->getNodeData()->getData());
20 } 22 }
21 23
24 $presentation = $node->getNodeData()->getPresentation()->getName(); // affichage list ou grid
25
26 // exécution de la stratégie (utilisation d'une méthode ou d'une classe)
27 $section_class = $presentation;
28 $section_child_class = $presentation === 'grid' ? 'grid_columns' : '';
29
22 // ajouter un article 30 // ajouter un article
23 $new_article = ''; 31 $new_article = '';
24 if($_SESSION['admin']) 32 if($_SESSION['admin'])
25 { 33 {
26 $id = 'n' . $this->id_node; 34 $id = 'n' . $this->id_node;
27 $js = 'onclick="openEditor(\'' . $id . '\')"';
28 35
29 $share_button = '<p class="share hidden"><img class="action_icon" src="assets/share.svg"></p>'; 36 $share_button = '<p class="share hidden"><img class="action_icon" src="assets/share.svg"></p>';
30 $html = '';
31 37
32 if(Director::$page_path->getLast()->getEndOfPath() === 'accueil'){ 38 $new_button = '<p><a class="link_to_article" href="' . new URL(['page' => 'article', 'id' => $id]) . '"><button><img class="action_icon" src="assets/edit.svg">Nouvel article</button></a></p>';
33 $new_button = '<p><a class="link_to_article" href="' . new URL(['page' => 'article', 'id' => $id]) . '">
34 <button><img class="action_icon" src="assets/edit.svg">Nouvel article</button></a></p>';
35 }
36 else{
37 $new_button = '<p id="new-' . $id . '">' . "\n" .
38 '<button ' . $js . '><img class="action_icon" src="assets/edit.svg">Nouvel article</button></p>';
39 }
40 39
41 $modify_js = 'onclick="openEditor(\'' . $id . '\')"'; 40 $modify_js = 'onclick="openEditor(\'' . $id . '\')"';
42 $modify_article = '<p id="edit-' . $id . '" class="hidden"><img class="action_icon" src="assets/edit.svg" ' . $modify_js . '></p>' . "\n"; 41 $modify_article = '<p id="edit-' . $id . '" class="hidden"><img class="action_icon" src="assets/edit.svg" ' . $modify_js . '></p>' . "\n";
@@ -56,11 +55,12 @@ class GridBuilder extends AbstractBuilder
56 $submit_js = 'onclick="submitArticle(\'' . $id . '\', \'\', clone' . $this->id_node . ')"'; 55 $submit_js = 'onclick="submitArticle(\'' . $id . '\', \'\', clone' . $this->id_node . ')"';
57 $submit_article = '<p id="submit-' . $id . '" class="hidden"><button ' . $submit_js . '>Valider</button></p>'; 56 $submit_article = '<p id="submit-' . $id . '" class="hidden"><button ' . $submit_js . '>Valider</button></p>';
58 57
58 $html = '';
59 $admin_buttons = $new_button . $modify_article . $up_button . $down_button . $delete_article . $close_editor . $submit_article; 59 $admin_buttons = $new_button . $modify_article . $up_button . $down_button . $delete_article . $close_editor . $submit_article;
60 60
61 // squelette d'un nouvel article 61 // post vide mis là pour le bouton "Nouvel article" => déplace vers page "article"
62 ob_start(); 62 ob_start();
63 require self::VIEWS_PATH . 'article.php'; 63 require self::VIEWS_PATH . 'post.php'; // nécéssite $admin_buttons et $html
64 $new_article = ob_get_clean(); 64 $new_article = ob_get_clean();
65 } 65 }
66 66
diff --git a/src/view/BlogBuilder.php b/src/view/PostBlockBuilder.php
index d646d5f..fadae31 100644
--- a/src/view/BlogBuilder.php
+++ b/src/view/PostBlockBuilder.php
@@ -1,16 +1,19 @@
1<?php 1<?php
2// src/view/BlogBuilder.php 2// src/view/PostBlockBuilder.php
3 3
4declare(strict_types=1); 4declare(strict_types=1);
5 5
6use App\Entity\Node; 6use App\Entity\Node;
7 7
8class BlogBuilder extends AbstractBuilder 8class PostBlockBuilder extends AbstractBuilder
9{ 9{
10 public function __construct(Node $node) 10 public function __construct(Node $node)
11 { 11 {
12 parent::__construct($node); 12 parent::__construct($node);
13 $viewFile = self::VIEWS_PATH . $node->getName() . '.php'; 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';
16 $viewFile = self::VIEWS_PATH . 'post_block.php'; // actuellement identique à news_block.php
14 17
15 if(file_exists($viewFile)) 18 if(file_exists($viewFile))
16 { 19 {
@@ -19,18 +22,21 @@ class BlogBuilder extends AbstractBuilder
19 extract($node->getNodeData()->getData()); 22 extract($node->getNodeData()->getData());
20 } 23 }
21 24
25 $presentation = $node->getNodeData()->getPresentation()->getName(); // affichage list ou grid
26
27 // exécution de la stratégie (utilisation d'une méthode ou d'une classe)
28 $section_class = $presentation;
29 $section_child_class = $presentation === 'grid' ? 'grid_columns' : '';
30
22 // ajouter un article 31 // ajouter un article
23 $new_article = ''; 32 $new_article = '';
24 if($_SESSION['admin']) 33 if($_SESSION['admin'])
25 { 34 {
26 $id = 'n' . $this->id_node; 35 $id = 'n' . $this->id_node;
27 $js = 'onclick="openEditor(\'' . $id . '\')"';
28 36
29 $share_button = '<p class="share hidden"><img class="action_icon" src="assets/share.svg"></p>'; 37 $share_button = '<p class="share hidden"><img class="action_icon" src="assets/share.svg"></p>';
30 $html = ''; 38
31 39 $new_button = '<p id="new-' . $id . '">' . "\n" . '<button onclick="openEditor(\'' . $id . '\')"><img class="action_icon" src="assets/edit.svg">Nouvel article</button></p>';
32 $new_button = '<p id="new-' . $id . '">' . "\n" .
33 '<button ' . $js . '><img class="action_icon" src="assets/edit.svg">Nouvel article</button></p>';
34 40
35 $modify_js = 'onclick="openEditor(\'' . $id . '\')"'; 41 $modify_js = 'onclick="openEditor(\'' . $id . '\')"';
36 $modify_article = '<p id="edit-' . $id . '" class="hidden"><img class="action_icon" src="assets/edit.svg" ' . $modify_js . '></p>' . "\n"; 42 $modify_article = '<p id="edit-' . $id . '" class="hidden"><img class="action_icon" src="assets/edit.svg" ' . $modify_js . '></p>' . "\n";
@@ -50,11 +56,12 @@ class BlogBuilder extends AbstractBuilder
50 $submit_js = 'onclick="submitArticle(\'' . $id . '\', \'\', clone' . $this->id_node . ')"'; 56 $submit_js = 'onclick="submitArticle(\'' . $id . '\', \'\', clone' . $this->id_node . ')"';
51 $submit_article = '<p id="submit-' . $id . '" class="hidden"><button ' . $submit_js . '>Valider</button></p>'; 57 $submit_article = '<p id="submit-' . $id . '" class="hidden"><button ' . $submit_js . '>Valider</button></p>';
52 58
59 $html = '';
53 $admin_buttons = $new_button . $modify_article . $up_button . $down_button . $delete_article . $close_editor . $submit_article; 60 $admin_buttons = $new_button . $modify_article . $up_button . $down_button . $delete_article . $close_editor . $submit_article;
54 61
55 // squelette d'un nouvel article 62 // squelette d'un nouvel article
56 ob_start(); 63 ob_start();
57 require self::VIEWS_PATH . 'article.php'; 64 require self::VIEWS_PATH . 'post.php';
58 $new_article = ob_get_clean(); 65 $new_article = ob_get_clean();
59 } 66 }
60 67
diff --git a/src/view/ArticleBuilder.php b/src/view/PostBuilder.php
index 3b9de87..03a6990 100644
--- a/src/view/ArticleBuilder.php
+++ b/src/view/PostBuilder.php
@@ -1,11 +1,11 @@
1<?php 1<?php
2// src/view/ArticleBuilder.php 2// src/view/PostBuilder.php
3 3
4declare(strict_types=1); 4declare(strict_types=1);
5 5
6use App\Entity\Node; 6use App\Entity\Node;
7 7
8class ArticleBuilder extends AbstractBuilder 8class PostBuilder extends AbstractBuilder
9{ 9{
10 public function __construct(Node $node) 10 public function __construct(Node $node)
11 { 11 {
diff --git a/src/view/templates/blog.php b/src/view/templates/news_block.php
index dfb65b5..d88d780 100644
--- a/src/view/templates/blog.php
+++ b/src/view/templates/news_block.php
@@ -1,11 +1,11 @@
1<?php declare(strict_types=1); ?> 1<?php declare(strict_types=1); ?>
2<section class="blog" id="<?= $this->id_node ?>"> 2<section class="<?= $section_class ?>" id="<?= $this->id_node ?>">
3 <h3><?= $title ?></h3> 3 <h3><?= $title ?></h3>
4<?= $new_article ?> 4<?= $new_article ?>
5 <script> 5 <script>
6 var clone<?= $this->id_node ?> = document.currentScript.previousElementSibling.cloneNode(true); 6 var clone<?= $this->id_node ?> = document.currentScript.previousElementSibling.cloneNode(true);
7 </script> 7 </script>
8 <div> 8 <div class="<?= $section_child_class ?>">
9<?= $content ?> 9<?= $content ?>
10 </div> 10 </div>
11</section> \ No newline at end of file 11</section> \ No newline at end of file
diff --git a/src/view/templates/article.php b/src/view/templates/post.php
index 5cf35c2..5cf35c2 100644
--- a/src/view/templates/article.php
+++ b/src/view/templates/post.php
diff --git a/src/view/templates/grid.php b/src/view/templates/post_block.php
index 71c052b..d88d780 100644
--- a/src/view/templates/grid.php
+++ b/src/view/templates/post_block.php
@@ -1,11 +1,11 @@
1<?php declare(strict_types=1); ?> 1<?php declare(strict_types=1); ?>
2<section class="grid" id="<?= $this->id_node ?>"> 2<section class="<?= $section_class ?>" id="<?= $this->id_node ?>">
3 <h3><?= $title ?></h3> 3 <h3><?= $title ?></h3>
4<?= $new_article ?> 4<?= $new_article ?>
5 <script> 5 <script>
6 var clone<?= $this->id_node ?> = document.currentScript.previousElementSibling.cloneNode(true); 6 var clone<?= $this->id_node ?> = document.currentScript.previousElementSibling.cloneNode(true);
7 </script> 7 </script>
8 <div class="grid_columns"> 8 <div class="<?= $section_child_class ?>">
9<?= $content ?> 9<?= $content ?>
10 </div> 10 </div>
11</section> \ No newline at end of file 11</section> \ No newline at end of file