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 06-28-2014, 02:42 PM
Twilkey's Avatar
Twilkey Twilkey is offline
 
Join Date: Oct 2006
Posts: 314
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Issue pre-registering variable for header

I have created a product and in that product everything works right. The only issue I am having is pre-registering a variable for my header template.

PHP Code:
include("./includes/class_twbr.php");

$defaultdir str_replace("."""$vbulletin->options['twbr_default_dir']);
$rotaterid 1;
$forumid $foruminfo[forumid];
$show_banners false;

if(
$forumid 0) {
    
$twbr = new TWBR($vbulletin);
    
$twbr->twbr_set($defaultdir$rotaterid$forumid);
    
$twbr->twbr_forum_query();
    
$banner_query $twbr->twbr_banner_query();
    
    
$rotater_query $twbr->twbr_rotater_query();
    
$rotater $vbulletin->db->fetch_array($rotater_query);
    
$rotater_delay 1000 $rotater['delay'];
    
$rotater_bits = array("id" => $rotater['id'], "title" => $rotater['title'], "width" => $rotater['width'], "height" => $rotater['height'], "bgcolor" => $rotater['bgcolor'], "delay" => $rotater_delay);
    
    
$banner_bits = array();
    
$banner_count 0;
    while(
$banners $vbulletin->db->fetch_array($banner_query)) {
        
$banner_bits[$banner_count]["count"] = $banner_count;
        
$banner_bits[$banner_count]["id"] = $banners["id"];
        
$banner_bits[$banner_count]["name"] = $banners["name"];
        
$banner_bits[$banner_count]["imageurl"] = $vbulletin->options['bburl'].urldecode($banners["imageurl"]);
        
$banner_bits[$banner_count]["link"] = urldecode($banners["link"]);
        
$banner_bits[$banner_count]["desc"] = $banners["desc"];
        
$banner_count++;
        
$show_banners true;
    }
    
    
$templater vB_Template::create('twbr_bits');
    
$templater->register('banner_bits'$banner_bits);
    
$templater->register('rotater_bits'$rotater_bits);
    
$twbr_bits $templater->render();
    
    
vB_Template::preRegister('header',array('twbr_bits' => $twbr_bits));

Everything here works except the vB_Template:reRegister. The variable does get populated. I can see the data if I dump it.

I have tried many different plugin hook locations. I have tried the globals, the forumdisplays, I also tried parse_templates, but nothing seems to work, and it seems to just be with pre-registering for header, because I changed it to navbar and it worked, so I am a bit confused.
Reply With Quote
  #2  
Old 06-28-2014, 02:47 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Try using hook parse_templates, and make sure you have a "global" declaration for any global variables you use.
Reply With Quote
  #3  
Old 06-28-2014, 04:13 PM
Twilkey's Avatar
Twilkey Twilkey is offline
 
Join Date: Oct 2006
Posts: 314
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by kh99 View Post
Try using hook parse_templates, and make sure you have a "global" declaration for any global variables you use.
As I said before, I tried parse_templates. As for globals, what globals are you talking about? The only thing in that code that doesnt work is the preRegister to the header.
Reply With Quote
  #4  
Old 06-28-2014, 05:53 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Twilkey View Post
As I said before, I tried parse_templates. As for globals, what globals are you talking about? The only thing in that code that doesnt work is the preRegister to the header.
OK, all I can tell you is that parse_templates should work as the hook (in fact, I don't think there's any other hook that is guaranteed to work in every situation). Did you dump $twbr_bits right before the preRegister call while using hook parse_templates?

ETA: also, did you double check to make sure you spelled twbr_bits right in the template? I know these seem obvious, but if you're sure the variable is being set then I don't see any reason it shouldn't work.

Anyway, maybe someone else will have an idea.
Reply With Quote
  #5  
Old 06-28-2014, 11:44 PM
Twilkey's Avatar
Twilkey Twilkey is offline
 
Join Date: Oct 2006
Posts: 314
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks for your help, It seems you were right, I needed to global $foruminfo. I think the problem was that when I dumped it was in the forumdisplay hooks, so I didnt need to global the variable, but when I changed to parse_templates, I needed to.

Again, thank you.
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 07:41 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.06276 seconds
  • Memory Usage 2,225KB
  • 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
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)bbcode_php
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (5)post_thanks_box
  • (5)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (5)post_thanks_postbit_info
  • (5)postbit
  • (5)postbit_onlinestatus
  • (5)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_postinfo_query
  • fetch_postinfo
  • 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