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&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