[ Index ]
 

Code source de e107 0.7.8

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/e107_plugins/forum/ -> forum_stats.php (source)

   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>&nbsp;&nbsp;</td><td style='width: 50%;'>$open_date</td></tr>
 143      <tr><td style='width: 50%; text-align: right;'><b>".FSLAN_3.":</b>&nbsp;&nbsp;</td><td style='width: 50%;'>$open_since</td></tr>
 144      <tr><td style='width: 50%; text-align: right;'><b>".FSLAN_4.":</b>&nbsp;&nbsp;</td><td style='width: 50%;'>$total_posts</td></tr>
 145      <tr><td style='width: 50%; text-align: right;'><b>".FSLAN_5.":</b>&nbsp;&nbsp;</td><td style='width: 50%;'>$total_topics</td></tr>
 146      <tr><td style='width: 50%; text-align: right;'><b>".FSLAN_6.":</b>&nbsp;&nbsp;</td><td style='width: 50%;'>$total_replies</td></tr>
 147      <tr><td style='width: 50%; text-align: right;'><b>".FSLAN_7.":</b>&nbsp;&nbsp;</td><td style='width: 50%;'>$total_views</td></tr>
 148      <tr><td style='width: 50%; text-align: right;'><b>".FSLAN_24.":</b>&nbsp;&nbsp;</td><td style='width: 50%;'>$postsperday</td></tr>
 149      <tr><td style='width: 50%; text-align: right;'><b>".FSLAN_8.":</b>&nbsp;&nbsp;</td><td style='width: 50%;'>$db_size</td></tr>
 150      <tr><td style='width: 50%; text-align: right;'><b>".FSLAN_9.":</b>&nbsp;&nbsp;</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'>&nbsp;</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'>&nbsp;</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'>&nbsp;</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  ?>


Généré le : Sun Apr 1 01:23:32 2007 par Balluche grâce à PHPXref 0.7