From f5168fd1984624fe60f5583384c82b892b9196dc Mon Sep 17 00:00:00 2001
From: Fil <fil@rezo.net>
Date: Mon, 2 Jan 2006 16:06:32 +0000
Subject: [PATCH] bug: safehtml ne doit pas passer en dernier sinon on ne peut
 plus faire [(#TAGS|tags2dcsubject)]"

---
 dist/sommaire.html     |  2 +-
 inc-compilo-index.php3 | 32 +++++++++++++++-----------------
 2 files changed, 16 insertions(+), 18 deletions(-)

diff --git a/dist/sommaire.html b/dist/sommaire.html
index 7c044e9578..9e06b88bab 100644
--- a/dist/sommaire.html
+++ b/dist/sommaire.html
@@ -130,7 +130,7 @@
 		<ul>
 	<BOUCLE_syndic(SYNDIC_ARTICLES) {par date} {inverse} {0,8}>
 		<li class="menu-item">
-		<a href="#URL_ARTICLE">[(#TITRE*)]</a>
+		<a href="#URL_ARTICLE">#TITRE</a>
 		</li>
 	</BOUCLE_syndic>
 		</ul>
diff --git a/inc-compilo-index.php3 b/inc-compilo-index.php3
index 42987c1ead..c171e5efc7 100644
--- a/inc-compilo-index.php3
+++ b/inc-compilo-index.php3
@@ -279,7 +279,7 @@ function champs_traitements ($p) {
 		if (!$ps)
 			$ps = $table_des_traitements[$p->nom_champ][0];
 	}
-		 
+
 	if (!$ps) return $p->code;
 
 	// Si une boucle sous-jacente (?) traite les documents, on insere ici
@@ -296,6 +296,18 @@ function champs_traitements ($p) {
 	if ($p->boucles[$p->id_boucle]->sql_serveur)
 		$p->code = 'supprime_img(' . $p->code . ')';
 
+
+	// Passer |safehtml sur les boucles "sensibles"
+	switch ($p->type_requete) {
+		case 'forums':
+		case 'signatures':
+		case 'syndic_articles':
+			$ps = str_replace('%s', 'safehtml(%s)', $ps);
+			break;
+		default:
+			break;
+	}
+
 	// Remplacer enfin le placeholder %s par le vrai code de la balise
 	return str_replace('%s', $p->code, $ps);
 }
@@ -321,22 +333,8 @@ function applique_filtres($p) {
 
 	// Securite
 	if ($p->interdire_scripts
-	AND $p->etoile != '**') {
-
-		switch ($p->type_requete) {
-			// Passer |safehtml sur les boucles "sensibles"
-			case 'forums':
-			case 'signatures':
-			case 'syndic_articles':
-				$code = "safehtml($code)";
-				break;
-
-			// et |interdire_scripts sur les autres
-			default:
-				$code = "interdire_scripts($code)";
-				break;
-		}
-	}
+	AND $p->etoile != '**')
+		$code = "interdire_scripts($code)";
 
 	return $code;
 }
-- 
GitLab