vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   Modification Requests/Questions (Unpaid) (https://vborg.vbsupport.ru/forumdisplay.php?f=112)
-   -   Info on functions? (https://vborg.vbsupport.ru/showthread.php?t=61968)

Wired1 02-27-2004 05:31 AM

Info on functions?
 
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

PHP Code:

// 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:
PHP Code:

$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:
PHP Code:

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 :)


All times are GMT. The time now is 10:21 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01731 seconds
  • Memory Usage 1,756KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (3)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (8)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete