summaryrefslogtreecommitdiff
path: root/src/view
diff options
context:
space:
mode:
Diffstat (limited to 'src/view')
-rw-r--r--src/view/BreadcrumbBuilder.php4
-rw-r--r--src/view/GridBuilder.php4
-rw-r--r--src/view/HeadBuilder.php8
-rw-r--r--src/view/MainBuilder.php47
-rw-r--r--src/view/NavBuilder.php4
-rw-r--r--src/view/ViewBuilder.php2
6 files changed, 38 insertions, 31 deletions
diff --git a/src/view/BreadcrumbBuilder.php b/src/view/BreadcrumbBuilder.php
index fcdcd41..c042fa9 100644
--- a/src/view/BreadcrumbBuilder.php
+++ b/src/view/BreadcrumbBuilder.php
@@ -41,8 +41,8 @@ class BreadcrumbBuilder extends AbstractBuilder
41 $html .= '<span class="arrow"> →</span>' . "\n"; 41 $html .= '<span class="arrow"> →</span>' . "\n";
42 } 42 }
43 43
44 // fin du chemin 44 // fin du chemin (=> Thésée)
45 $html .= '<span aria-current="page">' . $breadcrumb_array[$nb_of_entries - 1]->getPageName() . "</span>\n"; 45 $html .= '<span id="thesee" aria-current="page">' . $breadcrumb_array[$nb_of_entries - 1]->getPageName() . "</span>\n";
46 $html .= "</nav>\n"; 46 $html .= "</nav>\n";
47 } 47 }
48 return $html; 48 return $html;
diff --git a/src/view/GridBuilder.php b/src/view/GridBuilder.php
index 6845c49..30a9040 100644
--- a/src/view/GridBuilder.php
+++ b/src/view/GridBuilder.php
@@ -69,8 +69,8 @@ class GridBuilder extends AbstractBuilder
69 $content = $this->html; 69 $content = $this->html;
70 70
71 ob_start(); 71 ob_start();
72 require $viewFile; 72 require $viewFile; // utilise $content
73 $this->html = ob_get_clean(); // pas de concaténation ici, on écrase 73 $this->html = ob_get_clean(); // nouveau contenu
74 } 74 }
75 } 75 }
76} \ No newline at end of file 76} \ No newline at end of file
diff --git a/src/view/HeadBuilder.php b/src/view/HeadBuilder.php
index 2cca757..4b913b9 100644
--- a/src/view/HeadBuilder.php
+++ b/src/view/HeadBuilder.php
@@ -28,12 +28,18 @@ class HeadBuilder extends AbstractBuilder
28 { 28 {
29 $css .= '<link rel="stylesheet" href="css/' . $name . '.css">' . "\n"; 29 $css .= '<link rel="stylesheet" href="css/' . $name . '.css">' . "\n";
30 } 30 }
31 $js = ''; 31
32 $js = '';
32 foreach($js_array as $name) 33 foreach($js_array as $name)
33 { 34 {
34 $js .= '<script src="js/' . $name . '.js"></script>' . "\n"; 35 $js .= '<script src="js/' . $name . '.js"></script>' . "\n";
35 } 36 }
36 37
38 if(MainBuilder::$modif_mode){
39 $css .= '<link rel="stylesheet" href="css/modif_page.css">' . "\n";
40 $js .= '<script src="js/modif_page.js"></script>' . "\n";
41 }
42
37 // tinymce, nécéssite un script de copie dans composer.json 43 // tinymce, nécéssite un script de copie dans composer.json
38 if($_SESSION['admin']){ 44 if($_SESSION['admin']){
39 $css .= '<link rel="stylesheet" href="css/tinymce.css">' . "\n"; 45 $css .= '<link rel="stylesheet" href="css/tinymce.css">' . "\n";
diff --git a/src/view/MainBuilder.php b/src/view/MainBuilder.php
index 5096134..11f5c4b 100644
--- a/src/view/MainBuilder.php
+++ b/src/view/MainBuilder.php
@@ -14,7 +14,7 @@ class MainBuilder extends AbstractBuilder
14 { 14 {
15 $this->html .= "<main>\n"; 15 $this->html .= "<main>\n";
16 16
17 // cas particulier de la page article où l'article est greffé sur main 17 // page article: cas particulier où l'article est greffé sur main
18 if(Director::$page_path->getLast()->getEndOfPath() === 'article'){ 18 if(Director::$page_path->getLast()->getEndOfPath() === 'article'){
19 // pas censé arriver 19 // pas censé arriver
20 if(!isset($_GET['id'])){ 20 if(!isset($_GET['id'])){
@@ -42,14 +42,18 @@ class MainBuilder extends AbstractBuilder
42 $this->viewEditBlocks($node); 42 $this->viewEditBlocks($node);
43 } 43 }
44 44
45 // cas normal
45 $this->useChildrenBuilder($node); 46 $this->useChildrenBuilder($node);
46 } 47 }
47 48
48 $this->html .= "</main>\n"; 49 $this->html .= "</main>\n";
49 } 50 }
50 51
52 // mode modification de page uniquement
51 private function viewEditBlocks($node): void 53 private function viewEditBlocks($node): void
52 { 54 {
55 $viewFile = self::VIEWS_PATH . $node->getName() . '.php'; // mode modification uniquement
56
53 // blocs disponibles 57 // blocs disponibles
54 $blocs = ['Blog', 'Grille', 'Calendrier', 'Galerie']; // générer ça dynamiquement! 58 $blocs = ['Blog', 'Grille', 'Calendrier', 'Galerie']; // générer ça dynamiquement!
55 $blocs_true_names = ['blog', 'grid', 'calendar', 'galery']; 59 $blocs_true_names = ['blog', 'grid', 'calendar', 'galery'];
@@ -68,41 +72,36 @@ class MainBuilder extends AbstractBuilder
68 </div> 72 </div>
69 </aside>' . "\n";*/ 73 </aside>' . "\n";*/
70 74
71 // création d'un bloc 75 //$page_id = Director::$page_path->getLast()->getId();
72 $this->html .= '<div class="edit_bloc_zone"> 76 $head_node = null;
73 <div class="new_bloc"> 77 foreach(ViewBuilder::$root_node->getChildren() as $first_level_node){
74 <p>Ajouter un bloc de page</p> 78 if($first_level_node->getName() === 'head'){
75 <form method="post" action="' . new URL(['page' => CURRENT_PAGE]) . '"> 79 $head_node = $first_level_node; // normallement c'est le 1er enfant
76 <p><label for="bloc_title">Titre</label> 80 break;
77 <input type="text" id="bloc_title" name="bloc_title" required></p> 81 }
78 <p><label for="bloc_select">Type</label> 82 }
79 <select id="bloc_select" name="bloc_select" required>' 83
80 . $options . 84 $bloc_edit = '';
81 '</select>
82 <input type="hidden" name="bloc_title_hidden">
83 <input type="submit" value="Valider"></p>
84 </form>
85 </div>' . "\n";
86 $this->html .= '<div class="modify_bloc">
87 <p>Modifier un bloc</p>';
88 foreach($node->getChildren() as $child_node){ 85 foreach($node->getChildren() as $child_node){
89 // renommage d'un bloc 86 // renommage d'un bloc
90 $this->html .= '<div id="bloc_edit_' . $child_node->getId() . '"> 87 $bloc_edit .= '<div id="bloc_edit_' . $child_node->getId() . '">
91 <p><label for="bloc_rename_' . $child_node->getId() . '">Titre</label> 88 <p><label for="bloc_rename_' . $child_node->getId() . '">Titre</label>
92 <input type="text" id="bloc_rename_' . $child_node->getId() . '" name="bloc_rename_title" value="' . $child_node->getNodeData()->getdata()['title'] . '" required> 89 <input type="text" id="bloc_rename_' . $child_node->getId() . '" name="bloc_rename_title" value="' . $child_node->getNodeData()->getdata()['title'] . '" required>
93 <button onclick="renamePageBloc(' . $child_node->getId() . ')">Renommer</button>'. "\n"; 90 <button onclick="renamePageBloc(' . $child_node->getId() . ')">Renommer</button>'. "\n";
94 // déplacement d'un bloc 91 // déplacement d'un bloc
95 $this->html .= '<img class="action_icon" onclick="switchBlocsPositions(' . $child_node->getId() . ', \'up\', \'' . CURRENT_PAGE . '\')" src="assets/arrow-up.svg"> 92 $bloc_edit .= '<img class="action_icon" onclick="switchBlocsPositions(' . $child_node->getId() . ', \'up\', \'' . CURRENT_PAGE . '\')" src="assets/arrow-up.svg">
96 <img class="action_icon" onclick="switchBlocsPositions(' . $child_node->getId() . ', \'down\', \'' . CURRENT_PAGE . '\')" src="assets/arrow-down.svg">' . "\n"; 93 <img class="action_icon" onclick="switchBlocsPositions(' . $child_node->getId() . ', \'down\', \'' . CURRENT_PAGE . '\')" src="assets/arrow-down.svg">' . "\n";
97 // suppression d'un bloc 94 // suppression d'un bloc
98 $this->html .= '<form method="post" action="' . new URL(['page' => CURRENT_PAGE]) . '"> 95 $bloc_edit .= '<form method="post" action="' . new URL(['page' => CURRENT_PAGE]) . '">
99 <input type="hidden" name="delete_bloc_id" value="' . $child_node->getId() . '"> 96 <input type="hidden" name="delete_bloc_id" value="' . $child_node->getId() . '">
100 <input type="hidden" name="delete_bloc_hidden"> 97 <input type="hidden" name="delete_bloc_hidden">
101 <input type="submit" value="Supprimer"></p> 98 <input type="submit" value="Supprimer"></p>
102 </form> 99 </form>
103 </div>'. "\n"; 100 </div>'. "\n";
104 } 101 }
105 $this->html .= "</div> 102
106 </div>\n"; 103 ob_start();
104 require $viewFile;
105 $this->html .= ob_get_clean();
107 } 106 }
108} 107} \ No newline at end of file
diff --git a/src/view/NavBuilder.php b/src/view/NavBuilder.php
index f4fb651..fd5f867 100644
--- a/src/view/NavBuilder.php
+++ b/src/view/NavBuilder.php
@@ -53,7 +53,7 @@ class NavBuilder extends AbstractBuilder
53 { 53 {
54 $li_class .= $data->getParent() == null ? 'drop-down' : 'drop-right'; 54 $li_class .= $data->getParent() == null ? 'drop-down' : 'drop-right';
55 55
56 $nav_html .= '<li class="'. $li_class . '">' . $link . '<p>' . $data->getPageName() . '</p></a><ul class="sub-menu">' . "\n"; 56 $nav_html .= '<li class="'. $li_class . '">' . $link . '<p id="m_' . $data->getId() . '">' . $data->getPageName() . '</p></a><ul class="sub-menu">' . "\n";
57 $level++; 57 $level++;
58 $nav_html .= $this->navMainHTML($data, $current); 58 $nav_html .= $this->navMainHTML($data, $current);
59 $level--; 59 $level--;
@@ -61,7 +61,7 @@ class NavBuilder extends AbstractBuilder
61 } 61 }
62 else 62 else
63 { 63 {
64 $nav_html .= '<li class="'. $li_class . '">' . $link . '<p>' . $data->getPageName() . '</p></a></li>' . "\n"; 64 $nav_html .= '<li class="'. $li_class . '">' . $link . '<p id="m_' . $data->getId() . '">' . $data->getPageName() . '</p></a></li>' . "\n";
65 } 65 }
66 } 66 }
67 67
diff --git a/src/view/ViewBuilder.php b/src/view/ViewBuilder.php
index acac972..2e2fea6 100644
--- a/src/view/ViewBuilder.php
+++ b/src/view/ViewBuilder.php
@@ -9,8 +9,10 @@ use App\Entity\Node;
9 9
10class ViewBuilder extends AbstractBuilder 10class ViewBuilder extends AbstractBuilder
11{ 11{
12 static public Node $root_node;
12 public function __construct(Node $root_node) 13 public function __construct(Node $root_node)
13 { 14 {
15 self::$root_node = $root_node;
14 $this->useChildrenBuilder($root_node); 16 $this->useChildrenBuilder($root_node);
15 } 17 }
16} 18}