From e2f0dba5d0f0455a3b6dd676c0b800321ad1c5d9 Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Sat, 8 Apr 2006 07:46:26 +0000
Subject: [PATCH] Afficher_liste retourne du code HTML au lieu de l'afficher
 (exauce #206)

---
 ecrire/exec/admin_plugin.php  |  2 +-
 ecrire/exec/articles.php      |  5 +--
 ecrire/inc/message_select.php |  9 +++--
 ecrire/inc/mots.php           | 67 +++++++++++++++--------------------
 ecrire/inc/presentation.php   | 45 ++++++++++++-----------
 ecrire/inc/sites_voir.php     |  7 ++--
 ecrire/public/criteres.php    |  1 -
 7 files changed, 62 insertions(+), 74 deletions(-)

diff --git a/ecrire/exec/admin_plugin.php b/ecrire/exec/admin_plugin.php
index 5994139927..47b63cc751 100644
--- a/ecrire/exec/admin_plugin.php
+++ b/ecrire/exec/admin_plugin.php
@@ -190,7 +190,7 @@ function exec_admin_plugin_dist(){
 
 	$largeurs = array('','15px','20px','120px');
 	$styles = array('arial11', 'arial1','arial1', 'arial1');
-	afficher_liste($largeurs, $tableau, $styles);
+	echo afficher_liste($largeurs, $tableau, $styles);
 	echo "</table>";
 	echo "</div>\n";
 	
diff --git a/ecrire/exec/articles.php b/ecrire/exec/articles.php
index 23739d51b7..1905472e09 100644
--- a/ecrire/exec/articles.php
+++ b/ecrire/exec/articles.php
@@ -846,7 +846,7 @@ function langues_articles($id_article, $langue_article, $flag_editable, $id_rubr
 
 				$largeurs = array(7, 12, '', 100);
 				$styles = array('', '', 'arial2', 'arial2');
-				afficher_liste($largeurs, $table, $styles);
+				echo afficher_liste($largeurs, $table, $styles);
 
 				echo "</table>";
 				echo "</div>";
@@ -1080,7 +1080,7 @@ function afficher_auteurs_articles($id_article, $flag_editable)
 	
 	$largeurs = array('14', '', '', '', '', '', '');
 	$styles = array('arial11', 'arial2', 'arial11', 'arial11', 'arial11', 'arial11', 'arial1');
-	afficher_liste($largeurs, $table, $styles);
+	echo afficher_liste($largeurs, $table, $styles);
 
 	
 	echo "</table></div>\n";
@@ -1469,6 +1469,7 @@ global $ajout_auteur, $annee, $annee_redac, $avec_redac, $champs_extra, $change_
 
  $id_parent = intval($id_parent);
  $nouv_auteur = intval($nouv_auteur);
+ $supp_mot = intval($supp_mot);
  if (!($id_article=intval($id_article))) {
    $id_article = insert_article($id_parent, $new);
    add_auteur_article($id_article, $connect_id_auteur);
diff --git a/ecrire/inc/message_select.php b/ecrire/inc/message_select.php
index 92137940d1..28cadf1507 100644
--- a/ecrire/inc/message_select.php
+++ b/ecrire/inc/message_select.php
@@ -85,8 +85,8 @@ function afficher_messages($titre_table, $query_message, &$messages_vus, $affich
 			// Auteurs
 
 			if ($afficher_auteurs) {
-				$query_auteurs = "SELECT auteurs.id_auteur, auteurs.nom FROM spip_auteurs AS auteurs, spip_auteurs_messages AS lien WHERE lien.id_message=$id_message AND lien.id_auteur!=$connect_id_auteur AND lien.id_auteur=auteurs.id_auteur";
-				$result_auteurs = spip_query($query_auteurs);
+				$result_auteurs = spip_query("SELECT auteurs.id_auteur, auteurs.nom FROM spip_auteurs AS auteurs, spip_auteurs_messages AS lien WHERE lien.id_message=$id_message AND lien.id_auteur!=$connect_id_auteur AND lien.id_auteur=auteurs.id_auteur");
+
 				$auteurs = '';
 				while ($row_auteurs = spip_fetch_array($result_auteurs)) {
 					$id_auteur = $row_auteurs['id_auteur'];
@@ -105,8 +105,7 @@ function afficher_messages($titre_table, $query_message, &$messages_vus, $affich
 			//
 			// Messages de forums
 			
-			$query_forum = "SELECT * FROM spip_forum WHERE id_message = $id_message";
-			$total_forum = spip_num_rows(spip_query($query_forum));
+			$total_forum = spip_num_rows(spip_query("SELECT id_message FROM spip_forum WHERE id_message = $id_message"));
 			
 			if ($total_forum > 0) $vals[] = "($total_forum)";
 			else $vals[] = "";
@@ -149,7 +148,7 @@ function afficher_messages($titre_table, $query_message, &$messages_vus, $affich
 			$largeurs = array('', 20, 120);
 			$styles = array('arial2', 'arial1', 'arial1');
 		}
-		afficher_liste($largeurs, $table, $styles);
+		echo afficher_liste($largeurs, $table, $styles);
 
 		echo "</TABLE>";
 		echo "</div>\n\n";
diff --git a/ecrire/inc/mots.php b/ecrire/inc/mots.php
index 3cf4e807e0..cd451598cc 100644
--- a/ecrire/inc/mots.php
+++ b/ecrire/inc/mots.php
@@ -159,8 +159,8 @@ function formulaire_mots($table, $id_objet, $nouv_mot, $supp_mot, $cherche_mot,
 	$tous_les_mots = split(" *[,;] *", $cherche_mot);
 	while ((list(,$cherche_mot) = each ($tous_les_mots)) AND $cherche_mot) {
 		echo "<P ALIGN='left'>";
-		$query = "SELECT id_mot, titre FROM spip_mots WHERE id_groupe='$select_groupe'";
-		$result = spip_query($query);
+		$result = spip_query("SELECT id_mot, titre FROM spip_mots WHERE id_groupe='$select_groupe'");
+
 		unset($table_mots);
 		unset($table_ids);
 		while ($row = spip_fetch_array($result)) {
@@ -180,8 +180,8 @@ function formulaire_mots($table, $id_objet, $nouv_mot, $supp_mot, $cherche_mot,
 			else if ($table == 'breves') echo _T('info_la_breve');
 			else if ($table == 'rubriques') echo _T('info_la_rubrique');
 			echo " : </B><BR>";
-			$query = "SELECT * FROM spip_mots WHERE id_mot=$nouv_mot";
-			$result = spip_query($query);
+			$result = spip_query("SELECT * FROM spip_mots WHERE id_mot=$nouv_mot");
+
 			echo "<UL>";
 			while ($row = spip_fetch_array($result)) {
 				$id_mot = $row['id_mot'];
@@ -206,8 +206,8 @@ function formulaire_mots($table, $id_objet, $nouv_mot, $supp_mot, $cherche_mot,
 				}
 				$les_mots = join(',', $les_mots);
 				echo "<B>"._T('info_plusieurs_mots_trouves', array('cherche_mot' => $cherche_mot))."</B><BR>";
-				$query = "SELECT * FROM spip_mots WHERE id_mot IN ($les_mots) ORDER BY titre";
-				$result = spip_query($query);
+				$result = spip_query("SELECT * FROM spip_mots WHERE id_mot IN ($les_mots) ORDER BY titre");
+
 				echo "<UL>";
 				while ($row = spip_fetch_array($result)) {
 					$id_mot = $row['id_mot'];
@@ -249,23 +249,20 @@ function formulaire_mots($table, $id_objet, $nouv_mot, $supp_mot, $cherche_mot,
 
 	if ($nouveaux_mots && $flag_editable) {
 		while ((list(,$nouv_mot) = each($nouveaux_mots)) AND $nouv_mot!='x') {
-			$query = "SELECT * FROM spip_mots_$table WHERE id_mot=$nouv_mot AND $table_id=$id_objet";
-			$result = spip_query($query);
+			$result = spip_query("SELECT * FROM spip_mots_$table WHERE id_mot=$nouv_mot AND $table_id=$id_objet");
+
 			if (!spip_num_rows($result)) {
-				$query = "INSERT INTO spip_mots_$table (id_mot,$table_id) VALUES ($nouv_mot, $id_objet)";
-				$result = spip_query($query);
+				$result = spip_query("INSERT INTO spip_mots_$table (id_mot,$table_id) VALUES ($nouv_mot, $id_objet)");
+
 			}
 		}
 		$reindexer = true;
 	}
 
-	if ($supp_mot && $flag_editable) {
-		if ($supp_mot == -1)
-			$mots_supp = "";
-		else
-			$mots_supp = " AND id_mot=$supp_mot";
-		$query = "DELETE FROM spip_mots_$table WHERE $table_id=$id_objet $mots_supp";
-		$result = spip_query($query);
+	if ($flag_editable && ($supp_mot = intval($suppmot))) {
+		$result = spip_query("DELETE FROM spip_mots_$table WHERE $table_id=$id_objet" . 
+				     (($supp_mot == -1) ?  "" :  " AND id_mot=$supp_mot"));
+
 		$reindexer = true;
 	}
 
@@ -281,8 +278,8 @@ function formulaire_mots($table, $id_objet, $nouv_mot, $supp_mot, $cherche_mot,
 
 	unset($les_mots);
 
-	$query = "SELECT mots.* FROM spip_mots AS mots, spip_mots_$table AS lien WHERE lien.$table_id=$id_objet AND mots.id_mot=lien.id_mot ORDER BY mots.type, mots.titre";
-	$result = spip_query($query);
+	$result = spip_query("SELECT mots.* FROM spip_mots AS mots, spip_mots_$table AS lien WHERE lien.$table_id=$id_objet AND mots.id_mot=lien.id_mot ORDER BY mots.type, mots.titre");
+
 
 	if (spip_num_rows($result) > 0) {
 		echo "<div class='liste'>";
@@ -298,8 +295,8 @@ function formulaire_mots($table, $id_objet, $nouv_mot, $supp_mot, $cherche_mot,
 			$titre_mot = $row['titre'];
 			$descriptif_mot = $row['descriptif'];
 			$id_groupe = $row['id_groupe'];
-			$query_groupe = "SELECT * FROM spip_groupes_mots WHERE id_groupe = $id_groupe";
-			$result_groupe = spip_query($query_groupe);
+			$result_groupe = spip_query("SELECT * FROM spip_groupes_mots WHERE id_groupe = $id_groupe");
+
 			while($row_groupe = spip_fetch_array($result_groupe)) {
 				$id_groupe = $row_groupe['id_groupe'];
 				$titre_groupe = entites_html($row_groupe['titre']);
@@ -333,8 +330,8 @@ function formulaire_mots($table, $id_objet, $nouv_mot, $supp_mot, $cherche_mot,
 			if ($unseul == "oui" AND $flag_groupe) {
 				$s =  generer_url_post_ecrire($url_base,"$table_id=$id_objet", '', "#mots") . 
 					"<select name='nouv_mot' onChange=\"setvisibility('valider_groupe_$id_groupe', 'visible');\" CLASS='fondl' STYLE='font-size:10px; width:90px;'>";
-				$query_autres_mots = "SELECT * FROM spip_mots WHERE id_groupe = $id_groupe ORDER by titre";
-				$result_autres_mots = spip_query($query_autres_mots);
+				$result_autres_mots = spip_query("SELECT * FROM spip_mots WHERE id_groupe = $id_groupe ORDER by titre");
+
 				while ($row_autres = spip_fetch_array($result_autres_mots)) {
 					$le_mot = $row_autres['id_mot'];
 					$le_titre_mot = supprimer_tags(typo($row_autres['titre']));
@@ -372,9 +369,7 @@ function formulaire_mots($table, $id_objet, $nouv_mot, $supp_mot, $cherche_mot,
 	
 		$largeurs = array('25', '', '', '');
 		$styles = array('arial11', 'arial2', 'arial2', 'arial1');
-		afficher_liste($largeurs, $tableau, $styles);
-	
-	
+		echo afficher_liste($largeurs, $tableau, $styles);
 		echo "</table></div>";
 	}
 
@@ -387,10 +382,8 @@ function formulaire_mots($table, $id_objet, $nouv_mot, $supp_mot, $cherche_mot,
 	if ($id_groupes_vus) $id_groupes_vus = join($id_groupes_vus, ",");
 	else $id_groupes_vus = "0";
 
-	$query_groupes = "SELECT * FROM spip_groupes_mots WHERE $table = 'oui'
-	AND ".substr($connect_statut,1)." = 'oui' AND obligatoire = 'oui'
-	AND id_groupe NOT IN ($id_groupes_vus)";
-	$nb_groupes = spip_num_rows(spip_query($query_groupes));
+	$nb_groupes = spip_num_rows(spip_query("SELECT * FROM spip_groupes_mots WHERE $table = 'oui' AND ".substr($connect_statut,1)." = 'oui' AND obligatoire = 'oui' AND id_groupe NOT IN ($id_groupes_vus)"));
+
 
 	//
 	// Afficher le formulaire d'ajout de mots-cles
@@ -426,11 +419,11 @@ function formulaire_mots($table, $id_objet, $nouv_mot, $supp_mot, $cherche_mot,
 
 		echo "<table border='0' width='100%' style='text-align: $spip_lang_right'>";
 
-		$query_groupes = "SELECT *, ".creer_objet_multi ("titre", "$spip_lang")." FROM spip_groupes_mots WHERE $table = 'oui'
+		$result_groupes = spip_query("SELECT *, ".creer_objet_multi ("titre", "$spip_lang")." FROM spip_groupes_mots WHERE $table = 'oui'
 		AND ".substr($connect_statut,1)." = 'oui' AND (unseul != 'oui'  OR
 		(unseul = 'oui' AND id_groupe NOT IN ($id_groupes_vus)))
-		ORDER BY multi";
-		$result_groupes = spip_query($query_groupes);
+		ORDER BY multi");
+
 
 		// Afficher un menu par groupe de mots
 
@@ -448,10 +441,8 @@ function formulaire_mots($table, $id_objet, $nouv_mot, $supp_mot, $cherche_mot,
 			$acces_comite = $row_groupes['comite'];
 			$acces_forum = $row_groupes['forum'];
 			
-			$query = "SELECT * FROM spip_mots WHERE id_groupe = '$id_groupe' ";
-			if ($les_mots) $query .= "AND id_mot NOT IN ($les_mots) ";
-			$query .= "ORDER BY type, titre";
-			$result = spip_query($query);
+			$result = spip_query("SELECT * FROM spip_mots WHERE id_groupe =$id_groupe " . ($les_mots ? "AND id_mot NOT IN ($les_mots) " : '') .  "ORDER BY type, titre");
+
 			if (spip_num_rows($result) > 0) {
 				if ((spip_num_rows($result) > 50)) {
 					echo "\n<tr>";
@@ -701,7 +692,7 @@ function afficher_groupe_mots($id_groupe) {
 			$largeurs = array('', 100);
 			$styles = array('arial11', 'arial1');
 		}
-		afficher_liste($largeurs, $table, $styles);
+		echo afficher_liste($largeurs, $table, $styles);
 
 		echo "</table>";
 //		fin_cadre_relief();
diff --git a/ecrire/inc/presentation.php b/ecrire/inc/presentation.php
index bcd6168b44..0d0b6fca15 100644
--- a/ecrire/inc/presentation.php
+++ b/ecrire/inc/presentation.php
@@ -402,17 +402,16 @@ function afficher_plus($lien) {
 //
 
 function afficher_liste($largeurs, $table, $styles = '') {
-	global $browser_name;
-	global $spip_display;
-	global $spip_lang_left;
+	global $browser_name, $spip_display, $spip_lang_left;
 
-	if (!is_array($table)) return;
+	if (!is_array($table)) return "";
 	reset($table);
-	echo "\n";
 	if ($spip_display != 4) {
+		$res = '';
 		while (list(, $t) = each($table)) {
-			if (eregi("msie", $browser_name)) $msover = " onMouseOver=\"changeclass(this,'tr_liste_over');\" onMouseOut=\"changeclass(this,'tr_liste');\"";
-			echo "<tr class='tr_liste'$msover>";
+			$res .= "\n<tr class='tr_liste'" .
+			  (eregi("msie", $browser_name) ? " onMouseOver=\"changeclass(this,'tr_liste_over');\" onMouseOut=\"changeclass(this,'tr_liste');\"" :'') .
+			  ">";
 			reset($largeurs);
 			if ($styles) reset($styles);
 			while (list(, $texte) = each($t)) {
@@ -420,17 +419,17 @@ function afficher_liste($largeurs, $table, $styles = '') {
 				list(, $largeur) = each($largeurs);
 				if ($styles) list(, $style) = each($styles);
 				if (!trim($texte)) $texte .= "&nbsp;";
-				echo "<td";
-				if ($largeur) echo " width=\"$largeur\"";
-				if ($style) echo " class=\"$style\"";
-				echo ">$texte</td>";
+				$res .= "<td" .
+				  ($largeur ? " width=\"$largeur\"" : '') .
+				  ($style ? " class=\"$style\"" : '') .
+				  ">$texte</td>";
 			}
-			echo "</tr>\n";
+			$res .= "</tr>\n";
 		}
 	} else {
-		echo "<ul style='text-align: $spip_lang_left;'>";
+	  	$res = "\n<ul style='text-align: $spip_lang_left;'>";
 		while (list(, $t) = each($table)) {
-			echo "<li>";
+			$res .= "<li>";
 			reset($largeurs);
 			if ($styles) reset($styles);
 			while (list(, $texte) = each($t)) {
@@ -438,14 +437,14 @@ function afficher_liste($largeurs, $table, $styles = '') {
 				list(, $largeur) = each($largeurs);
 				
 				if (!$largeur) {
-					echo $texte." ";
+					$res .= $texte." ";
 				}
 			}
-			echo "</li>\n";
+			$res .= "</li>\n";
 		}
-		echo "</ul>";
+		$res .= "</ul>\n";
 	}
-	echo "\n";
+	return $res;
 }
 
 function afficher_tranches_requete(&$query, $colspan, $tmp_var=false, $javascript=false, $nb_aff = 10) {
@@ -887,7 +886,7 @@ function afficher_articles($titre_table, $requete, $afficher_visites = false, $a
 				$styles = array('', 'arial2', 'arial1');
 			}
 		}
-		afficher_liste($largeurs, $table, $styles);
+		echo afficher_liste($largeurs, $table, $styles);
 
 		//echo "</table>";
 		echo afficher_liste_fin_tableau();
@@ -1085,7 +1084,7 @@ function afficher_articles_trad($titre_table, $requete, $afficher_visites = fals
 		$largeurs = array(11, 24, '', '1');
 		$styles = array('', 'arial1', 'arial1', '');
 
-		afficher_liste($largeurs, $table, $styles);
+		echo afficher_liste($largeurs, $table, $styles);
 
 		//echo "</table>";
 		echo afficher_liste_fin_tableau();
@@ -1197,7 +1196,7 @@ function afficher_breves($titre_table, $requete, $affrub=false) {
 			$styles = array('','arial11', 'arial1');
 		}
 
-		afficher_liste($largeurs, $table, $styles);
+		echo afficher_liste($largeurs, $table, $styles);
 
 		echo "</table></div>";
 		//fin_cadre_relief();
@@ -1268,7 +1267,7 @@ function afficher_rubriques($titre_table, $requete) {
 
 		$largeurs = array('12','', '');
 		$styles = array('', 'arial2', 'arial11');
-		afficher_liste($largeurs, $table, $styles);
+		echo afficher_liste($largeurs, $table, $styles);
 
 		echo "</TABLE>";
 		//fin_cadre_relief();
@@ -1366,7 +1365,7 @@ function afficher_auteurs ($titre_table, $requete) {
 
 		$largeurs = array('');
 		$styles = array('arial2');
-		afficher_liste($largeurs, $table, $styles);
+		echo afficher_liste($largeurs, $table, $styles);
 
 		if ($titre_table) echo "</TABLE></TD></TR>";
 		echo "</TABLE>";
diff --git a/ecrire/inc/sites_voir.php b/ecrire/inc/sites_voir.php
index be2b153574..453d03d430 100644
--- a/ecrire/inc/sites_voir.php
+++ b/ecrire/inc/sites_voir.php
@@ -125,7 +125,7 @@ function afficher_sites($titre_table, $requete) {
 		
 		$largeurs = array('','','');
 		$styles = array('arial11', 'arial1', 'arial1');
-		afficher_liste($largeurs, $table, $styles);
+		echo afficher_liste($largeurs, $table, $styles);
 		echo "</table>";
 		//fin_cadre_relief();
 		echo "</div>\n";
@@ -240,8 +240,7 @@ function afficher_syndic_articles($titre_table, $requete, $afficher_site = false
 
 			// $my_sites cache les resultats des requetes sur les sites
 			if (!$my_sites[$id_syndic])
-				$my_sites[$id_syndic] = spip_fetch_array(spip_query(
-					"SELECT * FROM spip_syndic WHERE id_syndic=$id_syndic"));
+				$my_sites[$id_syndic] = spip_fetch_array(spip_query("SELECT * FROM spip_syndic WHERE id_syndic=$id_syndic"));
 
 			if ($afficher_site) {
 				$aff = $my_sites[$id_syndic]['nom_site'];
@@ -292,7 +291,7 @@ function afficher_syndic_articles($titre_table, $requete, $afficher_site = false
 			$styles[] = 'arial1';
 		}
 		
-		afficher_liste($largeurs, $table, $styles);
+		echo afficher_liste($largeurs, $table, $styles);
 
 		echo "</TABLE>";
 		//fin_cadre_relief();
diff --git a/ecrire/public/criteres.php b/ecrire/public/criteres.php
index 8d029a896f..5802882d06 100644
--- a/ecrire/public/criteres.php
+++ b/ecrire/public/criteres.php
@@ -54,7 +54,6 @@ function critere_doublons_dist($idb, &$boucles, $crit) {
 	if (!$boucle->primary)
 		erreur_squelette(_L('doublons sur une table sans index'), $param);
 	$nom = calculer_liste($crit->param[0], array(), $boucles, $boucles[$idb]->id_parent);
-	spip_log("doublons $nom");
 	$boucle->where[] = '" .' .
 	  "\ncalcul_mysql_in('".$boucle->id_table . '.' . $boucle->primary .
 	  "', " .
-- 
GitLab