aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2025-08-26 02:16:55 +0200
committerpolo <ordipolo@gmx.fr>2025-08-26 02:16:55 +0200
commitfdbc0d2c6366019249d19ed387df877eda90b320 (patch)
treec680532ad67c0b3b212c60fe17410a3f5b772031
parentf4df3e9b9df3d54ce58796f923da70ff7e566018 (diff)
downloadcms-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.js10
-rw-r--r--public/js/new_page.js10
-rw-r--r--src/view/NewsBlockBuilder.php2
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 @@
4function makePageNamePath(){ 4function 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 @@
4function makePageNamePath(){ 4function 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";