From 9c138e36890ac9c24a31b6d6c0900b3ac6f78327 Mon Sep 17 00:00:00 2001
From: toggg <bertrand@toggg.com>
Date: Wed, 4 Apr 2007 20:19:59 +0000
Subject: [PATCH] Nettoyage de l'ancre dans ancre_url()

---
 ecrire/inc/utils.php | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index efc1d34f37..2a0c40d2f1 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -338,14 +338,18 @@ function parametre_url($url, $c, $v=NULL, $sep='&amp;') {
 	return $a . $ancre;
 }
 
-//
-// Prend une URL et lui ajoute/retire une ancre.
-// http://doc.spip.org/@ancre_url
+// Prend une URL et lui ajoute/retire une ancre après l'avoir nettoyee
+// pour l'ancre on translitere, vire les non alphanum du debut,
+// et on remplace ceux a l'interieur ou au bout par -
+// http://doc.spip.org/@ancre_url replace{}
 function ancre_url($url, $ancre) {
+	include_spip('inc/charsets');
 	// lever l'#ancre
 	if (preg_match(',^([^#]*)(#.*)$,', $url, $r)) {
 		$url = $r[1];
 	}
+	$ancre = preg_replace(array('/^[^-_a-zA-Z0-9]+/', '/[^-_a-zA-Z0-9]/'), array('', '-'),
+					translitteration($ancre));
 	return $url .'#'. $ancre;
 }
 
-- 
GitLab