Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 11-04-2012, 04:05 PM
tblancha tblancha is offline
 
Join Date: Jun 2009
Posts: 11
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Is it possible to include global.php in functions and if statements

Hello,

I'm having problems attempting to include global.php inside functions and if statements.

I also have problems including global.php outiside if statements and then using the data manager "tools" inside the if statement.

The goal is to add a registered user to additional group(s) using the data manager tools if certain conditions are met.

When I attempt to include global.php either in a function or if statement and then make a call to fwrite, nothing gets written to my file, and the user is not added to the additional groups. It's like php and/or vbulletin goes in la-la land.

Including global.php and $vbulletin works outside any if statements and functions. However, that is assuming one condition is always met. I need to be able to check for multiple conditions and that's why I'd like to be able to at least use if statements and then reference $vbulletin to manipulate the user's groups inside the different if statements (leveraging the data manager "tools").

So I need to be able to do something like (pardon my pseudo-code):

include_once(dirname(__FILE__) . "/global.php");
global $vbulletin;

$email = "momma@mommashouse.com";

if ($userlikestheHoustonTexans == "yes")
{
// update membergroupids to add more access

$useridq = $vbulletin->db->query_first_slave("SELECT userid FROM "
. TABLE_PREFIX . "user WHERE email='{$email}'");

$syd_userinfo = fetch_userinfo($useridq['userid'], 0, 0);

$finalmembergroupids = $syd_userinfo['membergroupids'] . ",9";

$file = fopen(dirname(__FILE__) . "/test.txt","a");
fwrite($file, "made it past including global php \r\n");
fclose($file);

}
else
{
// remove membergroupids to deny access since they don't like the TEXANS - boo
}

//do presave
//check for errors with presave
// if no errors with presave, then really save the users updated information


But declaring global.php outside any if statements and then referencing $vbulletin in the different if statements is not working.

Thanks for any help you can provide!
Reply With Quote
  #2  
Old 11-04-2012, 04:18 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You should be able to include global.php inside an if statement, but the current directory needs to be the directory where global.php is (your forum directory). So if the script that includes global.php is not there, you need to do something like:

Code:
chdir('path/to/forum');
include_once("global.php");
// chdir() back if necessary
and you don't need to declare $vbulletin as global if you're not inside a function.

Including it inside a function is possible, but to do it there are certain variables that need to be declared as global *before* the include, and I don't know offhand what they all are - obviously $vbulletin is one, I think $bootstrap might be another. Maybe you could write a test script and call get_defined_vars() before and after including global.php, then diff the arrays and see what vars were created (although some of them may not be needed after global.php is done).
Reply With Quote
  #3  
Old 11-04-2012, 05:11 PM
tblancha tblancha is offline
 
Join Date: Jun 2009
Posts: 11
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks for the response. I'll give it a shot later this evening.
Thank you for taking the time to respond.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 08:29 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04240 seconds
  • Memory Usage 2,179KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (3)post_thanks_box
  • (3)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (3)post_thanks_postbit_info
  • (3)postbit
  • (3)postbit_onlinestatus
  • (3)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.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
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete