function getgroupranking($fid = '', $nowranking = '', $num = 100) { $topgroup = $rankingdata = $topyesterday = array(); if ($fid) { updateactivity($fid); } $ranking = 1; $query = DB::query("SELECT f.fid FROM " . DB::table('forum_forum') . " as f LEFT JOIN " . DB::table('forum_forumfield') . " as ff ON ff.fid=f.fid WHERE f.type='sub' AND f.status='3' ORDER BY ff.activity DESC LIMIT 0, 1000"); while ($group = DB::fetch($query)) { $topgroup[$group['fid']] = $ranking++; } if ($fid && $topgroup) { $rankingdata['yesterday'] = intval($nowranking); $rankingdata['today'] = intval($topgroup[$fid]); $rankingdata['trend'] = $rankingdata['yesterday'] ? grouptrend($rankingdata['yesterday'], $rankingdata['today']) : 0; $topgroup = $rankingdata; } else { $query = DB::query("SELECT * FROM " . DB::table('forum_groupranking') . " ORDER BY today LIMIT 0, {$num}"); while ($top = DB::fetch($query)) { $topyesterday[$top['fid']] = $top; } foreach ($topgroup as $forumid => $today) { $yesterday = intval($topyesterday[$forumid]); $trend = $yesterday ? grouptrend($yesterday, $today) : 0; DB::query("REPLACE INTO " . DB::table('forum_groupranking') . " (fid, yesterday, today, trend) VALUES ('{$forumid}', '{$yesterday}', '{$today}', '{$trend}')", 'UNBUFFERED'); } $topgroup = $topyesterday; } return $topgroup; }
function getgroupranking($fid = '', $nowranking = '') { $topgroup = $rankingdata = $topyesterday = array(); $ranking = 1; $query = C::t('forum_forum')->fetch_all_group_for_ranking(); foreach ($query as $group) { $topgroup[$group['fid']] = $ranking++; } if ($fid && $topgroup) { $rankingdata['yesterday'] = intval($nowranking); $rankingdata['today'] = intval($topgroup[$fid]); $rankingdata['trend'] = $rankingdata['yesterday'] ? grouptrend($rankingdata['yesterday'], $rankingdata['today']) : 0; $topgroup = $rankingdata; } return $topgroup; }