From a7c24deae365ec4ed1083bf996278d1f950c76d6 Mon Sep 17 00:00:00 2001
From: ARNO* <arno@rezo.net>
Date: Sun, 26 May 2002 21:21:44 +0000
Subject: [PATCH] =?UTF-8?q?Modification=20dans=20la=20gestion=20des=20mess?=
 =?UTF-8?q?ages=20des=20forums.=20Notamment:=20les=20messages=20priv=C2=8E?=
 =?UTF-8?q?s=20effac=C2=8Es=20passent=20en=20statut=3D"privoff",=20ce=20qu?=
 =?UTF-8?q?i=20permet=20de=20les=20diff=C2=8Erencier=20des=20messages=20pu?=
 =?UTF-8?q?blics=20effac=C2=8Es.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .gitattributes                    |   1 +
 ecrire/articles_forum.php3        |   2 +-
 ecrire/controle_forum.php3        |  35 +++-
 ecrire/controle_forum_prive.php3  | 337 ++++++++++++++++++++++++++++++
 ecrire/controle_forum_public.php3 | 337 ++++++++++++++++++++++++++++++
 ecrire/controle_petition.php3     |   6 +-
 ecrire/forum.php3                 |   6 +-
 ecrire/forum_admin.php3           |   6 +-
 ecrire/img_pack/cadenas-24.gif    | Bin 0 -> 317 bytes
 ecrire/inc.php3                   |   1 +
 ecrire/inc_presentation.php3      |   6 +
 11 files changed, 717 insertions(+), 20 deletions(-)
 create mode 100644 ecrire/controle_forum_prive.php3
 create mode 100644 ecrire/controle_forum_public.php3
 create mode 100644 ecrire/img_pack/cadenas-24.gif

diff --git a/.gitattributes b/.gitattributes
index ebabe7d943..3d9e8535c4 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -61,6 +61,7 @@ ecrire/img_pack/bonhomme-bleu.gif -text
 ecrire/img_pack/bonhomme-noir.gif -text
 ecrire/img_pack/bonhomme-rouge.gif -text
 ecrire/img_pack/breve-24.gif -text
+ecrire/img_pack/cadenas-24.gif -text
 ecrire/img_pack/cadre-b.gif -text
 ecrire/img_pack/cadre-bd.gif -text
 ecrire/img_pack/cadre-bg.gif -text
diff --git a/ecrire/articles_forum.php3 b/ecrire/articles_forum.php3
index be82f14b78..a0be6c0099 100644
--- a/ecrire/articles_forum.php3
+++ b/ecrire/articles_forum.php3
@@ -69,7 +69,7 @@ echo "<p>";
 $mots_cles_forums = lire_meta("mots_cles_forums");
 
 if ($connect_statut == "0minirezo") {
-	$query_forum = "SELECT * FROM spip_forum WHERE id_article='$id_article' AND id_parent=0 AND statut!='redac' ORDER BY date_heure DESC";
+	$query_forum = "SELECT * FROM spip_forum WHERE id_article='$id_article' AND id_parent=0 AND statut!= 'prive' AND statut!='privrac' AND statut!='privadm' AND statut!='privoff' AND statut!='redac' ORDER BY date_heure DESC";
 	$result_forum = spip_query($query_forum);
 	afficher_forum($result_forum, $forum_retour, 'oui');
 }
diff --git a/ecrire/controle_forum.php3 b/ecrire/controle_forum.php3
index 668234f2e9..7fb90d1369 100644
--- a/ecrire/controle_forum.php3
+++ b/ecrire/controle_forum.php3
@@ -4,6 +4,13 @@ include ("inc.php3");
 
 
 debut_page("Suivi des forums", "messagerie", "forum-controle");
+
+echo "<br><br><br>";
+gros_titre("Suivi des forums (tous les messages)");
+barre_onglets("suivi_forum", "tous");
+
+
+
 debut_gauche();
 
 
@@ -194,7 +201,7 @@ function controle_forum($request,$adresse_retour) {
 		
 		if ($compteur_forum==1)
 			echo "<BR><BR>";
-		if ($forum_stat=="off") {
+		if ($forum_stat=="off" OR $forum_stat == "privoff") {
 			echo "<TABLE WIDTH=100% CELLPADDING=2 CELLSPACING=0 BORDER=0><TR><TD BGCOLOR='#FF0000'>";
 		}else if($forum_stat=="prop"){
 			echo "<TABLE WIDTH=100% CELLPADDING=2 CELLSPACING=0 BORDER=0><TR><TD BGCOLOR='#FFFF00'>";
@@ -220,8 +227,15 @@ function controle_forum($request,$adresse_retour) {
 		echo "<TABLE WIDTH=100% CELLPADDING=3 CELLSPACING=0><TR><TD BGCOLOR='$couleur_foncee'><FONT FACE='Verdana,Arial,Helvetica,sans-serif' SIZE=2 COLOR='#FFFFFF'><B>".typo($forum_titre)."</B></FONT></TD></TR>";
 		echo "<TR><TD>";
 		echo "<FONT SIZE=2 FACE='Georgia,Garamond,Times,serif'>";
-		if ($forum_stat=="publie") echo "<FONT FACE='arial,helvetica' COLOR='red'>[sur le site public]</FONT> ";
-		echo "<FONT FACE='arial,helvetica'>$forum_date_heure</FONT>";
+		if ($forum_stat=="publie" OR $forum_stat == "off") {
+			echo "<img src='img_pack/racine-site-24.gif' border=0 align='left'>";
+			echo "<FONT FACE='arial,helvetica' COLOR='#$couleur_foncee'>[sur le site public]</FONT> ";
+		}
+		else if ($forum_stat == "prive" OR $forum_stat == "privrac" OR $forum_stat == "privadm" OR $forum_stat == "privoff"){
+			echo "<img src='img_pack/cadenas-24.gif' border=0 align='left'>";
+			echo "<FONT FACE='arial,helvetica' COLOR='#$couleur_foncee'>[dans l'espace priv&eacute;]</FONT> ";
+		}
+		echo "<FONT FACE='arial,helvetica'>".nom_jour($forum_date_heure)." ".affdate($forum_date_heure)." ˆ ".heures($forum_date_heure)." heures ".minutes($forum_date_heure)."</FONT>";
 		if (strlen($forum_auteur) > 2) {
 			if (strlen($forum_email_auteur) > 3) {
 				$forum_auteur="<A HREF=\"mailto:$forum_email_auteur?SUBJECT=".rawurlencode($forum_titre)."\">$forum_auteur</A>";
@@ -229,8 +243,9 @@ function controle_forum($request,$adresse_retour) {
 			echo "<FONT FACE='arial,helvetica'> / <B>$forum_auteur</B></FONT>";
 		}
 
-		if ($forum_stat <> "off") {
-			icone ("Supprimer ce message", "controle_forum.php3?supp_forum=$id_forum&debut=$debut", "forum-interne-24.gif", "supprimer.gif", "right");
+		if ($forum_stat <> "off" AND $forum_stat <> "prioff") {
+			if ($forum_stat == "publie") icone ("Supprimer ce message", "controle_forum.php3?supp_forum=$id_forum&debut=$debut", "forum-interne-24.gif", "supprimer.gif", "right");
+			else if ($forum_stat == "prive" OR $forum_stat == "privrac" OR $forum_stat == "privadm") icone ("Supprimer ce message", "controle_forum.php3?supp_forum_priv=$id_forum&debut=$debut", "forum-interne-24.gif", "supprimer.gif", "right");
 		}
 		else {
 			echo "<BR><FONT COLOR='red'><B>MESSAGE SUPPRIM&Eacute; $forum_ip</B></FONT>";
@@ -272,7 +287,7 @@ function controle_forum($request,$adresse_retour) {
 		
 		echo "</TD></TR></TABLE>\n";
 
-		if ($forum_stat == 'off' OR $forum_stat=='prop') {
+		if ($forum_stat == 'off' OR $forum_stat == 'privoff' OR $forum_stat=='prop') {
 			echo "</TD></TR></TABLE>";
 		}
 	}
@@ -283,7 +298,7 @@ echo "<FONT SIZE=2 FACE='Georgia,Garamond,Times,serif'>";
  
 if ($connect_statut == "0minirezo") {
 
-	gros_titre("Suivi des forums");
+//	gros_titre("Suivi des forums");
 
 	if (!$debut) $debut = 0;
 
@@ -295,11 +310,11 @@ if ($connect_statut == "0minirezo") {
 	if ($total > 10) {
 		echo "<p>";
 		for ($i = 0; $i < $total; $i = $i + 10){
-			$y = $i + 9;
+			if ($i > 0) echo " | ";
 			if ($i == $debut)
-				echo "<FONT SIZE=3><B>[$i-$y]</B></FONT> ";
+				echo "<FONT SIZE=3><B>$i</B></FONT>";
 			else
-				echo "[<A HREF='controle_forum.php3?debut=$i'>$i-$y</A>] ";
+				echo "<A HREF='controle_forum.php3?debut=$i'>$i</A>";
 		}
 	}
 
diff --git a/ecrire/controle_forum_prive.php3 b/ecrire/controle_forum_prive.php3
new file mode 100644
index 0000000000..9858a20c21
--- /dev/null
+++ b/ecrire/controle_forum_prive.php3
@@ -0,0 +1,337 @@
+<?php
+
+include ("inc.php3");
+
+
+debut_page("Suivi des forums", "messagerie", "forum-controle");
+
+echo "<br><br><br>";
+gros_titre("Suivi des forums de l'espace priv&eacute;");
+barre_onglets("suivi_forum", "prive");
+debut_gauche();
+
+
+debut_boite_info();
+
+echo "<FONT FACE='Verdana,Arial,Helvetica,sans-serif' SIZE=2>";
+echo propre("La page de {suivi des forums} est un outil de gestion de votre site (et non un espace de discussion ou de r&eacute;daction). Elle affiche toutes les contributions des forums du site, aussi bien celles du site public que de l'espace priv&eacute; et vous permet de g&eacute;rer ces contributions.");
+
+echo aide ("suiviforum");
+echo "</FONT>";
+
+fin_boite_info();
+
+//
+// Afficher les boutons de creation d'article et de breve
+//
+if ($connect_statut == '0minirezo') {
+	debut_cadre_enfonce();
+	echo "<font face='Verdana,Arial,Helvetica,sans-serif' size=1>";
+	echo "<b>RACCOURCIS :</b><p>";
+	
+	
+	icone_horizontale("Forum interne", "forum.php3", "forum-interne-24.gif", "rien.gif");
+	icone_horizontale("Forum des administrateurs", "forum_admin.php3", "forum-admin-24.gif", "rien.gif");
+		
+	/*
+	$query_petition = "SELECT COUNT(*) FROM spip_forum WHERE date_heure > DATE_SUB(NOW(),INTERVAL 30 DAY)";
+	$result_petition = spip_query($query_petition);
+	if ($row = mysql_fetch_array($result_petition)) {
+		$nombre_petition = $row[0];
+	}
+	if ($nombre_petition > 0) {
+		echo "<p>";
+		icone_horizontale("$nombre_petition messages de forums", "controle_forum.php3", "suivi-forum-24.gif", "rien.gif");
+	}
+	*/
+
+
+	$query_petition = "SELECT COUNT(*) AS cnt FROM spip_signatures WHERE (statut='publie' OR statut='poubelle')";
+	$result_petition = spip_query($query_petition);
+	if ($row = mysql_fetch_array($result_petition)){
+		$nombre_petition = $row['cnt'];
+	}
+	if ($nombre_petition > 0) {
+		echo "<p>";
+		icone_horizontale("$nombre_petition signatures de p&eacute;titions", "controle_petition.php3", "suivi-forum-24.gif", "rien.gif");
+	}
+	
+	
+	
+	echo "</font>";
+	fin_cadre_enfonce();
+}
+
+
+
+
+debut_droite();
+	$mots_cles_forums = lire_meta("mots_cles_forums");
+
+
+
+function forum_parent($id_forum) {
+
+	$query_forum = "SELECT * FROM spip_forum WHERE id_forum=\"$id_forum\" AND statut != 'redac'";
+ 	$result_forum = spip_query($query_forum);
+
+ 	while($row=mysql_fetch_array($result_forum)){
+		$id_forum=$row['id_forum'];
+		$forum_id_parent=$row['id_parent'];
+		$forum_id_rubrique=$row['id_rubrique'];
+		$forum_id_article=$row['id_article'];
+		$forum_id_breve=$row['id_breve'];
+		$forum_id_syndic=$row['id_syndic'];
+		$forum_date_heure=$row['date_heure'];
+		$forum_titre=$row['titre'];
+		$forum_texte=$row['texte'];
+		$forum_auteur=$row['auteur'];
+		$forum_email_auteur=$row['email_auteur'];
+		$forum_nom_site=$row['nom_site'];
+		$forum_url_site=$row['url_site'];
+		$forum_stat=$row['statut'];
+		$forum_ip=$row['ip'];
+
+		if ($forum_id_article > 0) {
+	
+			$query = "SELECT id_article, titre, statut FROM spip_articles WHERE id_article='$forum_id_article'";
+		 	$result = spip_query($query);
+
+			while($row=mysql_fetch_array($result)) {
+				$id_article = $row['id_article'];
+				$titre = $row['titre'];
+				$statut = $row['statut'];
+			}
+
+			if ($forum_stat == "prive") {
+				return $retour."<B>R&eacute;ponse &agrave; l'article <A HREF='articles.php3?id_article=$id_article'>$titre</A></B>";
+			}
+			else {
+				$retour .= "<a href='articles_forum.php3?id_article=$id_article'><font color='red'>G&eacute;rer le forum public de cet article</font></a><br>";
+				return $retour."<B>R&eacute;ponse &agrave; l'article <A HREF='".generer_url_article($id_article)."'>$titre</A></B>";
+			}
+		}
+		else if ($forum_id_rubrique > 0) {
+			$query2 = "SELECT * FROM spip_rubriques WHERE id_rubrique=\"$forum_id_rubrique\"";
+			$result2 = spip_query($query2);
+
+			while($row = mysql_fetch_array($result2)){
+				$id_rubrique = $row['id_rubrique'];
+				$titre = $row['titre'];
+			}
+			return "<B>R&eacute;ponse &agrave; la rubrique <A HREF='".generer_url_rubrique($id_rubrique)."'>$titre</A></B>";
+		}
+		else if ($forum_id_syndic > 0) {
+			$query2 = "SELECT * FROM spip_syndic WHERE id_syndic=\"$forum_id_syndic\"";
+			$result2 = spip_query($query2);
+
+			while($row = mysql_fetch_array($result2)){
+				$id_syndic = $row['id_syndic'];
+				$titre = $row['nom_site'];
+				$statut = $row['statut'];
+			}
+			return "<B>R&eacute;ponse au site r&eacute;f&eacute;renc&eacute; : <A HREF='sites.php3?id_syndic=$id_syndic'>$titre</A></B>";
+		}
+		else if ($forum_id_breve > 0) {
+			$query2 = "SELECT * FROM spip_breves WHERE id_breve=\"$forum_id_breve\"";
+		 	$result2 = spip_query($query2);
+
+		 	while($row = mysql_fetch_array($result2)){
+				$id_breve = $row['id_breve'];
+				$date_heure = $row['date_heure'];
+				$titre = $row['titre'];
+			}
+			if ($forum_stat == "prive") {
+				return "<B>R&eacute;ponse &agrave; la br&egrave;ve <A HREF='breves_voir.php3?id_breve=$id_breve'>$titre</A></B>";
+			}
+			else {
+				return "<B>R&eacute;ponse &agrave; la br&egrave;ve <A HREF='".generer_url_breve($id_breve)."'>$titre</A></B>";
+			}
+		}
+		else if ($forum_stat == "privadm") {
+			$retour = forum_parent($forum_id_parent);
+			
+			if (strlen($retour)>0) return $retour;
+			else return "<B>Message du <A HREF='forum_admin.php3'>forum des administrateurs</A></B>";
+		}
+		else {
+			$retour = forum_parent($forum_id_parent);
+			
+			if (strlen($retour)>0) return $retour;
+			else return "<B>Message du <A HREF='forum.php3'>forum interne</A></B>";
+		}
+	}
+
+}
+
+
+
+function controle_forum($request,$adresse_retour) {
+	global $compteur_forum;
+	static $nb_forum;
+	global $debut;
+	static $i;
+	global $couleur_foncee;
+	global $mots_cles_forums;
+
+	
+	$compteur_forum++; 
+
+	$nb_forum[$compteur_forum] = mysql_num_rows($request);
+	$i[$compteur_forum] = 1;
+ 	while($row=mysql_fetch_array($request)){
+		$id_forum = $row['id_forum'];
+		$forum_id_parent = $row['id_parent'];
+		$forum_id_rubrique = $row['id_rubrique'];
+		$forum_id_article = $row['id_article'];
+		$forum_id_breve = $row['id_breve'];
+		$forum_date_heure = $row['date_heure'];
+		$forum_titre = $row['titre'];
+		$forum_texte = $row['texte'];
+		$forum_auteur = $row['auteur'];
+		$forum_email_auteur = $row['email_auteur'];
+		$forum_nom_site = $row['nom_site'];
+		$forum_url_site = $row['url_site'];
+		$forum_stat = $row['statut'];
+		$forum_ip = $row['ip'];
+		$forum_id_auteur = $row["id_auteur"];
+		
+		if ($compteur_forum==1)
+			echo "<BR><BR>";
+		if ($forum_stat=="off" OR $forum_stat == "privoff") {
+			echo "<TABLE WIDTH=100% CELLPADDING=2 CELLSPACING=0 BORDER=0><TR><TD BGCOLOR='#FF0000'>";
+		}else if($forum_stat=="prop"){
+			echo "<TABLE WIDTH=100% CELLPADDING=2 CELLSPACING=0 BORDER=0><TR><TD BGCOLOR='#FFFF00'>";
+		}
+		echo "<TABLE WIDTH=100% CELLPADDING=0 CELLSPACING=0 BORDER=0><TR>";
+		
+		for ($count = 2; $count <= $compteur_forum AND $count < 11; $count++) {
+
+			$fond[$count] = 'img_pack/rien.gif';
+			if ($i[$count] != $nb_forum[$count]) {
+				$fond[$count] = 'img_pack/forum-vert.gif';
+			}		
+		
+			$fleche='img_pack/rien.gif';
+			if ($count == $compteur_forum) {
+				$fleche='img_pack/forum-droite.gif';
+			}		
+			echo "<TD WIDTH=10 VALIGN='top' BACKGROUND=$fond[$count]><IMG SRC=$fleche ALT='' WIDTH=10 HEIGHT=13 BORDER=0></TD>\n";
+		}
+		
+		echo "<TD WIDTH=100% BGCOLOR='#EEEEEE' VALIGN='top'>";
+
+		echo "<TABLE WIDTH=100% CELLPADDING=3 CELLSPACING=0><TR><TD BGCOLOR='$couleur_foncee'><FONT FACE='Verdana,Arial,Helvetica,sans-serif' SIZE=2 COLOR='#FFFFFF'><B>".typo($forum_titre)."</B></FONT></TD></TR>";
+		echo "<TR><TD>";
+		echo "<FONT SIZE=2 FACE='Georgia,Garamond,Times,serif'>";
+		if ($forum_stat=="publie" OR $forum_stat == "off") {
+			echo "<img src='img_pack/racine-site-24.gif' border=0 align='left'>";
+			echo "<FONT FACE='arial,helvetica' COLOR='#$couleur_foncee'>[sur le site public]</FONT> ";
+		}
+		else if ($forum_stat == "prive" OR $forum_stat == "privrac" OR $forum_stat == "privadm" OR $forum_stat == "privoff"){
+			echo "<img src='img_pack/cadenas-24.gif' border=0 align='left'>";
+			echo "<FONT FACE='arial,helvetica' COLOR='#$couleur_foncee'>[dans l'espace priv&eacute;]</FONT> ";
+		}
+		echo "<FONT FACE='arial,helvetica'>".nom_jour($forum_date_heure)." ".affdate($forum_date_heure)." ˆ ".heures($forum_date_heure)." heures ".minutes($forum_date_heure)."</FONT>";
+		if (strlen($forum_auteur) > 2) {
+			if (strlen($forum_email_auteur) > 3) {
+				$forum_auteur="<A HREF=\"mailto:$forum_email_auteur?SUBJECT=".rawurlencode($forum_titre)."\">$forum_auteur</A>";
+			}
+			echo "<FONT FACE='arial,helvetica'> / <B>$forum_auteur</B></FONT>";
+		}
+
+		if ($forum_stat <> "off" AND $forum_stat <> "prioff") {
+			if ($forum_stat == "publie") icone ("Supprimer ce message", "controle_forum_prive.php3?supp_forum=$id_forum&debut=$debut", "forum-interne-24.gif", "supprimer.gif", "right");
+			else if ($forum_stat == "prive" OR $forum_stat == "privrac" OR $forum_stat == "privadm") icone ("Supprimer ce message", "controle_forum_prive.php3?supp_forum_priv=$id_forum&debut=$debut", "forum-interne-24.gif", "supprimer.gif", "right");
+		}
+		else {
+			echo "<BR><FONT COLOR='red'><B>MESSAGE SUPPRIM&Eacute; $forum_ip</B></FONT>";
+			if($forum_id_auteur>0){
+				echo " - <A HREF='auteurs_edit.php3?id_auteur=$forum_id_auteur'>Voir cet auteur</A>";
+			
+			}
+
+		}
+
+		if ($forum_stat=="prop"){
+			icone("Valider ce message", "controle_forum_prive.php3?valid_forum=$id_forum&debut=$debut", "forum-interne-24.gif", "creer.gif", "right");
+		}
+
+		echo "<BR>".forum_parent($id_forum);
+
+		echo "<P align='justify'>".propre($forum_texte);
+		
+		if (strlen($forum_url_site) > 10 AND strlen($forum_nom_site) > 3) {
+			echo "<P align='left'><FONT FACE='Verdana,Arial,Helvetica,sans-serif'><B><A HREF='$forum_url_site'>$forum_nom_site</A></B></FONT>";
+		}
+
+		if ($mots_cles_forums == "oui"){
+			
+			$query_mots = "SELECT * FROM spip_mots AS mots, spip_mots_forum AS lien WHERE lien.id_forum = '$id_forum' AND lien.id_mot = mots.id_mot";
+			$result_mots = spip_query($query_mots);
+			
+			while ($row_mots = mysql_fetch_array($result_mots)) {
+				$id_mot = $row_mots['id_mot'];
+				$titre_mot = propre($row_mots['titre']);
+				$type_mot = propre($row_mots['type']);
+				echo "<li> <b>$type_mot :</b> $titre_mot";
+			}
+			
+		}
+
+		echo "</FONT>";
+		echo "</TD></TR></TABLE>";
+		
+		echo "</TD></TR></TABLE>\n";
+
+		if ($forum_stat == 'off' OR $forum_stat == 'privoff' OR $forum_stat=='prop') {
+			echo "</TD></TR></TABLE>";
+		}
+	}
+}
+
+  
+echo "<FONT SIZE=2 FACE='Georgia,Garamond,Times,serif'>";
+ 
+if ($connect_statut == "0minirezo") {
+
+	//gros_titre("Suivi des forums");
+
+	if (!$debut) $debut = 0;
+
+	$query_forum = "SELECT COUNT(*) AS cnt FROM spip_forum WHERE statut!='off' AND statut!='publie' AND statut!='perso' AND statut != 'redac' AND date_heure>DATE_SUB(NOW(),INTERVAL 30 DAY)";
+ 	$result_forum = spip_query($query_forum);
+ 	$total = 0;
+ 	if ($row = mysql_fetch_array($result_forum)) $total = $row['cnt'];
+
+	if ($total > 10) {
+		echo "<p>";
+		for ($i = 0; $i < $total; $i = $i + 10){
+			if ($i > 0) echo " | ";
+			if ($i == $debut)
+				echo "<FONT SIZE=3><B>$i</B></FONT>";
+			else
+				echo "<A HREF='controle_forum_prive.php3?debut=$i'>$i</A>";
+		}
+	}
+
+	$query_forum = "SELECT * FROM spip_forum WHERE statut!='off' AND statut!='publie' AND statut!='perso' AND statut != 'redac' ORDER BY date_heure DESC LIMIT $debut,10";
+ 	$result_forum = spip_query($query_forum);
+	controle_forum($result_forum, "forum.php3");
+
+//	afficher_forum($result_forum, $forum_retour,'oui','non');
+
+}
+else {
+	echo "<B>Vous n'avez pas acc&egrave;s &agrave; cette page.</B>";
+}	
+		
+
+echo "</FONT>";
+
+
+fin_page();
+
+
+?>
+
diff --git a/ecrire/controle_forum_public.php3 b/ecrire/controle_forum_public.php3
new file mode 100644
index 0000000000..1e2647bcf4
--- /dev/null
+++ b/ecrire/controle_forum_public.php3
@@ -0,0 +1,337 @@
+<?php
+
+include ("inc.php3");
+
+
+debut_page("Suivi des forums", "messagerie", "forum-controle");
+
+echo "<br><br><br>";
+gros_titre("Suivi des forums du site public");
+barre_onglets("suivi_forum", "public");
+debut_gauche();
+
+
+debut_boite_info();
+
+echo "<FONT FACE='Verdana,Arial,Helvetica,sans-serif' SIZE=2>";
+echo propre("La page de {suivi des forums} est un outil de gestion de votre site (et non un espace de discussion ou de r&eacute;daction). Elle affiche toutes les contributions des forums du site, aussi bien celles du site public que de l'espace priv&eacute; et vous permet de g&eacute;rer ces contributions.");
+
+echo aide ("suiviforum");
+echo "</FONT>";
+
+fin_boite_info();
+
+//
+// Afficher les boutons de creation d'article et de breve
+//
+if ($connect_statut == '0minirezo') {
+	debut_cadre_enfonce();
+	echo "<font face='Verdana,Arial,Helvetica,sans-serif' size=1>";
+	echo "<b>RACCOURCIS :</b><p>";
+	
+	
+	icone_horizontale("Forum interne", "forum.php3", "forum-interne-24.gif", "rien.gif");
+	icone_horizontale("Forum des administrateurs", "forum_admin.php3", "forum-admin-24.gif", "rien.gif");
+		
+	/*
+	$query_petition = "SELECT COUNT(*) FROM spip_forum WHERE date_heure > DATE_SUB(NOW(),INTERVAL 30 DAY)";
+	$result_petition = spip_query($query_petition);
+	if ($row = mysql_fetch_array($result_petition)) {
+		$nombre_petition = $row[0];
+	}
+	if ($nombre_petition > 0) {
+		echo "<p>";
+		icone_horizontale("$nombre_petition messages de forums", "controle_forum.php3", "suivi-forum-24.gif", "rien.gif");
+	}
+	*/
+
+
+	$query_petition = "SELECT COUNT(*) AS cnt FROM spip_signatures WHERE (statut='publie' OR statut='poubelle')";
+	$result_petition = spip_query($query_petition);
+	if ($row = mysql_fetch_array($result_petition)){
+		$nombre_petition = $row['cnt'];
+	}
+	if ($nombre_petition > 0) {
+		echo "<p>";
+		icone_horizontale("$nombre_petition signatures de p&eacute;titions", "controle_petition.php3", "suivi-forum-24.gif", "rien.gif");
+	}
+	
+	
+	
+	echo "</font>";
+	fin_cadre_enfonce();
+}
+
+
+
+
+debut_droite();
+	$mots_cles_forums = lire_meta("mots_cles_forums");
+
+
+
+function forum_parent($id_forum) {
+
+	$query_forum = "SELECT * FROM spip_forum WHERE id_forum=\"$id_forum\" AND statut != 'redac'";
+ 	$result_forum = spip_query($query_forum);
+
+ 	while($row=mysql_fetch_array($result_forum)){
+		$id_forum=$row['id_forum'];
+		$forum_id_parent=$row['id_parent'];
+		$forum_id_rubrique=$row['id_rubrique'];
+		$forum_id_article=$row['id_article'];
+		$forum_id_breve=$row['id_breve'];
+		$forum_id_syndic=$row['id_syndic'];
+		$forum_date_heure=$row['date_heure'];
+		$forum_titre=$row['titre'];
+		$forum_texte=$row['texte'];
+		$forum_auteur=$row['auteur'];
+		$forum_email_auteur=$row['email_auteur'];
+		$forum_nom_site=$row['nom_site'];
+		$forum_url_site=$row['url_site'];
+		$forum_stat=$row['statut'];
+		$forum_ip=$row['ip'];
+
+		if ($forum_id_article > 0) {
+	
+			$query = "SELECT id_article, titre, statut FROM spip_articles WHERE id_article='$forum_id_article'";
+		 	$result = spip_query($query);
+
+			while($row=mysql_fetch_array($result)) {
+				$id_article = $row['id_article'];
+				$titre = $row['titre'];
+				$statut = $row['statut'];
+			}
+
+			if ($forum_stat == "prive") {
+				return $retour."<B>R&eacute;ponse &agrave; l'article <A HREF='articles.php3?id_article=$id_article'>$titre</A></B>";
+			}
+			else {
+				$retour .= "<a href='articles_forum.php3?id_article=$id_article'><font color='red'>G&eacute;rer le forum public de cet article</font></a><br>";
+				return $retour."<B>R&eacute;ponse &agrave; l'article <A HREF='".generer_url_article($id_article)."'>$titre</A></B>";
+			}
+		}
+		else if ($forum_id_rubrique > 0) {
+			$query2 = "SELECT * FROM spip_rubriques WHERE id_rubrique=\"$forum_id_rubrique\"";
+			$result2 = spip_query($query2);
+
+			while($row = mysql_fetch_array($result2)){
+				$id_rubrique = $row['id_rubrique'];
+				$titre = $row['titre'];
+			}
+			return "<B>R&eacute;ponse &agrave; la rubrique <A HREF='".generer_url_rubrique($id_rubrique)."'>$titre</A></B>";
+		}
+		else if ($forum_id_syndic > 0) {
+			$query2 = "SELECT * FROM spip_syndic WHERE id_syndic=\"$forum_id_syndic\"";
+			$result2 = spip_query($query2);
+
+			while($row = mysql_fetch_array($result2)){
+				$id_syndic = $row['id_syndic'];
+				$titre = $row['nom_site'];
+				$statut = $row['statut'];
+			}
+			return "<B>R&eacute;ponse au site r&eacute;f&eacute;renc&eacute; : <A HREF='sites.php3?id_syndic=$id_syndic'>$titre</A></B>";
+		}
+		else if ($forum_id_breve > 0) {
+			$query2 = "SELECT * FROM spip_breves WHERE id_breve=\"$forum_id_breve\"";
+		 	$result2 = spip_query($query2);
+
+		 	while($row = mysql_fetch_array($result2)){
+				$id_breve = $row['id_breve'];
+				$date_heure = $row['date_heure'];
+				$titre = $row['titre'];
+			}
+			if ($forum_stat == "prive") {
+				return "<B>R&eacute;ponse &agrave; la br&egrave;ve <A HREF='breves_voir.php3?id_breve=$id_breve'>$titre</A></B>";
+			}
+			else {
+				return "<B>R&eacute;ponse &agrave; la br&egrave;ve <A HREF='".generer_url_breve($id_breve)."'>$titre</A></B>";
+			}
+		}
+		else if ($forum_stat == "privadm") {
+			$retour = forum_parent($forum_id_parent);
+			
+			if (strlen($retour)>0) return $retour;
+			else return "<B>Message du <A HREF='forum_admin.php3'>forum des administrateurs</A></B>";
+		}
+		else {
+			$retour = forum_parent($forum_id_parent);
+			
+			if (strlen($retour)>0) return $retour;
+			else return "<B>Message du <A HREF='forum.php3'>forum interne</A></B>";
+		}
+	}
+
+}
+
+
+
+function controle_forum($request,$adresse_retour) {
+	global $compteur_forum;
+	static $nb_forum;
+	global $debut;
+	static $i;
+	global $couleur_foncee;
+	global $mots_cles_forums;
+
+	
+	$compteur_forum++; 
+
+	$nb_forum[$compteur_forum] = mysql_num_rows($request);
+	$i[$compteur_forum] = 1;
+ 	while($row=mysql_fetch_array($request)){
+		$id_forum = $row['id_forum'];
+		$forum_id_parent = $row['id_parent'];
+		$forum_id_rubrique = $row['id_rubrique'];
+		$forum_id_article = $row['id_article'];
+		$forum_id_breve = $row['id_breve'];
+		$forum_date_heure = $row['date_heure'];
+		$forum_titre = $row['titre'];
+		$forum_texte = $row['texte'];
+		$forum_auteur = $row['auteur'];
+		$forum_email_auteur = $row['email_auteur'];
+		$forum_nom_site = $row['nom_site'];
+		$forum_url_site = $row['url_site'];
+		$forum_stat = $row['statut'];
+		$forum_ip = $row['ip'];
+		$forum_id_auteur = $row["id_auteur"];
+		
+		if ($compteur_forum==1)
+			echo "<BR><BR>";
+		if ($forum_stat=="off" OR $forum_stat == "privoff") {
+			echo "<TABLE WIDTH=100% CELLPADDING=2 CELLSPACING=0 BORDER=0><TR><TD BGCOLOR='#FF0000'>";
+		}else if($forum_stat=="prop"){
+			echo "<TABLE WIDTH=100% CELLPADDING=2 CELLSPACING=0 BORDER=0><TR><TD BGCOLOR='#FFFF00'>";
+		}
+		echo "<TABLE WIDTH=100% CELLPADDING=0 CELLSPACING=0 BORDER=0><TR>";
+		
+		for ($count = 2; $count <= $compteur_forum AND $count < 11; $count++) {
+
+			$fond[$count] = 'img_pack/rien.gif';
+			if ($i[$count] != $nb_forum[$count]) {
+				$fond[$count] = 'img_pack/forum-vert.gif';
+			}		
+		
+			$fleche='img_pack/rien.gif';
+			if ($count == $compteur_forum) {
+				$fleche='img_pack/forum-droite.gif';
+			}		
+			echo "<TD WIDTH=10 VALIGN='top' BACKGROUND=$fond[$count]><IMG SRC=$fleche ALT='' WIDTH=10 HEIGHT=13 BORDER=0></TD>\n";
+		}
+		
+		echo "<TD WIDTH=100% BGCOLOR='#EEEEEE' VALIGN='top'>";
+
+		echo "<TABLE WIDTH=100% CELLPADDING=3 CELLSPACING=0><TR><TD BGCOLOR='$couleur_foncee'><FONT FACE='Verdana,Arial,Helvetica,sans-serif' SIZE=2 COLOR='#FFFFFF'><B>".typo($forum_titre)."</B></FONT></TD></TR>";
+		echo "<TR><TD>";
+		echo "<FONT SIZE=2 FACE='Georgia,Garamond,Times,serif'>";
+		if ($forum_stat=="publie" OR $forum_stat == "off") {
+			echo "<img src='img_pack/racine-site-24.gif' border=0 align='left'>";
+			echo "<FONT FACE='arial,helvetica' COLOR='#$couleur_foncee'>[sur le site public]</FONT> ";
+		}
+		else if ($forum_stat == "prive" OR $forum_stat == "privrac" OR $forum_stat == "privadm" OR $forum_stat == "privoff"){
+			echo "<img src='img_pack/cadenas-24.gif' border=0 align='left'>";
+			echo "<FONT FACE='arial,helvetica' COLOR='#$couleur_foncee'>[dans l'espace priv&eacute;]</FONT> ";
+		}
+		echo "<FONT FACE='arial,helvetica'>".nom_jour($forum_date_heure)." ".affdate($forum_date_heure)." ˆ ".heures($forum_date_heure)." heures ".minutes($forum_date_heure)."</FONT>";
+		if (strlen($forum_auteur) > 2) {
+			if (strlen($forum_email_auteur) > 3) {
+				$forum_auteur="<A HREF=\"mailto:$forum_email_auteur?SUBJECT=".rawurlencode($forum_titre)."\">$forum_auteur</A>";
+			}
+			echo "<FONT FACE='arial,helvetica'> / <B>$forum_auteur</B></FONT>";
+		}
+
+		if ($forum_stat <> "off" AND $forum_stat <> "prioff") {
+			if ($forum_stat == "publie") icone ("Supprimer ce message", "controle_forum_public.php3?supp_forum=$id_forum&debut=$debut", "forum-interne-24.gif", "supprimer.gif", "right");
+			else if ($forum_stat == "prive" OR $forum_stat == "privrac" OR $forum_stat == "privadm") icone ("Supprimer ce message", "controle_forum_public.php3?supp_forum_priv=$id_forum&debut=$debut", "forum-interne-24.gif", "supprimer.gif", "right");
+		}
+		else {
+			echo "<BR><FONT COLOR='red'><B>MESSAGE SUPPRIM&Eacute; $forum_ip</B></FONT>";
+			if($forum_id_auteur>0){
+				echo " - <A HREF='auteurs_edit.php3?id_auteur=$forum_id_auteur'>Voir cet auteur</A>";
+			
+			}
+
+		}
+
+		if ($forum_stat=="prop"){
+			icone("Valider ce message", "controle_forum_public.php3?valid_forum=$id_forum&debut=$debut", "forum-interne-24.gif", "creer.gif", "right");
+		}
+
+		echo "<BR>".forum_parent($id_forum);
+
+		echo "<P align='justify'>".propre($forum_texte);
+		
+		if (strlen($forum_url_site) > 10 AND strlen($forum_nom_site) > 3) {
+			echo "<P align='left'><FONT FACE='Verdana,Arial,Helvetica,sans-serif'><B><A HREF='$forum_url_site'>$forum_nom_site</A></B></FONT>";
+		}
+
+		if ($mots_cles_forums == "oui"){
+			
+			$query_mots = "SELECT * FROM spip_mots AS mots, spip_mots_forum AS lien WHERE lien.id_forum = '$id_forum' AND lien.id_mot = mots.id_mot";
+			$result_mots = spip_query($query_mots);
+			
+			while ($row_mots = mysql_fetch_array($result_mots)) {
+				$id_mot = $row_mots['id_mot'];
+				$titre_mot = propre($row_mots['titre']);
+				$type_mot = propre($row_mots['type']);
+				echo "<li> <b>$type_mot :</b> $titre_mot";
+			}
+			
+		}
+
+		echo "</FONT>";
+		echo "</TD></TR></TABLE>";
+		
+		echo "</TD></TR></TABLE>\n";
+
+		if ($forum_stat == 'off' OR $forum_stat == 'privoff' OR $forum_stat=='prop') {
+			echo "</TD></TR></TABLE>";
+		}
+	}
+}
+
+  
+echo "<FONT SIZE=2 FACE='Georgia,Garamond,Times,serif'>";
+ 
+if ($connect_statut == "0minirezo") {
+
+	//gros_titre("Suivi des forums");
+
+	if (!$debut) $debut = 0;
+
+	$query_forum = "SELECT COUNT(*) AS cnt FROM spip_forum WHERE statut!= 'prive' AND statut!='privrac' AND statut!='privadm' AND statut!='privoff' AND statut!='perso' AND statut != 'redac' AND date_heure>DATE_SUB(NOW(),INTERVAL 30 DAY)";
+ 	$result_forum = spip_query($query_forum);
+ 	$total = 0;
+ 	if ($row = mysql_fetch_array($result_forum)) $total = $row['cnt'];
+
+	if ($total > 10) {
+		echo "<p>";
+		for ($i = 0; $i < $total; $i = $i + 10){
+			if ($i > 0) echo " | ";
+			if ($i == $debut)
+				echo "<FONT SIZE=3><B>$i</B></FONT>";
+			else
+				echo "<A HREF='controle_forum_public.php3?debut=$i'>$i</A>";
+		}
+	}
+
+	$query_forum = "SELECT * FROM spip_forum WHERE statut!= 'prive' AND statut!='privrac' AND statut!='privadm' AND statut!='privoff' AND statut!='perso' AND statut != 'redac' ORDER BY date_heure DESC LIMIT $debut,10";
+ 	$result_forum = spip_query($query_forum);
+	controle_forum($result_forum, "forum.php3");
+
+//	afficher_forum($result_forum, $forum_retour,'oui','non');
+
+}
+else {
+	echo "<B>Vous n'avez pas acc&egrave;s &agrave; cette page.</B>";
+}	
+		
+
+echo "</FONT>";
+
+
+fin_page();
+
+
+?>
+
diff --git a/ecrire/controle_petition.php3 b/ecrire/controle_petition.php3
index 063585f2f3..25f76b317e 100644
--- a/ecrire/controle_petition.php3
+++ b/ecrire/controle_petition.php3
@@ -158,11 +158,11 @@ if ($connect_statut == "0minirezo") {
 	if ($total > 10) {
 		echo "<p>";
 		for ($i = 0; $i < $total; $i = $i + 10){
-			$y = $i + 9;
+			if ($i > 0) echo " | ";
 			if ($i == $debut)
-				echo "<FONT SIZE=3><B>[$i-$y]</B></FONT> ";
+				echo "<FONT SIZE=3><B>$i</B></FONT>";
 			else
-				echo "[<A HREF='controle_petition.php3?debut=$i'>$i-$y</A>] ";
+				echo "<A HREF='controle_petition.php3?debut=$i'>$i</A>";
 		}
 	}
 
diff --git a/ecrire/forum.php3 b/ecrire/forum.php3
index b693d9baa9..cc75d523c0 100644
--- a/ecrire/forum.php3
+++ b/ecrire/forum.php3
@@ -69,11 +69,11 @@ echo "<FONT SIZE=2 FACE='Georgia,Garamond,Times,serif'>";
 		echo "<p>";
 		//echo "<CENTER>";
 		for ($i = 0; $i < $total; $i = $i + 10){
-			$y = $i + 9;
+			if ($i > 0) echo " | ";
 			if ($i == $debut)
-				echo "<FONT SIZE=3><B>[$i-$y]</B></FONT> ";
+				echo "<FONT SIZE=3><B>$i</B></FONT>";
 			else
-				echo "[<A HREF='forum.php3?debut=$i'>$i-$y</A>] ";
+				echo "<A HREF='forum.php3?debut=$i'>$i</A>";
 		}
 		//echo "</CENTER>";
 	}
diff --git a/ecrire/forum_admin.php3 b/ecrire/forum_admin.php3
index ae32af7aba..7e94969954 100644
--- a/ecrire/forum_admin.php3
+++ b/ecrire/forum_admin.php3
@@ -70,11 +70,11 @@ if ($connect_statut == "0minirezo"){
 		echo "<p>";
 		//echo "<CENTER>";
 		for ($i = 0; $i < $total; $i = $i + 10){
-			$y = $i + 9;
+			if ($i > 0) echo " | ";
 			if ($i == $debut)
-				echo "<FONT SIZE=3><B>[$i-$y]</B></FONT> ";
+				echo "<FONT SIZE=3><B>$i</B></FONT>";
 			else
-				echo "[<A HREF='forum_admin.php3?debut=$i'>$i-$y</A>] ";
+				echo "<A HREF='forum_admin.php3?debut=$i'>$i</A>";
 		}
 		//echo "</CENTER>";
 	}
diff --git a/ecrire/img_pack/cadenas-24.gif b/ecrire/img_pack/cadenas-24.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1bbcb6376a4292712c660fa14d4aa9b8dd47005f
GIT binary patch
literal 317
zcmV-D0mA-ANk%w1VHf}y0J9GOv9YpaVPBqG1J%{ljDvgh^!3G+QP8Ao_S?1>6AxD!
z1KYKQtaB$zL_52OKIG)&A^8LW000jFEC2ui02lxm000E)@X0AbXc&`0I~_y<6l4Kl
zz)*M;5s*Wwf=$X+4M|`@Fb=%|ht*K+2!N!|R2z1H%#E-B6uN|-WWi;d00>NM2U!Sg
zJh@X>LSq~<mpJC&NHhXs3u3|NAO3&`27?X?U=;*=fP;*L4h#$ehC=`jdkcSriw=*G
zlZc9$4h;zb3kIB!l4lQJp@R$wvZtw@tge`uv88mW0;`mkxv-=Ly`8|Ixq=J|2?PtZ
zzn`s%!v+kb0mqQdx7LENvJJhe-odZf7y_ush2QCqob%o9l;Gj0jg9sd0*}7}3LL0_
P8i*bU6DmX~B?16D`7waJ

literal 0
HcmV?d00001

diff --git a/ecrire/inc.php3 b/ecrire/inc.php3
index 9b9e6db70a..d935c59040 100644
--- a/ecrire/inc.php3
+++ b/ecrire/inc.php3
@@ -277,6 +277,7 @@ function changer_statut_forum($id_forum, $statut) {
 }
 
 if ($supp_forum) changer_statut_forum($supp_forum, 'off');
+if ($supp_forum_priv) changer_statut_forum($supp_forum_priv, 'privoff');
 if ($valid_forum) changer_statut_forum($valid_forum, 'publie');
 
 
diff --git a/ecrire/inc_presentation.php3 b/ecrire/inc_presentation.php3
index ece6d93b39..a19c202ab1 100644
--- a/ecrire/inc_presentation.php3
+++ b/ecrire/inc_presentation.php3
@@ -946,6 +946,12 @@ function barre_onglets($rubrique, $onglet){
 		onglet("Fonctionnalit&eacute;s de SPIP", "config-fonctions.php3", "fonctions", $onglet, "statistiques-24.gif");
 	}
 	
+	if ($rubrique == "suivi_forum"){
+		onglet("Tous les messages", "controle_forum.php3", "tous", $onglet);
+		onglet("Messages du site public", "controle_forum_public.php3", "public", $onglet, "racine-site-24.gif");
+		onglet("Messages du site priv&eacute;", "controle_forum_prive.php3", "prive", $onglet, "cadenas-24.gif");
+	}
+	
 	
 	
 	fin_onglet();
-- 
GitLab