From 7a51c52978fee48b193937f56fadb34f72737f51 Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Fri, 4 Nov 2005 14:41:06 +0000
Subject: [PATCH] oubli du add dans le commit precedent

---
 .gitattributes             |   1 +
 ecrire/inc_forum_admin.php | 139 +++++++++++++++++++++++++++++++++++++
 2 files changed, 140 insertions(+)
 create mode 100644 ecrire/inc_forum_admin.php

diff --git a/.gitattributes b/.gitattributes
index 107f5b3486..3e8b2f85a8 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -269,6 +269,7 @@ ecrire/inc_breves.php -text
 ecrire/inc_config-fonctions.php -text
 ecrire/inc_controle_forum.php -text
 ecrire/inc_cookie.php -text
+ecrire/inc_forum_admin.php -text
 ecrire/inc_headers.php -text
 ecrire/inc_lang_liste.php -text
 ecrire/inc_magicquotes.php -text
diff --git a/ecrire/inc_forum_admin.php b/ecrire/inc_forum_admin.php
new file mode 100644
index 0000000000..469aaa52bc
--- /dev/null
+++ b/ecrire/inc_forum_admin.php
@@ -0,0 +1,139 @@
+<?php
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2005                                                *
+ *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
+ *                                                                         *
+ *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
+ *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
+\***************************************************************************/
+
+
+//
+// Ce fichier ne sera execute qu'une fois
+if (defined("_ECRIRE_INC_FORUM_ADMIN")) return;
+define("_ECRIRE_INC_FORUM_ADMIN", "1");
+
+function liste_numeros_forum($urlforum, $debut, $total)
+{
+	echo "\n<p>";
+	for ($i = 0; $i < $total; $i = $i + 10){
+		if ($i > 0) echo " | ";
+		if ($i == $debut)
+			echo "\n<FONT SIZE='3'><B>$i</B></FONT>";
+		else
+			echo "\n<A HREF='$urlforum&amp;debut=$i'>$i</A>";
+	}
+	echo "\n</p>\n";
+}
+
+function forum_admin_dist($debut, $admin)
+{
+  global $connect_statut;
+
+  if ($admin) {
+	debut_page(_T('titre_page_forum'), "redacteurs", "privadm");
+	$statutforum = 'privadm';
+	$logo = "forum-admin-24.gif";
+	$urlforum = 'forum_admin.php3?admin=admin';
+  } else {
+	debut_page(_T('titre_forum'), "redacteurs", "forum-interne");
+	$statutforum = 'privrac';
+	$logo = "forum-interne-24.gif";
+	$urlforum = 'forum_admin.php3?admin=';
+  }
+
+  debut_gauche();
+
+  debut_droite();
+
+  if ($admin=='oui')
+	gros_titre(_T('titre_cadre_forum_administrateur'));
+  else
+	gros_titre(_T('titre_cadre_forum_interne'));
+
+  if ($admin == 'oui' AND $connect_statut != "0minirezo") {
+	echo _T('avis_non_acces_page');
+	exit;
+  }
+
+  echo "<div class='serif2'>";
+
+
+  $result_forum = spip_query("SELECT COUNT(*) AS cnt FROM spip_forum WHERE statut='$statutforum' AND id_parent=0 LIMIT 11");
+
+  $total =  ($row = spip_fetch_array($result_forum)) ? $row['cnt'] : 0;
+
+  if ($total > 10) {
+    liste_numeros_forum($urlforum, $debut, $total);
+      }
+
+
+  echo "<p><div align='center'>";
+  icone (_T('icone_poster_message'), 
+	"forum_envoi.php3?statut=$statutforum&adresse_retour=" .
+       urlencode($urlforum) . 
+       "&titre_message=" .
+       urlencode(filtrer_entites(_T('texte_nouveau_message'))),
+       $logo, "creer.gif");
+  echo "</div></p>";
+
+  echo "<p align='left'>";
+  $limit = $debut ? "LIMIT $debut,10" : "LIMIT 10" ;
+  $query_forum="SELECT * FROM spip_forum WHERE statut='$statutforum' AND id_parent=0 ORDER BY date_heure DESC $limit";
+  $result_forum = spip_query($query_forum);
+ 
+  afficher_forum($result_forum,$urlforum);
+ 
+  echo "</div>";
+
+  fin_page();
+}
+
+
+//
+// Suppression de forums 
+//
+
+# fonction invoquee par calcul dans iframe_action
+# Elle n'a rien a faire ici en fait, et devra migrer en inc_forum
+# quand on abandonnera les .php3
+
+function changer_statut_forum_admin($id_forum, $statut) {
+	$result = spip_query("SELECT * FROM spip_forum WHERE id_forum=$id_forum");
+	if (!($row = spip_fetch_array($result)))
+		return;
+
+	$id_parent = $row['id_parent'];
+
+	// invalider les pages comportant ce forum
+	include_ecrire('inc_invalideur.php3');
+	include_ecrire('inc_forum.php3');
+	$index_forum = calcul_index_forum($row['id_article'], $row['id_breve'], $row['id_rubrique'], $row['id_syndic']);
+	suivre_invalideur("id='id_forum/$index_forum'");
+
+	// Signaler au moteur de recherche qu'il faut reindexer le thread
+	if ($id_parent) {
+		include_ecrire('inc_index.php3');
+		marquer_indexer ('forum', $id_parent);
+	}
+
+	// changer le statut de toute l'arborescence dependant de ce message
+	$id_messages = array($id_forum);
+	while ($id_messages) {
+		$id_messages = join(',', $id_messages);
+		$query_forum = "UPDATE spip_forum SET statut='$statut'
+		WHERE id_forum IN ($id_messages)";
+		$result_forum = spip_query($query_forum);
+		$query_forum = "SELECT id_forum FROM spip_forum
+		WHERE id_parent IN ($id_messages)";
+		$result_forum = spip_query($query_forum);
+		unset($id_messages);
+		while ($row = spip_fetch_array($result_forum))
+			$id_messages[] = $row['id_forum'];
+	}
+}
+
+?>
-- 
GitLab