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 | } |
