From 664db9984a1f6f3c2bd308546167df9eea1f95ac Mon Sep 17 00:00:00 2001
From: Fil <fil@rezo.net>
Date: Tue, 24 Feb 2009 15:13:05 +0000
Subject: [PATCH] Transformer les caracteres utf8 d'une URL (farsi par ex)
 selon la RFC 1738

---
 ecrire/balise/url_.php | 2 +-
 ecrire/inc/utils.php   | 8 ++++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/ecrire/balise/url_.php b/ecrire/balise/url_.php
index dd1e4fa73a..a5f8800c3f 100644
--- a/ecrire/balise/url_.php
+++ b/ecrire/balise/url_.php
@@ -58,7 +58,7 @@ function generer_generer_url_arg($type, $p, $_id)
 	}
 	else 
 		$s = ", '', '', true";
-	return "generer_url_entite($_id, '$type'$s)";
+	return "urlencode_1738(generer_url_entite($_id, '$type'$s))";
 }
 
 
diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index 61a5971eea..66e8cfc67a 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -804,6 +804,14 @@ function generer_url_entite($id='', $entite='', $args='', $ancre='', $public=NUL
 	return '';
 }
 
+// Transformer les caracteres utf8 d'une URL (farsi par ex) selon la RFC 1738
+function urlencode_1738($url) {
+	return str_replace(
+		array('%2F','%3D','%3F','%26'),
+		array('/'  ,'='  ,'?'  ,'&amp;'),
+		rawurlencode($url));
+}
+
 // http://doc.spip.org/@generer_url_entite_absolue
 function generer_url_entite_absolue($id='', $entite='', $args='', $ancre='', $connect=NULL)
 {
-- 
GitLab