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 12-23-2011, 01:16 AM
L1teHawk L1teHawk is offline
 
Join Date: Apr 2011
Posts: 5
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default How to pass a variable to template?

Hi everyone,

I'm trying to pass a variable to the template "memberaction_dropdown". I created a new plugin with a hook to postbit_display_start (isn't that where the template is rendered?) with the following code:

PHP Code:
global $vbulletin;
$memname $vbulletin->db->query_first("SELECT * FROM " TABLE_PREFIX "mainapptable WHERE userid = '" $vbulletin->userinfo['userid'] . "'");
vB_Template::preRegister('memberaction_dropdown',array('memname' => $memname)); 
Then in my template, I did this:
{vb:raw memname.appname}

It does not work. Then I checked to see if $memname was set using a vb "if" conditional statement and it's not set. Can someone help me by pointing me in the right direction? Thank you very much!
Reply With Quote
  #2  
Old 12-23-2011, 01:44 AM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You need to either add a "global $vbulletin;" line to the start of your code, or else use $this->registry->db instead. Also, if you want the database row you're reading to be for the user who wrote the post, you want to use $post['userid'] instead of $vbulletin->userinfo['userid'].
Reply With Quote
  #3  
Old 12-23-2011, 02:36 AM
L1teHawk L1teHawk is offline
 
Join Date: Apr 2011
Posts: 5
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Wow, thanks for the lightning fast response!

Ok, I did this:

PHP Code:
// global at the top
global $vbulletin;

// now I can use $vbulletin
$memname $vbulletin->db->query_first("SELECT * FROM "
                 
TABLE_PREFIX "mainapptable WHERE userid = '"
                  
$post['userinfo']['userid'] . "'"); 

// register the variable
vB_Template::preRegister('memberaction_dropdown',
                                          array(
'memname' => $memname)); 
And in my template:
<vb:if condition="$memname['app']">Found app!</vb:if>

Which doesn't work. I also tried {vb:raw memname.app} which didn't work either. Why is it so hard to pass data to a template

Edit: postbit_display_start is the correct hook right?
Reply With Quote
  #4  
Old 12-23-2011, 11:06 AM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Oh, sorry about that - it should be $post['userid'] (I fixed it above, for future reference).
Reply With Quote
  #5  
Old 12-23-2011, 01:42 PM
L1teHawk L1teHawk is offline
 
Join Date: Apr 2011
Posts: 5
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Great! It works, thank you very much for your help. Enjoy a great holiday season

Edit: What would be the correct hook for forumhome_lastpostby? Thanks. I tried forumhome_start, forumdisplay_start, and several others :|

Edit 2: Figured it out. There is no correct hook for forumhome_lastpostby, so for those of you scouring the web for it, here's what I did: Search for the text "forumhome_lastpostby" and you'll come across a PHP file with some $templater registering the template. Above that code, put the custom hook, and then you'll be able to pass a variable to forumhome_lastpostby. Hope that helps someone
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 09:59 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.03845 seconds
  • Memory Usage 2,205KB
  • 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
  • (2)bbcode_php
  • (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_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