View Full Version : Info on functions?
Wired1
02-27-2004, 05:31 AM
I'm looking for information on a specific function (build_forum_permissions();) and how it is used, yet the comments in the code in vB 3 RC4 aren't descriptive enough to help. Does anyone know of a good resource to ask about this? FYI, yes, I had been thinking about asking directly at vb.com
Andreas
02-27-2004, 09:43 AM
Well, it queries the database for usergroups and forums adnd builds up the datastore records usergroupcache and forumcache..
To use it just call build_forum_permissions().
Wired1
02-28-2004, 05:52 AM
IIRC, when used to make a forum, it SHOULD see what the forum defaults are and set the newly created forum to said defaults? Oh and yes, I know how to use a function, just having problems with this 1 in particular. When I use it in my forum creation script, everything is set to the table defaults for the forum. Basically I'm trying to figure out a way to have it set the new forum's permissions to the default of the site without manually going into the admin panel, or manually slapping them in by a mySQL insert.
Andreas
02-28-2004, 08:21 AM
The forum defaults (eg. allow bb code, active, etc.) AFAIK are hardcoded in admincp/forum.php, so if you want them in your own script too you will have to copy that code.
Wired1
02-28-2004, 06:47 PM
I don't think they're hard coded in PHP, since I believe you can change the forum default from within the admincp, and I think it's just a mySQL query / update when it does that. I'll take a look at that though.
Has anyone ever attempted to make a script to automatically create forums?
Andreas
02-28-2004, 11:02 PM
Copy & Paste from admincp/forum.php
// Set Defaults;
$forum = array(
'displayorder' => 1,
'daysprune' => 30,
'parentid' => $parentid,
'styleid' => '',
'cancontainthreads' => 1,
'active' => 1,
'allowposting' => 1,
'allowbbcode' => 1,
'allowsmilies' => 1,
'allowicons' => 1,
'allowimages' => 1,
'allowratings' => 1,
'countposts' => 1,
'indexposts' => 1,
'showonforumjump' => 1,
'warnall' => 0
);
That's what i'd call hardcoded ...
Wired1
02-28-2004, 11:42 PM
I stand corrected! I'll look for that. Just goes to prove that the world DOES keep on moving when I take a nap! :)
Wired1
03-01-2004, 08:11 AM
By George, I think I've got it! The code you mentioned that is hard coded doesn't go directly into the $forum. Somewhere along the line it gets turned into $forum['options']. Took ages, but I finally stumbled upon the sequence:
$options = array(
'displayorder' => 1,
'daysprune' => 30,
'parentid' => $parentid,
'styleid' => '',
'cancontainthreads' => 1,
'active' => 1,
'allowposting' => 1,
'allowbbcode' => 1,
'allowsmilies' => 1,
'allowicons' => 1,
'allowimages' => 1,
'allowratings' => 1,
'countposts' => 1,
'indexposts' => 1,
'showonforumjump' => 1,
'warnall' => 0
);
$forum['options'] = convert_array_to_bits($options, $_FORUMOPTIONS);
Here's the (I think) complete code to automate the creation of a forum:
require_once('./global.php');
require_once('./includes/functions_misc.php');
require_once('./includes/adminfunctions_forums.php');
require_once('./includes/adminfunctions.php');
$parentid = 12;
$title = 'Some foobar title';
$description = 'Some foobar description';
$forum = array(
'displayorder' => 1,
'daysprune' => 30,
'parentid' => $parentid,
'title' => $title,
'description' => $description,
'styleid' => '0'
);
$options = array(
'displayorder' => 1,
'daysprune' => 30,
'parentid' => $parentid,
'styleid' => '',
'cancontainthreads' => 1,
'active' => 1,
'allowposting' => 1,
'allowbbcode' => 1,
'allowsmilies' => 1,
'allowicons' => 1,
'allowimages' => 1,
'allowratings' => 1,
'countposts' => 1,
'indexposts' => 1,
'showonforumjump' => 1,
'warnall' => 0
);
$forum['options'] = convert_array_to_bits($options, $_FORUMOPTIONS);
$parentlist = fetch_forum_parentlist($forum['parentid']);
$DB_site->query(fetch_query_sql($forum, 'forum'));
$forumid = $DB_site->insert_id();
$DB_site->query("
UPDATE " . TABLE_PREFIX . "forum
SET parentlist='" . addslashes("$forumid,$parentlist") . "',
childlist = '$forumid,-1'
WHERE forumid = $forumid
");
build_forum_parentlists($forumid);
build_forum_child_lists($parentid);
build_forum_permissions();
I'm pretty sure this won't qualify as a hack per se, but I hope this code will help out other vB module coders out there!
Now, does anyone see any potential errors or boo-boos that I might have missed? It is 5:10 AM for me after all :)
vBulletin® v3.8.12 by vBS, Copyright ©2000-2025, vBulletin Solutions Inc.