Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
Prev Previous Post   Next Post Next
  #1  
Old 10-24-2012, 04:33 PM
DetroitYES's Avatar
DetroitYES DetroitYES is offline
 
Join Date: Mar 2009
Posts: 43
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default $vbulletin->options not available at global_bootstrap_complete unless via include?!

So I've noticed this hiccup while developing a few products and thought I'd get some clarification on it here. Basically, if I write a plugin for my atdisg product with this code at global_bootstrap_complete, it won't pick up the option's value so nothing will be echoed:

PHP Code:
//fails
if (!empty($vbulletin->options['atdisg_featured_display_count'])) {
    echo 
"<!--".$vbulletin->options['atdisg_featured_display_count']."-->";

Certainly annoying, but perhaps the options are declared after the hook is fired. Fair enough, except that does not seem to be the case. What perplexes me is if I write a php file in the includes directory called atdisg_includes.php, with a function that will return the $vbulletin->options... :

PHP Code:

//some plugin hooks would appear to fire before $vbulletin->options is available
//yet if they are called on this script and then this script is included, they seem to work?!
function atdisg_get_settings()
{

    
//define globals
    
global $db$vbulletin;
    
    
$options['atdisg_featured_display_count'] = $vbulletin->options['atdisg_featured_display_count'];


    return 
$options;

...and then include this file, and call the function at the same (global_bootstrap_complete) location I am able to use the values?!

PHP Code:
//succeeds
require_once(DIR '/includes/atdisg_functions.php'); 
$atdisg_options atdisg_get_settings(); 

if (!empty(
$atdisg_options['atdisg_featured_display_count'])) {
    echo 
"<!--".$atdisg_options['atdisg_featured_display_count']."-->";

The reason I ask is that I'd like to redefine this option outside of the product (special case for one board) but because I cannot access it before it it utilized, I can't redefine it... I *could* make a setter function and include that I suppose but I'd like to have a better picture of why this is occuring before I do. It just really perplexes me that the options are in scope for the include file but not for the plugin hook that utilizes the include? Thanks.
Reply With Quote
 

Thread Tools
Display Modes

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 10:17 AM.


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.03513 seconds
  • Memory Usage 2,327KB
  • Queries Executed 13 (?)
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
  • (3)bbcode_php
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (4)post_thanks_box
  • (4)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (4)post_thanks_postbit_info
  • (4)postbit
  • (4)postbit_onlinestatus
  • (4)postbit_wrapper
  • (1)showthread_list
  • (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_threadedmode.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_threaded
  • showthread_threaded_construct_link
  • 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