From 995ba3b7de315e94f35ead9b4e4b51d432c5bb48 Mon Sep 17 00:00:00 2001
From: Fil <fil@rezo.net>
Date: Thu, 1 May 2003 20:42:49 +0000
Subject: [PATCH] =?UTF-8?q?le=20var=5Frecherche=3D...=20mieux=20g=C3=A9r?=
 =?UTF-8?q?=C3=A9=20dans=20les=20#URL=20(compatible=20avec=20les=20anciens?=
 =?UTF-8?q?=20inc-urls.php3,=20m=C3=AAme=20s'il=20est=20plut=C3=B4t=20cons?=
 =?UTF-8?q?eill=C3=A9=20de=20les=20simplifier)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 inc-calcul-squel.php3  |  7 +++++++
 inc-calcul.php3        | 10 ++++++++++
 inc-urls-html.php3     | 24 ++++++------------------
 inc-urls-standard.php3 | 24 ++++++------------------
 4 files changed, 29 insertions(+), 36 deletions(-)

diff --git a/inc-calcul-squel.php3 b/inc-calcul-squel.php3
index 1bf10cda2f..d6ccc9aa50 100644
--- a/inc-calcul-squel.php3
+++ b/inc-calcul-squel.php3
@@ -902,6 +902,13 @@ function parser($texte) {
 		$champs_traitement[$val][] = 'vider_url';
 	}
 
+	// URL_xxx des objets SPIP indexables : gerer le var_recherche
+	$c = array('URL_ARTICLE', 'URL_RUBRIQUE', 'URL_BREVE', 'URL_MOT');
+	reset($c);
+	while (list(, $val) = each($c)) {
+		$champs_traitement[$val][] = 'url_var_recherche';
+	}
+
 	// URLs : remplacer les & par &amp;
 	$c = array('URL_SITE_SPIP', 'URL_SITE', 'LIEN_URL', 'PARAMETRES_FORUM',
 		'URL_ARTICLE', 'URL_RUBRIQUE', 'URL_BREVE', 'URL_FORUM', 'URL_SYNDIC', 'URL_MOT', 'URL_DOCUMENT');
diff --git a/inc-calcul.php3 b/inc-calcul.php3
index 4890f4612c..21477ee538 100644
--- a/inc-calcul.php3
+++ b/inc-calcul.php3
@@ -51,6 +51,16 @@ function transformer_lien_logo($contexte, $lien) {
 	return $lien;
 }
 
+//
+// Ajouter le &var_recherche=toto dans les boucles de recherche
+//
+function url_var_recherche ($url) {
+	if ($GLOBALS['activer_url_recherche'] && $GLOBALS['recherche'] && !ereg("var_recherche", $url)) {
+		$url .= strpos('?', $url) ? '&' : '?';
+		$url .= "var_recherche=".urlencode($GLOBALS['recherche']);
+	}
+	return $url;
+}
 
 //
 // Retrouver le logo d'un objet (et son survol)
diff --git a/inc-urls-html.php3 b/inc-urls-html.php3
index 9bb2977124..452c955e09 100644
--- a/inc-urls-html.php3
+++ b/inc-urls-html.php3
@@ -5,39 +5,27 @@ if (defined("_INC_URLS2")) return;
 define("_INC_URLS2", "1");
 
 function generer_url_article($id_article) {
-	$url = "article$id_article.html";
-	if ($GLOBALS['activer_url_recherche'] && $GLOBALS['recherche']) $url .= "?var_recherche=".urlencode($GLOBALS['recherche']);
-	return $url;
+	return "article$id_article.html";
 }
 
 function generer_url_rubrique($id_rubrique) {
-	$url = "rubrique$id_rubrique.html";
-	if ($GLOBALS['activer_url_recherche'] && $GLOBALS['recherche']) $url .= "?var_recherche=".urlencode($GLOBALS['recherche']);
-	return $url;
+	return "rubrique$id_rubrique.html";
 }
 
 function generer_url_breve($id_breve) {
-	$url = "breve$id_breve.html";
-	if ($GLOBALS['activer_url_recherche'] && $GLOBALS['recherche']) $url .= "?var_recherche=".urlencode($GLOBALS['recherche']);
-	return $url;
+	return "breve$id_breve.html";
 }
 
 function generer_url_forum($id_forum) {
-	$url = "forum$id_forum.html";
-	if ($GLOBALS['activer_url_recherche'] && $GLOBALS['recherche']) $url .= "?var_recherche=".urlencode($GLOBALS['recherche']);
-	return $url;
+	return "forum$id_forum.html";
 }
 
 function generer_url_mot($id_mot) {
-	$url = "mot$id_mot.html";
-	if ($GLOBALS['activer_url_recherche'] && $GLOBALS['recherche']) $url .= "?var_recherche=".urlencode($GLOBALS['recherche']);
-	return $url;
+	return "mot$id_mot.html";
 }
 
 function generer_url_auteur($id_auteur) {
-	$url = "auteur$id_auteur.html";
-	if ($GLOBALS['activer_url_recherche'] && $GLOBALS['recherche']) $url .= "?var_recherche=".urlencode($GLOBALS['recherche']);
-	return $url;
+	return "auteur$id_auteur.html";
 }
 
 function generer_url_document($id_document) {
diff --git a/inc-urls-standard.php3 b/inc-urls-standard.php3
index 61b98d80b7..01ec10e658 100644
--- a/inc-urls-standard.php3
+++ b/inc-urls-standard.php3
@@ -6,39 +6,27 @@ define("_INC_URLS2", "1");
 
 
 function generer_url_article($id_article) {
-	$url = "article.php3?id_article=$id_article";
-	if ($GLOBALS['activer_url_recherche'] && $GLOBALS['recherche']) $url .= "&var_recherche=".urlencode($GLOBALS['recherche']);
-	return $url;
+	return "article.php3?id_article=$id_article";
 }
 
 function generer_url_rubrique($id_rubrique) {
-	$url = "rubrique.php3?id_rubrique=$id_rubrique";
-	if ($GLOBALS['activer_url_recherche'] && $GLOBALS['recherche']) $url .= "&var_recherche=".urlencode($GLOBALS['recherche']);
-	return $url;
+	return "rubrique.php3?id_rubrique=$id_rubrique";
 }
 
 function generer_url_breve($id_breve) {
-	$url = "breve.php3?id_breve=$id_breve";
-	if ($GLOBALS['activer_url_recherche'] && $GLOBALS['recherche']) $url .= "&var_recherche=".urlencode($GLOBALS['recherche']);
-	return $url;
+	return "breve.php3?id_breve=$id_breve";
 }
 
 function generer_url_forum($id_forum) {
-	$url = "forum.php3?id_forum=$id_forum";
-	if ($GLOBALS['activer_url_recherche'] && $GLOBALS['recherche']) $url .= "&var_recherche=".urlencode($GLOBALS['recherche']);
-	return $url;
+	return "forum.php3?id_forum=$id_forum";
 }
 
 function generer_url_mot($id_mot) {
-	$url = "mot.php3?id_mot=$id_mot";
-	if ($GLOBALS['activer_url_recherche'] && $GLOBALS['recherche']) $url .= "&var_recherche=".urlencode($GLOBALS['recherche']);
-	return $url;
+	return "mot.php3?id_mot=$id_mot";
 }
 
 function generer_url_auteur($id_auteur) {
-	$url = "auteur.php3?id_auteur=$id_auteur";
-	if ($GLOBALS['activer_url_recherche'] && $GLOBALS['recherche']) $url .= "&var_recherche=".urlencode($GLOBALS['recherche']);
-	return $url;
+	return "auteur.php3?id_auteur=$id_auteur";
 }
 
 function generer_url_document($id_document) {
-- 
GitLab