Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
  #1  
Old 03-30-2007, 12:05 PM
php4ever php4ever is offline
 
Join Date: Jun 2006
Posts: 19
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Parsing Template Tags (Functions)

Is there any specific requirement for parsing vBulletin code in templates such as position above or below any of the default tags?

I've taken the code from the "navbar" template and placed it in a left column which I then took code from the bottom of the FORUMHOME in an attempt to get stats to also show up in the left column. However the following code does not parse.

After searching for many hours to find examples in this forum and the main vBulletin forum I'm dont see any solutions.

PHP Code:
$vbphrase[threads]: $totalthreads,
                
$vbphrase[posts]: $totalposts,
                
$vbphrase[members]: $numbermembers<if condition="$show['activemembers']">,
                    <
span title="<phrase 1="$vboptions[activememberdays]">$vbphrase[within_the_last_x_days]</phrase>">$vbphrase[active_members]: $activemembers</span
Any direction would be appreciated
Reply With Quote
  #2  
Old 03-30-2007, 12:24 PM
calorie calorie is offline
 
Join Date: May 2003
Posts: 2,804
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Look at the end of the main vB index.php file and note how the 'board statistics' variables are set before the two fetch_template calls for the navbar and FORUMHOME templates, i.e., the variables used in a template need to be set to their values before the template is called if you want said variables to show their values.
Reply With Quote
  #3  
Old 03-30-2007, 12:35 PM
php4ever php4ever is offline
 
Join Date: Jun 2006
Posts: 19
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ok, now a little help understanding then, I'm trying to grasp the structure methodology of vBulletin.

Am I correct in assuming that what looks like php function code in vBulletin is actually what it appears to be? template tags?

What I mean by that is many php programs use template tags such as {template_tag_here} which would parse a specific function specific to that tag. or <?php mosMainBody(); ?> as it is in Joomla for example. In WordPress its quite similar as template tags include things like
<?php get_header(); ?>
<?php get_footer(); ?>

The problem is that it tends to confuse people because it looks like PHP function calls, but in all actuality these are template tags.
Reply With Quote
  #4  
Old 03-30-2007, 01:52 PM
calorie calorie is offline
 
Join Date: May 2003
Posts: 2,804
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

PHP code doesn't get parsed in templates. The variables you see in templates, outside of the conditionals, hold values to be shown on screen. These variables need to be set before the call to the template if they are to show. Consider this example:
Code:
The PHP file:
<?php
// some vB prep here
$foobar = 5;
eval('print_output("' . fetch_template('barfoo') . '");');
?>

The template:
<!-- template barfoo -->
<html><body>
$foobar
</body></html>
<!-- /template barfoo -->

The output:
'5' is shown on screen
The <if condition=""> <else /> </if> template conditionals do allow a limited number of functions. The variables used in conditionals also need to be set before the call to the template if they are to be accurately evaluated. Consider this example:
Code:
The PHP file:
<?php
// some vB prep here
$foobar = 5;
eval('print_output("' . fetch_template('barfoo') . '");');
?>

The template:
<!-- template barfoo -->
<html><body>
<if condition="in_array($foobar, array(1,2,3,4,5))">
	$foobar is in the array
<else />
	$foobar is not in the array
</if>
</body></html>
<!-- /template barfoo -->

The output:
'5 is in the array' is shown on screen
The functions you can use in template conditionals are as follows:
Code:
PHP functions:
in_array, is_array, is_numeric, isset, empty,
defined, array

vBulletin functions:
can_moderate, can_moderate_calendar,
exec_switch_bg, is_browser, is_member_of
Plus you can add your own using the template_safe_functions hook.

More information can be found here, here, and here.
Reply With Quote
Reply

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 07:13 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.06940 seconds
  • Memory Usage 2,189KB
  • 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
  • (3)bbcode_code
  • (1)bbcode_php
  • (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)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