From 959527bb712fcd05351d8b4b52ff17786baad454 Mon Sep 17 00:00:00 2001 From: polo Date: Sun, 26 Oct 2025 22:48:49 +0100 Subject: =?UTF-8?q?modification=20du=20nom=20et=20plus=20seulement=20de=20?= =?UTF-8?q?l'URL=20des=20entr=C3=A9es=20"URL"=20du=20menu,=20header/footer?= =?UTF-8?q?:=20renommage=20de=20classes=20et=20input=20absents=20du=20HTML?= =?UTF-8?q?=20sans=20=C3=AAtre=20admin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controller/MenuAndPathsController.php | 19 +++++++++++++----- src/model/Model.php | 3 +++ src/router.php | 4 ++-- src/view/FooterBuilder.php | 20 +++++++++++-------- src/view/HeadBuilder.php | 3 +-- src/view/HeaderBuilder.php | 33 ++++++++++++++++++------------- src/view/MenuBuilder.php | 26 ++++++++++-------------- src/view/templates/footer.php | 20 ++++++++----------- src/view/templates/header.php | 30 ++++++++++++---------------- 9 files changed, 82 insertions(+), 76 deletions(-) (limited to 'src') diff --git a/src/controller/MenuAndPathsController.php b/src/controller/MenuAndPathsController.php index a32b210..6bb098f 100644 --- a/src/controller/MenuAndPathsController.php +++ b/src/controller/MenuAndPathsController.php @@ -42,21 +42,30 @@ class MenuAndPathsController die; } - static public function editUrlEntry(EntityManager $entityManager, array $json): void + // on pourrait utiliser FormValidation ici + static public function editUrl(EntityManager $entityManager, array $json): void { - $url_input = trim($json['url_input']); // faire htmlspecialchars à l'affichage + $url_data = trim($json['input_data']); // garder htmlspecialchars pour l'affichage $page = $entityManager->find('App\Entity\Page', $json['id']); if(!$page){ echo json_encode(['success' => false, 'message' => "id invalide"]); } - elseif(!filter_var($url_input, FILTER_VALIDATE_URL) || !str_starts_with($url_input, 'http')){ + elseif(!in_array($json['field'], ['url_name', 'url_content'])){ + echo json_encode(['success' => false, 'message' => "champ invalide"]); + } + elseif($json['field'] === 'url_content' && (!filter_var($url_data, FILTER_VALIDATE_URL) || !str_starts_with($url_data, 'http'))){ echo json_encode(['success' => false, 'message' => "la chaîne envoyée n'est pas une URL valide"]); } else{ - $page->setEndOfPath($url_input); + if($json['field'] === 'url_name'){ + $page->setPageName($url_data); + } + elseif($json['field'] === 'url_content'){ + $page->setEndOfPath($url_data); + } $entityManager->flush(); - echo json_encode(['success' => true, 'url_input' => $url_input]); + echo json_encode(['success' => true, 'url_data' => $url_data]); } die; } diff --git a/src/model/Model.php b/src/model/Model.php index 68c4c08..eeba8b2 100644 --- a/src/model/Model.php +++ b/src/model/Model.php @@ -1,5 +1,8 @@ getMethod() === 'POST'){ elseif($_GET['menu_edit'] === 'display_in_menu' && isset($json['id']) && isset($json['checked'])){ MenuAndPathsController::displayInMenu($entityManager, $json); } - elseif($_GET['menu_edit'] === 'edit_url_entry' && isset($json['id']) && isset($json['url_input'])){ - MenuAndPathsController::editUrlEntry($entityManager, $json); + elseif($_GET['menu_edit'] === 'url_edit' && isset($json['id']) && isset($json['field']) && isset($json['input_data'])){ + MenuAndPathsController::editUrl($entityManager, $json); } } diff --git a/src/view/FooterBuilder.php b/src/view/FooterBuilder.php index fcb78e0..277de4b 100644 --- a/src/view/FooterBuilder.php +++ b/src/view/FooterBuilder.php @@ -30,17 +30,21 @@ class FooterBuilder extends AbstractBuilder if($_SESSION['admin']) { // données du footer - $buttons_footer_name = ' + $admin_footer_name = ' + '; - $buttons_footer_address = ' + $admin_footer_address = ' + '; - $buttons_footer_email = ' + $admin_footer_email = ' + '; - $buttons_footer_logo = ' + $admin_footer_logo = ' + '; @@ -81,10 +85,10 @@ class FooterBuilder extends AbstractBuilder } $zone_admin = ''; - $buttons_footer_name = ''; - $buttons_footer_address = ''; - $buttons_footer_email = ''; - $buttons_footer_logo = ''; + $admin_footer_name = ''; + $admin_footer_address = ''; + $admin_footer_email = ''; + $admin_footer_logo = ''; } ob_start(); diff --git a/src/view/HeadBuilder.php b/src/view/HeadBuilder.php index fd7f751..3eba9a2 100644 --- a/src/view/HeadBuilder.php +++ b/src/view/HeadBuilder.php @@ -36,8 +36,7 @@ class HeadBuilder extends AbstractBuilder if($_SESSION['admin']){ // édition éléments sur toutes les pages (header, footer et favicon) - $js .= '' . "\n"; - $js .= '' . "\n"; + $js .= '' . "\n"; // tinymce, nécéssite un script de copie dans composer.json $css .= '' . "\n"; diff --git a/src/view/HeaderBuilder.php b/src/view/HeaderBuilder.php index 1c82368..ae9a888 100644 --- a/src/view/HeaderBuilder.php +++ b/src/view/HeaderBuilder.php @@ -57,37 +57,42 @@ class HeaderBuilder extends AbstractBuilder if($_SESSION['admin']){ // assets dans classe editing_zone $editing_zone_margin = '5px'; - $buttons_favicon = ' - + $admin_favicon = ' + + '; - $buttons_background = ' + $admin_background = ' + '; // asset dans classe header_content - $buttons_header_logo = ' + $admin_header_logo = ' + '; // texte dans classe header_content - $buttons_header_title = ' + $admin_header_title = ' + '; - $buttons_header_description = ' + $admin_header_description = ' + '; - //$buttons_social_networks = ''; - $buttons_social_networks = ''; + // icônes réseaux sociaux + $admin_social_networks = ''; } else{ $editing_zone_margin = '0'; - $buttons_favicon = ''; - $buttons_background = ''; - $buttons_header_logo = ''; - $buttons_header_title = ''; - $buttons_header_description = ''; - $buttons_social_networks = ''; + $admin_favicon = ''; + $admin_background = ''; + $admin_header_logo = ''; + $admin_header_title = ''; + $admin_header_description = ''; + $admin_social_networks = ''; } ob_start(); diff --git a/src/view/MenuBuilder.php b/src/view/MenuBuilder.php index 12298cf..8e8b9a9 100644 --- a/src/view/MenuBuilder.php +++ b/src/view/MenuBuilder.php @@ -55,32 +55,26 @@ class MenuBuilder extends AbstractBuilder - - '; + '; - // seul la modification des URL est possible pour l'instant, les noms des entrées de menu attendront + // entrées URL: bouton poubelle + nom du lien + adresse if(str_starts_with($entry->getEndOfPath(), 'http')){ $this->html .= '
- + + + + + - + '; - - // code à recycler pour pouvoir modifier le nom de l'entrée de menu correspondant aux liens - /*$this->html .= ' - - - - - - - ';*/ } else{ - $this->html .= '' . $entry->getPagePath() . ''; + $this->html .= ' + ' . $entry->getPagePath() . ''; } if(count($entry->getChildren()) > 0){ diff --git a/src/view/templates/footer.php b/src/view/templates/footer.php index 4db38ae..dc1c6cb 100644 --- a/src/view/templates/footer.php +++ b/src/view/templates/footer.php @@ -4,25 +4,21 @@
\ No newline at end of file -- cgit v1.2.3