View Full Version : "update forum counters" cron
meowmeow
09-27-2004, 07:19 AM
I would like the forum update counters script to be run from the scheduled tasks.
how do i do this?
I tried getting the section in admincp/misc.php :
// ###################### Start update forum #######################
if ($_REQUEST['do'] == 'updateforum')
{
...
}
but this script does some output to video which makes it not work from the scheduled tasks!
anybody know what i can do? should i put the full code in this thread?
Modin
09-27-2004, 11:15 PM
remove any "print_output" or "echo" or "print" statements from the code, that'll get ride of output.
meowmeow
09-29-2004, 06:49 AM
I did comment out all the 'echo's and 'print's
but when i try to run it, not as cron, it still does some sort of output...
the page background goes all white. maybe its the flush i dont know!
point is it still doesnt work!
i'll put the code below:
$finishat = $startat + $perpage;
if (empty($perpage))
{
$perpage = 100;
$startat = 0;
$finishat = $startat + $perpage;
}
//echo '<p>' . $vbphrase['updating_forums'] . '</p>';
$forums = $DB_site->query("
SELECT forumid
FROM " . TABLE_PREFIX . "forum
WHERE forumid >= $startat AND
forumid < $finishat
ORDER BY forumid DESC
");
while($forum = $DB_site->fetch_array($forums))
{
build_forum_counters($forum['forumid']);
//echo construct_phrase($vbphrase['processing_x'], $forum['forumid']) . "<br />\n";
flush();
}
if ($checkmore = $DB_site->query_first("SELECT forumid FROM " . TABLE_PREFIX . "forum WHERE forumid >= $finishat LIMIT 1"))
{
$finishat = $startat + $perpage;
print_cp_redirect("updateCounters.php?$session[sessionurl]do=updateforum&startat=$finishat&perpage=$perpage");
//echo "<p><a href=\"updateCounters.php?$session[sessionurl]do=updateforum&startat=$finishat&perpage=$perpage\">" . $vbphrase['click_here_to_continue_processing'] . "</a></p>";
}
else
{
// get rid of "ghost" moderators who are not attached to a valid forum
$deadmods = $DB_site->query("
SELECT moderatorid
FROM " . TABLE_PREFIX . "moderator AS moderator
LEFT JOIN " . TABLE_PREFIX . "forum AS forum USING (forumid)
WHERE forum.forumid IS NULL
");
$mods = '';
while ($mod = $DB_site->fetch_array($deadmods))
{
if (!empty($mods))
{
$mods .= ' , ';
}
$mods .= $mod['moderatorid'];
}
if (!empty($mods))
{
$DB_site->query("DELETE FROM " . TABLE_PREFIX . "moderator WHERE moderatorid IN (" . $mods . ")");
}
// and finally rebuild the forumcache
unset($forumarraycache, $forumcache);
build_forum_permissions();
// define('CP_REDIRECT', 'index.php');
// print_stop_message('updated_forum_successfully');
}
//require_once ("../includes/functions_cron.php");
log_cron_action('update forum counters done', $nextitem);
vBulletin® v3.8.12 by vBS, Copyright ©2000-2025, vBulletin Solutions Inc.