[ Index ] |
|
Code source de SPIP 1.8.3 |
1 <?php 2 3 /***************************************************************************\ 4 * SPIP, Systeme de publication pour l'internet * 5 * * 6 * Copyright (c) 2001-2005 * 7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * 8 * * 9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * 10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * 11 \***************************************************************************/ 12 13 14 include ("inc.php3"); 15 16 function forum_parent($id_forum) { 17 $row=spip_fetch_array(spip_query(" 18 SELECT * FROM spip_forum WHERE id_forum=$id_forum AND statut != 'redac' 19 ")); 20 if (!$row) return ''; 21 $id_forum=$row['id_forum']; 22 $forum_id_parent=$row['id_parent']; 23 $forum_id_rubrique=$row['id_rubrique']; 24 $forum_id_article=$row['id_article']; 25 $forum_id_breve=$row['id_breve']; 26 $forum_id_syndic=$row['id_syndic']; 27 $forum_stat=$row['statut']; 28 29 if ($forum_id_article > 0) { 30 $row=spip_fetch_array(spip_query(" 31 SELECT id_article, titre, statut FROM spip_articles WHERE id_article='$forum_id_article'")); 32 $id_article = $row['id_article']; 33 $titre = $row['titre']; 34 $statut = $row['statut']; 35 if ($forum_stat == "prive" OR $forum_stat == "privoff") { 36 return array('pref' => _T('item_reponse_article'), 37 'url' => "articles.php3?id_article=$id_article", 38 'type' => 'id_article', 39 'valeur' => $id_article, 40 'titre' => $titre); 41 } else { 42 return array('pref' => _T('lien_reponse_article'), 43 'url' => generer_url_article($id_article), 44 'type' => 'id_article', 45 'valeur' => $id_article, 46 'titre' => $titre, 47 'avant' => "<a href='articles_forum.php3?id_article=$id_article'><font color='red'>"._T('lien_forum_public'). "</font></a><br>"); 48 } 49 } 50 else if ($forum_id_rubrique > 0) { 51 $row = spip_fetch_array(spip_query(" 52 SELECT * FROM spip_rubriques WHERE id_rubrique=\"$forum_id_rubrique\"")); 53 $id_rubrique = $row['id_rubrique']; 54 $titre = $row['titre']; 55 return array('pref' => _T('lien_reponse_rubrique'), 56 'url' => generer_url_rubrique($id_rubrique), 57 'type' => 'id_rubrique', 58 'valeur' => $id_rubrique, 59 'titre' => $titre); 60 } 61 else if ($forum_id_syndic > 0) { 62 $row = spip_fetch_array(spip_query(" 63 SELECT * FROM spip_syndic WHERE id_syndic=\"$forum_id_syndic\"")); 64 $id_syndic = $row['id_syndic']; 65 $titre = $row['nom_site']; 66 $statut = $row['statut']; 67 return array('pref' => _T('lien_reponse_site_reference'), 68 'url' => "sites.php3?id_syndic=$id_syndic", 69 'type' => 'id_syndic', 70 'valeur' => $id_syndic, 71 'titre' => $titre); 72 } 73 else if ($forum_id_breve > 0) { 74 $row = spip_fetch_array(spip_query(" 75 SELECT * FROM spip_breves WHERE id_breve=\"$forum_id_breve\"")); 76 $id_breve = $row['id_breve']; 77 $date_heure = $row['date_heure']; 78 $titre = $row['titre']; 79 if ($forum_stat == "prive") { 80 return array('pref' => _T('lien_reponse_breve'), 81 'url' => "breves_voir.php3?id_breve=$id_breve", 82 'type' => 'id_breve', 83 'valeur' => $id_breve, 84 'titre' => $titre); 85 } else { 86 return array('pref' => _T('lien_reponse_breve_2'), 87 'url' => generer_url_breve($id_breve), 88 'type' => 'id_breve', 89 'valeur' => $id_breve, 90 'titre' => $titre); 91 } 92 } 93 else if ($forum_stat == "privadm") { 94 $retour = forum_parent($forum_id_parent); 95 if ($retour) return $retour; 96 else return array('pref' => _T('info_message'), 97 'url' => 'forum_admin.php3', 98 'titre' => _T('info_forum_administrateur')); 99 } 100 else { 101 $retour = forum_parent($forum_id_parent); 102 if ($retour) return $retour; 103 else return array('pref' => _T('info_message'), 104 'url' => 'forum.php3', 105 'titre' => _T('info_forum_interne')); 106 } 107 } 108 109 110 function controle_forum($row, $rappel) { 111 global $couleur_foncee; 112 global $mots_cles_forums; 113 114 $id_forum = $row['id_forum']; 115 $forum_id_parent = $row['id_parent']; 116 $forum_id_rubrique = $row['id_rubrique']; 117 $forum_id_article = $row['id_article']; 118 $forum_id_breve = $row['id_breve']; 119 $forum_date_heure = $row['date_heure']; 120 $forum_titre = echapper_tags($row['titre']); 121 $forum_texte = echapper_tags($row['texte']); 122 $forum_auteur = echapper_tags($row['auteur']); 123 $forum_email_auteur = echapper_tags($row['email_auteur']); 124 $forum_nom_site = echapper_tags($row['nom_site']); 125 $forum_url_site = echapper_tags($row['url_site']); 126 $forum_stat = $row['statut']; 127 $forum_ip = $row['ip']; 128 $forum_id_auteur = $row["id_auteur"]; 129 130 $r = forum_parent($id_forum); 131 $avant = $r['avant']; 132 $url = $r['url']; 133 $titre = $r['titre']; 134 $type = $r['type']; 135 $valeur = $r['valeur']; 136 $pref = $r['pref']; 137 138 $cadre = ""; 139 140 $controle = "\n<br /><br /><a id='id$id_forum'></a>"; 141 142 $controle .= debut_cadre_thread_forum("", true, "", typo($forum_titre)); 143 144 if ($forum_stat=="off" OR $forum_stat == "privoff") { 145 $controle .= "<div style='border: 2px #ff0000 dashed;'>"; 146 } 147 else if ($forum_stat=="prop") { 148 $controle .= "<div style='border: 2px yellow solid; background-color: white;'>"; 149 } 150 else { 151 $controle .= "<div>"; 152 } 153 154 $controle .= "<table width='100%' cellpadding='0' cellspacing='0' border='0'>\n<tr><td width='100%' valign='top'><table width='100%' cellpadding='5' cellspacing='0'>\n<tr><td class='serif'><span class='arial2'>" . 155 date_relative($forum_date_heure) . 156 "</span>"; 157 if ($forum_auteur) { 158 if ($forum_email_auteur) 159 $forum_auteur="<a href=\"mailto:$forum_email_auteur?SUBJECT=".rawurlencode($forum_titre)."\">$forum_auteur</A>"; 160 $controle .= "<span class='arial2'> / <B>$forum_auteur</B></span>"; 161 } 162 163 $controle .= boutons_controle_forum($id_forum, $forum_stat, $forum_id_auteur, "$type=$valeur", $forum_ip); 164 165 $controle .= "\n<br />$avant<B>$pref <A HREF='$url'>$titre</A></B>" . 166 "<P align='justify'>".propre($forum_texte); 167 168 if (strlen($forum_url_site) > 10 AND strlen($forum_nom_site) > 3) 169 $controle .= "\n<div align='left' class='serif'><B><A HREF='$forum_url_site'>$forum_nom_site</A></B></div>"; 170 171 if ($mots_cles_forums == "oui") { 172 $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"; 173 $result_mots = spip_query($query_mots); 174 175 while ($row_mots = spip_fetch_array($result_mots)) { 176 $titre_mot = propre($row_mots['titre']); 177 $type_mot = propre($row_mots['type']); 178 $controle .= "\n<li> <b>$type_mot :</b> $titre_mot"; 179 } 180 } 181 182 $controle .= "</TD></TR></TABLE>"; 183 $controle .= "</TD></TR></TABLE>\n"; 184 185 $controle .= "</div>".fin_cadre_thread_forum(true); 186 return $controle; 187 } 188 189 debut_page(_T('titre_page_forum_suivi'), "redacteurs", "forum-controle"); 190 191 if (!$page) $page = "public"; 192 193 echo "<br><br><br>"; 194 gros_titre(_T('titre_forum_suivi')); 195 barre_onglets("suivi_forum", $page); 196 197 if ($connect_statut != "0minirezo" OR !$connect_toutes_rubriques) { 198 echo "<B>"._T('avis_non_acces_page')."</B>"; 199 exit; 200 } 201 202 debut_gauche(); 203 debut_boite_info(); 204 echo "<FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=2>"; 205 echo _T('info_gauche_suivi_forum_2'); 206 echo aide("suiviforum"); 207 echo "</FONT>"; 208 209 // Afficher le lien RSS 210 include_ecrire ('inc_rss.php3'); 211 $op = 'forums'; 212 $args = array( 213 'page' => $page 214 ); 215 echo "<div style='text-align: " 216 . $GLOBALS['spip_lang_right'] 217 . ";'>" 218 . bouton_spip_rss($op, $args) 219 ."</div>"; 220 221 222 223 fin_boite_info(); 224 debut_droite(); 225 226 // 227 // Debut de la page de controle 228 // 229 230 // recuperer le critere SQL qui selectionne nos forums 231 $query_forum = critere_statut_controle_forum($page); 232 233 // Si un id_controle_forum est demande, on adapte le debut 234 if ($debut_id_forum = intval($debut_id_forum) 235 AND $d = spip_fetch_array(spip_query("SELECT date_heure FROM spip_forum 236 WHERE id_forum=$debut_id_forum"))) { 237 $result_forum = spip_query("SELECT id_forum FROM spip_forum 238 WHERE " . $query_forum . " 239 AND date_heure > '".$d['date_heure']."'"); 240 $debut = spip_num_rows($result_forum); 241 } 242 if (!$debut=intval($debut)) $debut = 0; 243 244 $pack = 20; // nb de forums affiches par page 245 $enplus = 200; // intervalle affiche autour du debut 246 $limitdeb = ($debut > $enplus) ? $debut-$enplus : 0; 247 $limitnb = $debut + $enplus - $limitdeb; 248 $rappel = "page=$page"; 249 $mots_cles_forums = lire_meta("mots_cles_forums"); 250 $controle = ''; 251 252 echo "<div class='serif2'>"; 253 $i = $limitdeb; 254 if ($i>0) echo "<a href='controle_forum.php3?$rappel'>0</a> ... | "; 255 256 $result_forum = spip_query(" 257 SELECT * 258 FROM spip_forum 259 WHERE " . $query_forum . " 260 ORDER BY date_heure DESC LIMIT $limitdeb, $limitnb" 261 ); 262 263 while ($row = spip_fetch_array($result_forum)) { 264 265 // barre de navigation 266 if ($i == $pack*floor($i/$pack)) { 267 if ($i == $debut) 268 echo "<FONT SIZE=3><B>$i</B></FONT>"; 269 else 270 echo "<a href='controle_forum.php3?$rappel&debut=$i'>$i</a>"; 271 echo " | "; 272 } 273 // est-ce que ce message doit s'afficher dans la liste ? 274 if (($i>=$debut) AND ($i<($debut + $pack))) 275 $controle .= controle_forum($row, "$rappel&debut=$debut"); 276 $i ++; 277 } 278 279 echo "<a href='controle_forum.php3?$rappel&debut=$i'>...</a>$controle</div>"; 280 fin_page(); 281 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Thu Feb 22 22:27:47 2007 | par Balluche grâce à PHPXref 0.7 |