[ Index ] |
|
Code source de e107 0.7.8 |
1 <?php 2 /* 3 + ----------------------------------------------------------------------------+ 4 | e107 website system 5 | 6 | ©Steve Dunstan 2001-2002 7 | http://e107.org 8 | jalist@e107.org 9 | 10 | Released under the terms and conditions of the 11 | GNU General Public License (http://gnu.org). 12 | 13 | $Source: /cvsroot/e107/e107_0.7/e107_plugins/forum/forum_stats.php,v $ 14 | $Revision: 1.14 $ 15 | $Date: 2006/12/04 12:51:38 $ 16 | $Author: mcfly_e107 $ 17 +----------------------------------------------------------------------------+ 18 */ 19 20 require_once ('../../class2.php'); 21 22 @include_once e_PLUGIN.'forum/languages/'.e_LANGUAGE.'/lan_forum_stats.php'; 23 @include_once e_PLUGIN.'forum/languages/English/lan_forum_stats.php'; 24 @require_once(e_PLUGIN.'forum/forum_class.php'); 25 $gen = new convert; 26 27 $barl = (file_exists(THEME."images/barl.png") ? THEME."images/barl.png" : e_PLUGIN."poll/images/barl.png"); 28 $barr = (file_exists(THEME."images/barr.png") ? THEME."images/barr.png" : e_PLUGIN."poll/images/barr.png"); 29 $bar = (file_exists(THEME."images/bar.png") ? THEME."images/bar.png" : e_PLUGIN."poll/images/bar.png"); 30 31 require_once(HEADERF); 32 33 $total_posts = $sql -> db_Count("forum_t"); 34 $total_topics = $sql -> db_Count("forum_t", "(*)", "WHERE thread_parent=0"); 35 $total_replies = $sql -> db_Count("forum_t", "(*)", "WHERE thread_parent!=0"); 36 $total_views = 0; 37 if($sql->db_Select("forum_t", "sum(thread_views) AS total", '', 'nowhere')) 38 { 39 $row = $sql->db_Fetch(); 40 $total_views = $row['total']; 41 } 42 43 $firstpost = $sql -> db_Select("forum_t", "thread_datestamp", "thread_datestamp > 0 ORDER BY thread_datestamp ASC LIMIT 0,1"); 44 $fp = $sql -> db_Fetch(); 45 46 $open_ds = $fp['thread_datestamp']; 47 $open_date = $gen->convert_date($open_ds, "long"); 48 $open_since = $gen -> computeLapse($open_ds); 49 $open_days = floor((time()-$open_ds) / 86400); 50 $postsperday = ($open_days < 1 ? $total_posts : round($total_posts / $open_days)); 51 52 $query = "SHOW TABLE STATUS FROM $mySQLdefaultdb"; 53 $sql -> db_Select_gen($query); 54 $array = $sql -> db_getList(); 55 foreach($array as $table) 56 { 57 if($table['Name'] == MPREFIX."forum_t") 58 { 59 $db_size = parsesize($table['Data_length']); 60 $avg_row_len = parsesize($table['Avg_row_length']); 61 break; 62 } 63 } 64 65 66 $query = " 67 SELECT ft.thread_id, ft.thread_user, ft.thread_name, ft.thread_total_replies, ft.thread_datestamp, f.forum_class, u.user_name FROM #forum_t as ft 68 LEFT JOIN #user AS u ON ft.thread_user = u.user_id 69 LEFT JOIN #forum AS f ON f.forum_id = ft.thread_forum_id 70 WHERE ft.thread_parent = 0 71 AND ft.thread_active != 0 72 AND f.forum_class IN (".USERCLASS_LIST.") 73 ORDER BY thread_total_replies DESC LIMIT 0,10"; 74 $sql -> db_Select_gen($query); 75 $most_activeArray = $sql -> db_getList(); 76 77 $query = " 78 SELECT ft.*, f.forum_class, user_name FROM #forum_t as ft 79 LEFT JOIN #user AS u ON ft.thread_user = u.user_id 80 LEFT JOIN #forum AS f ON f.forum_id = ft.thread_forum_id 81 WHERE ft.thread_parent=0 82 AND f.forum_class IN (".USERCLASS_LIST.") 83 ORDER BY thread_views DESC LIMIT 0,10"; 84 85 $sql -> db_Select_gen($query); 86 $most_viewedArray = $sql -> db_getList(); 87 88 $sql->db_Select("user", "user_id, user_name, user_forums", "ORDER BY user_forums DESC LIMIT 0, 10", "no_where"); 89 $posters = $sql -> db_getList(); 90 $top_posters = array(); 91 foreach($posters as $poster) 92 { 93 $percen = round(($poster['user_forums'] / $total_posts) * 100, 2); 94 $top_posters[] = array("user_id" => $poster['user_id'], "user_name" => $poster['user_name'], "user_forums" => $poster['user_forums'], "percentage" => $percen); 95 } 96 97 $query = " 98 SELECT SUBSTRING_INDEX(thread_user,'.',1) AS t_user, COUNT(SUBSTRING_INDEX(ft.thread_user,'.',1)) AS ucount, u.user_name, u.user_id FROM #forum_t as ft 99 LEFT JOIN #user AS u ON SUBSTRING_INDEX(ft.thread_user,'.',1) = u.user_id 100 WHERE ft.thread_parent=0 101 GROUP BY t_user 102 ORDER BY ucount DESC 103 LIMIT 0,10"; 104 $sql -> db_Select_gen($query); 105 $posters = $sql -> db_getList(); 106 $top_topic_starters = array(); 107 foreach($posters as $poster) 108 { 109 $percen = round(($poster['ucount'] / $total_topics) * 100, 2); 110 $top_topic_starters[] = array("user_id" => $poster['user_id'], "user_name" => $poster['user_name'], "user_forums" => $poster['ucount'], "percentage" => $percen); 111 } 112 113 $query = " 114 SELECT SUBSTRING_INDEX(thread_user,'.',1) AS t_user, COUNT(SUBSTRING_INDEX(ft.thread_user,'.',1)) AS ucount, u.user_name, u.user_id FROM #forum_t as ft 115 LEFT JOIN #user AS u ON SUBSTRING_INDEX(ft.thread_user,'.',1) = u.user_id 116 WHERE ft.thread_parent!=0 117 GROUP BY t_user 118 ORDER BY ucount DESC 119 LIMIT 0,10"; 120 $sql -> db_Select_gen($query); 121 $posters = $sql -> db_getList(); 122 123 $top_repliers = array(); 124 foreach($posters as $poster) 125 { 126 $percen = round(($poster['ucount'] / $total_replies) * 100, 2); 127 $top_repliers[] = array("user_id" => $poster['user_id'], "user_name" => $poster['user_name'], "user_forums" => $poster['ucount'], "percentage" => $percen); 128 } 129 130 131 132 $text = " 133 <div class='spacer'> 134 <table style='width: 100%;' class='fborder'> 135 <tr> 136 <td class='forumheader'>".FSLAN_1."</td> 137 </tr> 138 139 <tr> 140 <td class='forumheader3'> 141 <table style='width: 100%;'> 142 <tr><td style='width: 50%; text-align: right;'><b>".FSLAN_2.":</b> </td><td style='width: 50%;'>$open_date</td></tr> 143 <tr><td style='width: 50%; text-align: right;'><b>".FSLAN_3.":</b> </td><td style='width: 50%;'>$open_since</td></tr> 144 <tr><td style='width: 50%; text-align: right;'><b>".FSLAN_4.":</b> </td><td style='width: 50%;'>$total_posts</td></tr> 145 <tr><td style='width: 50%; text-align: right;'><b>".FSLAN_5.":</b> </td><td style='width: 50%;'>$total_topics</td></tr> 146 <tr><td style='width: 50%; text-align: right;'><b>".FSLAN_6.":</b> </td><td style='width: 50%;'>$total_replies</td></tr> 147 <tr><td style='width: 50%; text-align: right;'><b>".FSLAN_7.":</b> </td><td style='width: 50%;'>$total_views</td></tr> 148 <tr><td style='width: 50%; text-align: right;'><b>".FSLAN_24.":</b> </td><td style='width: 50%;'>$postsperday</td></tr> 149 <tr><td style='width: 50%; text-align: right;'><b>".FSLAN_8.":</b> </td><td style='width: 50%;'>$db_size</td></tr> 150 <tr><td style='width: 50%; text-align: right;'><b>".FSLAN_9.":</b> </td><td style='width: 50%;'>$avg_row_len</td></tr> 151 152 </tr> 153 </table> 154 </td> 155 </tr> 156 </table> 157 </div> 158 159 <div class='spacer'> 160 <table style='width: 100%;' class='fborder'> 161 <tr> 162 <td class='forumheader' colspan='5'>".FSLAN_10."</td> 163 </tr> 164 <tr> 165 <td style='width: 10%; text-align: center;' class='fcaption'>".FSLAN_11."</td> 166 <td style='width: 40%;' class='fcaption'>".FSLAN_12."</td> 167 <td style='width: 10%; text-align: center;' class='fcaption'>".FSLAN_13."</td> 168 <td style='width: 20%; text-align: center;' class='fcaption'>".FSLAN_14."</td> 169 <td style='width: 20%; text-align: center;' class='fcaption'>".FSLAN_15."</td> 170 </tr> 171 "; 172 173 $count=1; 174 foreach($most_activeArray as $ma) 175 { 176 if($ma['user_name']) 177 { 178 $uinfo = "<a href='".e_BASE."user.php?id.{$ma['thread_user']}'>{$ma['user_name']}</a>"; 179 } 180 else 181 { 182 $tmp = explode(chr(1), $ma['thread_anon']); 183 $uinfo = $tp->toHTML($tmp[0]); 184 } 185 186 $text .= "<tr> 187 <td style='width: 10%; text-align: center;' class='forumheader3'>$count</td> 188 <td style='width: 40%;' class='forumheader3'><a href='".e_PLUGIN."forum/forum_viewtopic.php?{$ma['thread_id']}'>{$ma['thread_name']}</a></td> 189 <td style='width: 10%; text-align: center;' class='forumheader3'>{$ma['thread_total_replies']}</td> 190 <td style='width: 20%; text-align: center;' class='forumheader3'>{$uinfo}</td> 191 <td style='width: 20%; text-align: center;' class='forumheader3'>".$gen->convert_date($ma['thread_datestamp'], "forum")."</td> 192 </tr> 193 "; 194 $count++; 195 } 196 $text .= "</table> 197 </div> 198 199 <div class='spacer'> 200 <table style='width: 100%;' class='fborder'> 201 <tr> 202 <td class='forumheader' colspan='5'>".FSLAN_16."</td> 203 </tr> 204 <tr> 205 <td style='width: 10%; text-align: center;' class='fcaption'>".FSLAN_11."</td> 206 <td style='width: 40%;' class='fcaption'>".FSLAN_12."</td> 207 <td style='width: 10%; text-align: center;' class='fcaption'>".FSLAN_17."</td> 208 <td style='width: 20%; text-align: center;' class='fcaption'>".FSLAN_14."</td> 209 <td style='width: 20%; text-align: center;' class='fcaption'>".FSLAN_15."</td> 210 </tr> 211 "; 212 213 $count=1; 214 foreach($most_viewedArray as $ma) 215 { 216 extract($ma); 217 $text .= "<tr> 218 <td style='width: 10%; text-align: center;' class='forumheader3'>$count</td> 219 <td style='width: 40%;' class='forumheader3'><a href='".e_PLUGIN."forum/forum_viewtopic.php?$thread_id'>$thread_name</a></td> 220 <td style='width: 10%; text-align: center;' class='forumheader3'>$thread_views</td> 221 <td style='width: 20%; text-align: center;' class='forumheader3'><a href='".e_BASE."user.php?id.$thread_user'>$user_name</a></td> 222 <td style='width: 20%; text-align: center;' class='forumheader3'>".$gen->convert_date($thread_datestamp, "forum")."</td> 223 </tr> 224 "; 225 $count++; 226 } 227 $text .= "</table> 228 </div> 229 230 <div class='spacer'> 231 <table style='width: 100%;' class='fborder'> 232 <tr> 233 <td class='forumheader' colspan='5'>".FSLAN_18."</td> 234 </tr> 235 <tr> 236 <td style='width: 10%; text-align: center;' class='fcaption'>".FSLAN_11."</td> 237 <td style='width: 20%;' class='fcaption'>".FSLAN_19."</td> 238 <td style='width: 10%; text-align: center;' class='fcaption'>".FSLAN_20."</td> 239 <td style='width: 10%; text-align: center;' class='fcaption'>%</td> 240 <td style='width: 50%; text-align: center;' class='fcaption'> </td> 241 </tr> 242 "; 243 244 $count=1; 245 foreach($top_posters as $ma) 246 { 247 extract($ma); 248 $text .= "<tr> 249 <td style='width: 10%; text-align: center;' class='forumheader3'>$count</td> 250 <td style='width: 20%;' class='forumheader3'><a href='".e_BASE."user.php?id.$user_id'>$user_name</a></td> 251 <td style='width: 10%; text-align: center;' class='forumheader3'>$user_forums</td> 252 <td style='width: 10%; text-align: center;' class='forumheader3'>$percentage%</td> 253 <td style='width: 50%;' class='forumheader3'> 254 255 <div style='background-image: url($barl); width: 5px; height: 14px; float: left;'></div> 256 <div style='background-image: url($bar); width: ".intval($percentage)."%; height: 14px; float: left;'></div> 257 <div style='background-image: url($barr); width: 5px; height: 14px; float: left;'></div> 258 259 </td> 260 </tr> 261 "; 262 $count++; 263 } 264 $text .= " 265 </table> 266 </div> 267 268 <div class='spacer'> 269 <table style='width: 100%;' class='fborder'> 270 <tr> 271 <td class='forumheader' colspan='5'>".FSLAN_21."</td> 272 </tr> 273 <tr> 274 <td style='width: 10%; text-align: center;' class='fcaption'>".FSLAN_11."</td> 275 <td style='width: 20%;' class='fcaption'>".FSLAN_19."</td> 276 <td style='width: 10%; text-align: center;' class='fcaption'>".FSLAN_20."</td> 277 <td style='width: 10%; text-align: center;' class='fcaption'>%</td> 278 <td style='width: 50%; text-align: center;' class='fcaption'> </td> 279 </tr> 280 "; 281 282 $count=1; 283 foreach($top_topic_starters as $ma) 284 { 285 extract($ma); 286 $text .= "<tr> 287 <td style='width: 10%; text-align: center;' class='forumheader3'>$count</td> 288 <td style='width: 20%;' class='forumheader3'><a href='".e_BASE."user.php?id.$user_id'>$user_name</a></td> 289 <td style='width: 10%; text-align: center;' class='forumheader3'>$user_forums</td> 290 <td style='width: 10%; text-align: center;' class='forumheader3'>$percentage%</td> 291 <td style='width: 50%; text-align: center;' class='forumheader3'> 292 293 <div style='background-image: url($barl); width: 5px; height: 14px; float: left;'></div> 294 <div style='background-image: url($bar); width: ".intval($percentage)."%; height: 14px; float: left;'></div> 295 <div style='background-image: url($barr); width: 5px; height: 14px; float: left;'></div> 296 297 </td> 298 </tr> 299 "; 300 $count++; 301 } 302 $text .= "</table> 303 </div> 304 305 306 <div class='spacer'> 307 <table style='width: 100%;' class='fborder'> 308 <tr> 309 <td class='forumheader' colspan='5'>".FSLAN_22."</td> 310 </tr> 311 <tr> 312 <td style='width: 10%; text-align: center;' class='fcaption'>".FSLAN_11."</td> 313 <td style='width: 20%;' class='fcaption'>".FSLAN_19."</td> 314 <td style='width: 10%; text-align: center;' class='fcaption'>".FSLAN_20."</td> 315 <td style='width: 10%; text-align: center;' class='fcaption'>%</td> 316 <td style='width: 50%; text-align: center;' class='fcaption'> </td> 317 </tr> 318 "; 319 320 $count=1; 321 foreach($top_repliers as $ma) 322 { 323 extract($ma); 324 $text .= "<tr> 325 <td style='width: 10%; text-align: center;' class='forumheader3'>$count</td> 326 <td style='width: 20%;' class='forumheader3'><a href='".e_BASE."user.php?id.$user_id'>$user_name</a></td> 327 <td style='width: 10%; text-align: center;' class='forumheader3'>$user_forums</td> 328 <td style='width: 10%; text-align: center;' class='forumheader3'>$percentage%</td> 329 <td style='width: 50%; text-align: center;' class='forumheader3'> 330 331 <div style='background-image: url($barl); width: 5px; height: 14px; float: left;'></div> 332 <div style='background-image: url($bar); width: ".intval($percentage)."%; height: 14px; float: left;'></div> 333 <div style='background-image: url($barr); width: 5px; height: 14px; float: left;'></div> 334 335 </td> 336 </tr> 337 "; 338 $count++; 339 } 340 $text .= "</table> 341 </div> 342 "; 343 344 345 $ns -> tablerender(FSLAN_23, $text); 346 347 348 require_once(FOOTERF); 349 350 function parsesize($size) { 351 $kb = 1024; 352 $mb = 1024 * $kb; 353 $gb = 1024 * $mb; 354 $tb = 1024 * $gb; 355 if(!$size) 356 { 357 return '0'; 358 } 359 if ($size < $kb) { 360 return $size." b"; 361 } 362 else if($size < $mb) { 363 return round($size/$kb, 2)." kb"; 364 } 365 else if($size < $gb) { 366 return round($size/$mb, 2)." mb"; 367 } 368 else if($size < $tb) { 369 return round($size/$gb, 2)." gb"; 370 } else { 371 return round($size/$tb, 2)." tb"; 372 } 373 } 374 375 376 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sun Apr 1 01:23:32 2007 | par Balluche grâce à PHPXref 0.7 |