PDA

View Full Version : Rebuilding forum permissions automatically..


cday
05-18-2010, 06:40 PM
I need to be able to call the rebuilding forum permissions method outside of vbulletin as part of a signup script.. basically, when a user signs up, I need to create his own private forum for his group.

I got all the SQL done right .. it's inserting the proper new usergroup, permissions, forum, etc.. the problem is, the forum won't show up until I go and run the 'Rebuild Forum Permissions' on the admin end. I need it to happen automatically.

I tried chunking out the needed code in misc.php into a new file and have that be called by my script, but it's not working:


<?
chdir('vb_forums');
require_once('vb_forums/global.php');
require_once('vb_forums/includes/functions_databuild.php');

if (empty($vbulletin->GPC['perpage']))
{
$vbulletin->GPC['perpage'] = 100;
$vbulletin->GPC['startat'] = 1;
}

$forums = $db->query_read("
SELECT forumid
FROM " . TABLE_PREFIX . "forum
WHERE forumid >= " . $vbulletin->GPC['startat'] . "
ORDER BY forumid
LIMIT " . $vbulletin->GPC['perpage']
);

$finishat = $vbulletin->GPC['startat'];

while($forum = $db->fetch_array($forums))
{
build_forum_counters($forum['forumid'], true);
vbflush();

$finishat = ($forum['forumid'] > $finishat ? $forum['forumid'] : $finishat);
}

$finishat++;

if ($checkmore = $db->query_first("SELECT forumid FROM " . TABLE_PREFIX . "forum WHERE forumid >= $finishat LIMIT 1"))
{
// print_cp_redirect("misc.php?" . $vbulletin->session->vars['sessionurl'] . "do=updateforum&startat=$finishat&pp=" . $vbulletin->GPC['perpage']);
//echo "<p><a href=\"misc.php?" . $vbulletin->session->vars['sessionurl'] . "do=updateforum&amp;startat=$finishat&amp;pp=" . $vbulletin->GPC['perpage'] . "\">" . $vbphrase['click_here_to_continue_processing'] . "</a></p>";
}
else
{
unset($forumarraycache, $vbulletin->forumcache);
build_forum_permissions();
}
?>


Can anyone assist?

Thanks,
Chad

--------------- Added 1274212254 at 1274212254 ---------------

Nevermind .. after some more extensive searching here on different terms, I found I was missing an include, but it wasn't erroring out right. Leaving this thread here in case it helps anyone else in the future.

The code I used to rebuild the forum permissions automatically:


chdir('vb_forums');
require_once('/vb_forums/global.php');
require_once('/vb_forums/includes/functions_databuild.php');
require_once('/vb_forums/includes/init.php'); // includes class_core.php
require_once('/vb_forums/includes/class_dm.php'); // for class_dm_user.php
require_once('/vb_forums/includes/class_dm_user.php'); // for user functions
require_once('/vb_forums/includes/functions.php'); // vbsetcookie etc.
require_once('/vb_forums/includes/functions_login.php'); // process login/logout
require_once('/vb_forums/includes/adminfunctions.php');
build_forum_permissions();
?>


Some of those includes are probably unneeded.. the adminfunctions.php one is the one I was missing and why it was breaking. It's not going to hurt to include the other ones, but if you want to experiment one by one on taking them out, (shrug) ..