resultq("SELECT bigpostersupdate FROM misc") <= ctime()-(3600 * 8)) {
$sql->query("TRUNCATE biggestposters");
$sql->query("INSERT INTO biggestposters "
."(id, posts, waste) "
."SELECT u.id, u.posts, SUM(LENGTH(pt.`text`)) "
."FROM `posts` p "
."LEFT JOIN `users` u ON p.user = u.id "
."LEFT JOIN `posts_text` pt on p.id = pt.pid "
."WHERE (u.posts >= 5 OR u.posts < 0) GROUP BY p.user");
$sql->query("UPDATE biggestposters SET average = waste / posts");
$sql->query("UPDATE misc SET bigpostersupdate = ".ctime());
}
$posters = $sql->query("SELECT bp.*, u.name, u.regdate, u.minipic, u.sex, u.powerlevel FROM biggestposters bp LEFT JOIN users u ON bp.id=u.id ORDER BY $sort DESC");
print "
$header
$tblstart
$tccellc colspan=7>Biggest posters, $headertext
$tccellh width=30>#
$tccellh colspan=2>Username
$tccellh width=200>Registered on
$tccellh width=130>Posts
$tccellh width=130>Size
$tccellh width=130>Average
";
for($i=1; $user = $sql -> fetch($posters); $i++) {
if($i == 1) $max = $user['waste'];
if ($user['waste'] != $oldcnt) $rank = $i;
$oldcnt = $user['waste'];
$namecolor=getnamecolor($user['sex'],$user['powerlevel']);
$col = "";
if ($user['average'] >= 500) $col = "#88ff88";
if ($user['average'] >= 750) $col = "#8888ff";
if ($user['average'] <= 200) $col = "#ffff80";
if ($user['average'] <= 100) $col = "#ff8080";
if ($user['average'] <= 0) $col = "#888888";
$avgc = number_format(abs($user['average']), 1);
if ($col) $avgc = "$avgc";
print "
$tccell1>$rank
$tccell1 width=16>". ($user['minipic'] ? "
" : " ") ."
$tccell2l>". $user['name'] ."
$tccell1>".date($dateformat, $user['regdate'] + $tzoff) ."
$tccell1r>". $user['posts'] ."
$tccell1r>". number_format($user['waste']) ."
$tccell2r>". $avgc ."
";
}
print "
$tblend
$smallfont(Note: this doesn't take into account quotes, joke posts, or other things. It isn't a very good judge of actual post content, just post size.)
(This table is cached and updated every few hours.)
$footer";
printtimedif($startingtime);
?>