diff options
Diffstat (limited to 'src/view')
-rw-r--r-- | src/view/BreadcrumbBuilder.php | 4 | ||||
-rw-r--r-- | src/view/GridBuilder.php | 4 | ||||
-rw-r--r-- | src/view/HeadBuilder.php | 8 | ||||
-rw-r--r-- | src/view/MainBuilder.php | 47 | ||||
-rw-r--r-- | src/view/NavBuilder.php | 4 | ||||
-rw-r--r-- | src/view/ViewBuilder.php | 2 |
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 | ||
10 | class ViewBuilder extends AbstractBuilder | 10 | class 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 | } |