View Single Post
  #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
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01148 seconds
  • Memory Usage 1,768KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (3)bbcode_code
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.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
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • 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
  • showpost_complete