diff options
author | polo <ordipolo@gmx.fr> | 2025-08-26 02:16:55 +0200 |
---|---|---|
committer | polo <ordipolo@gmx.fr> | 2025-08-26 02:16:55 +0200 |
commit | fdbc0d2c6366019249d19ed387df877eda90b320 (patch) | |
tree | c680532ad67c0b3b212c60fe17410a3f5b772031 | |
parent | f4df3e9b9df3d54ce58796f923da70ff7e566018 (diff) | |
download | cms-fdbc0d2c6366019249d19ed387df877eda90b320.zip |
caractères accentués conservés sans accent dans les noms de page en snake case
-rw-r--r-- | public/js/modif_page.js | 10 | ||||
-rw-r--r-- | public/js/new_page.js | 10 | ||||
-rw-r--r-- | src/view/NewsBlockBuilder.php | 2 |
3 files changed, 13 insertions, 9 deletions
diff --git a/public/js/modif_page.js b/public/js/modif_page.js index 8ff26c1..b307f69 100644 --- a/public/js/modif_page.js +++ b/public/js/modif_page.js | |||
@@ -4,10 +4,12 @@ | |||
4 | function makePageNamePath(){ | 4 | function makePageNamePath(){ |
5 | const page_name = document.getElementById("page_name"); | 5 | const page_name = document.getElementById("page_name"); |
6 | const page_name_path = document.getElementById("page_name_path"); | 6 | const page_name_path = document.getElementById("page_name_path"); |
7 | page_name_path.value = page_name.value.replace(/\W+/g, " ").trim().toLowerCase().split(' ').join('_'); | 7 | |
8 | 8 | page_name_path.value = page_name.value | |
9 | /* explication de l'expression régulière | 9 | .normalize("NFD") // décompose lettres + accents: é devient "e + accent aigu" |
10 | / = début et fin, \W+ = lettres et chiffres, g = global */ | 10 | .replace(/[\u0300-\u036f]/g, "") // supprime les accents |
11 | .replace(/[^a-zA-Z0-9]+/g, " ") // supprime tout ce qu'il n'est pas alphanuméric | ||
12 | .trim().toLowerCase().replaceAll(" ", "_"); | ||
11 | } | 13 | } |
12 | 14 | ||
13 | 15 | ||
diff --git a/public/js/new_page.js b/public/js/new_page.js index 7cfa5b8..5b1c5c5 100644 --- a/public/js/new_page.js +++ b/public/js/new_page.js | |||
@@ -4,10 +4,12 @@ | |||
4 | function makePageNamePath(){ | 4 | function makePageNamePath(){ |
5 | const page_name = document.getElementById("page_name"); | 5 | const page_name = document.getElementById("page_name"); |
6 | const page_name_path = document.getElementById("page_name_path"); | 6 | const page_name_path = document.getElementById("page_name_path"); |
7 | page_name_path.value = page_name.value.replace(/\W+/g, " ").trim().toLowerCase().split(' ').join('_'); | 7 | |
8 | 8 | page_name_path.value = page_name.value | |
9 | /* explication de l'expression régulière | 9 | .normalize("NFD") // décompose lettres + accents: é devient "e + accent aigu" |
10 | / = début et fin, \W+ = lettres et chiffres, g = global */ | 10 | .replace(/[\u0300-\u036f]/g, "") // supprime les accents |
11 | .replace(/[^a-zA-Z0-9]+/g, " ") // supprime tout ce qu'il n'est pas alphanuméric | ||
12 | .trim().toLowerCase().replaceAll(" ", "_"); | ||
11 | } | 13 | } |
12 | 14 | ||
13 | 15 | ||
diff --git a/src/view/NewsBlockBuilder.php b/src/view/NewsBlockBuilder.php index eebeadb..e449c7a 100644 --- a/src/view/NewsBlockBuilder.php +++ b/src/view/NewsBlockBuilder.php | |||
@@ -35,7 +35,7 @@ class NewsBlockBuilder extends AbstractBuilder | |||
35 | 35 | ||
36 | $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>'; |
37 | 37 | ||
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>'; | 38 | $new_button = '<p><a class="link_to_article" href="' . new URL(['page' => 'article', 'id' => $id, 'from' => CURRENT_PAGE]) . '"><button><img class="action_icon" src="assets/edit.svg">Nouvel article</button></a></p>'; |
39 | 39 | ||
40 | $modify_js = 'onclick="openEditor(\'' . $id . '\')"'; | 40 | $modify_js = 'onclick="openEditor(\'' . $id . '\')"'; |
41 | $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"; |