Class: Smarty

Source Location: /bblog/libs/Smarty.class.php ( Revision Log )

Class Smarty

Class Overview

Located in /bblog/libs/Smarty.class.php [line 64]



		
		
		
		

Properties

Methods

[ Top ]
Direct descendents
Child Class Description
Smarty_Compiler Template compiling class

[ Top ]
Property Summary
array   $autoload_filters   This indicates which filters are automatically loaded into Smarty.
string   $cache_dir   The name of the directory for cache files.
null|string   $cache_handler_func   The function used for cache file handling. If not set, built-in caching is used.
integer   $cache_lifetime   This is the number of seconds cached content will persist.
boolean   $cache_modified_check   Only used when $caching is enabled. If true, then If-Modified-Since headers are respected with cached content, and appropriate HTTP headers are sent.
integer   $caching   This enables template caching.
string   $compiler_class   The class used for compiling templates.
string   $compiler_file   The file that contains the compiler class. This can a full pathname, or relative to the php_include path.
boolean   $compile_check   This tells Smarty whether to check for recompiling or not. Recompiling does not need to happen unless a template or config file is changed.
string   $compile_dir   The directory where compiled templates are located.
string   $compile_id   Set this if you want different sets of compiled files for the same templates. This is useful for things like different languages.
mixed   $config_booleanize   This tells whether or not to automatically booleanize config file variables.
string   $config_class   The class used to load config vars.
string   $config_dir   The directory where config files are located.
mixed   $config_fix_newlines   This tells whether or not automatically fix newlines in config files.
mixed   $config_overwrite   This tells if config file vars of the same name overwrite each other or not.
mixed   $config_read_hidden   This tells whether hidden sections [.foobar] are readable from the tempalates or not. Normally you would never allow this since that is the point behind hidden sections: the application can access them, but the templates cannot.
boolean   $debugging   If debugging is enabled, a debug console window will display when the page loads (make sure your browser allows unrequested popup windows)
string   $debugging_ctrl   This determines if debugging is enable-able from the browser.
string   $debug_tpl   This is the path to the debug console template. If not set, the default one will be used.
array   $default_modifiers   This is a list of the modifiers to apply to all template variables.
array   $default_resource_type   This is the resource type to be used when not specified
string   $default_template_handler_func   If a template cannot be found, this PHP function will be executed.
boolean   $error_reporting   When set, smarty does uses this value as error_reporting-level.
boolean   $force_compile   This forces templates to compile every time. Useful for development or debugging.
string   $left_delimiter   The left delimiter used for the template tags.
integer   $php_handling   This determines how Smarty handles "<?php ... ?>" tags in templates.
array   $plugins_dir   An array of directories searched for plugins.
boolean   $request_use_auto_globals   Indicates wether $HTTP_*_VARS[] (request_use_auto_globals=false)
string   $request_vars_order   The order in which request variables are registered, similar to variables_order in php.ini E = Environment, G = GET, P = POST, C = Cookies, S = Server
string   $right_delimiter   The right delimiter used for the template tags.
array   $secure_dir   This is the list of template directories that are considered secure. This is used only if $security is enabled. One directory per array element. $template_dir is in this list implicitly.
boolean   $security   This enables template security. When enabled, many things are restricted
array   $security_settings   These are the security settings for Smarty. They are used only when $security is enabled.
string   $template_dir   The name of the directory where templates are located.
array   $trusted_dir   This is an array of directories where trusted php scripts reside.
boolean   $use_sub_dirs   This tells Smarty whether or not to use sub dirs in the cache/ and templates_c/ directories. sub directories better organized, but may not work well with PHP safe mode enabled.

[ Top ]
Method Summary
Smarty   Smarty()   The class constructor.
void   append()   appends values to template variables
void   append_by_ref()   appends values to template variables by reference
void   assign()   assigns values to template variables
void   assign_by_ref()   assigns values to template variables by reference
void   clear_all_assign()   clear all the assigned template variables.
boolean   clear_all_cache()   clear the entire contents of cache (all templates)
void   clear_assign()   clear the given assigned template variable.
boolean   clear_cache()   clear cached content for the given template and cache id
boolean   clear_compiled_tpl()   clears compiled version of specified template resource, or all compiled template files if one is not specified.
void   clear_config()   clear configuration values
void   config_load()   load configuration values
void   display()   executes & displays the template results
void   fetch()   executes & returns or displays the template results
array   &get_config_vars()   Returns an array containing config variables
object   &get_registered_object()   return a reference to a registered object
array   &get_template_vars()   Returns an array containing template variables
string|false   is_cached()   test to see if valid cache exists for this template
void   load_filter()   load a filter of specified type and name
void   register_block()   Registers block function to be used in templates
void   register_compiler_function()   Registers compiler function
void   register_function()   Registers custom function to be used in templates
void   register_modifier()   Registers modifier to be used in templates
void   register_object()   Registers object to be used in templates
void   register_outputfilter()   Registers an output filter function to apply to a template output
void   register_postfilter()   Registers a postfilter function to apply to a compiled template after compilation
void   register_prefilter()   Registers a prefilter function to apply to a template before compiling
void   register_resource()   Registers a resource to fetch a template
boolean   template_exists()   Checks whether requested template exists.
void   trigger_error()   trigger Smarty error
void   unregister_block()   Unregisters block function
void   unregister_compiler_function()   Unregisters compiler function
void   unregister_function()   Unregisters custom function
void   unregister_modifier()   Unregisters modifier
void   unregister_object()   Unregisters object
void   unregister_outputfilter()   Unregisters an outputfilter function
void   unregister_postfilter()   Unregisters a postfilter function
void   unregister_prefilter()   Unregisters a prefilter function
void   unregister_resource()   Unregisters a resource
boolean   _compile_resource()   compile the template
boolean   _compile_source()   compile the given source
string   _dequote()   Remove starting and ending quotes from the string
mixed   _eval()   wrapper for eval() retaining $this
boolean   _fetch_resource_info()   fetch the template info. Gets timestamp, and source if get_source is true
string   _get_auto_filename()   get a concrete filename for automagically created content
string|null   _get_auto_id()   returns an auto_id for auto-file-functions
string   _get_compile_path()   Get the compile path for this resource
string|false   _get_plugin_filepath()   get filepath of requested plugin
mixed   _include()   wrapper for include() retaining $this
boolean   _is_compiled()   test if resource needs compiling
boolean   _parse_resource_name()   parse out the type and name from the resource
string   _process_compiled_include_callback()   callback function for preg_replace, to call a non-cacheable block
string   _read_file()   read in a file
string   _run_mod_handler()   Handle modifiers
array   &_smarty_cache_attrs()   get or set an array of cached attributes for function that is
void   _smarty_include()   called for included templates
void   _trigger_fatal_error()   trigger Smarty plugin error
void   _unlink()   unlink a file, possibly using expiration time

[ Top ]
Properties
array   $autoload_filters = array() [line 338]

This indicates which filters are automatically loaded into Smarty.

Smarty Configuration Section


[ Top ]
string   $cache_dir = 'cache' [line 167]

The name of the directory for cache files.

Smarty Configuration Section


[ Top ]
null|string   $cache_handler_func = null [line 331]

The function used for cache file handling. If not set, built-in caching is used.

Smarty Configuration Section


[ Top ]
integer   $cache_lifetime = 3600 [line 178]

This is the number of seconds cached content will persist.

Smarty Configuration Section

  • 0 = always regenerate cache
  • -1 = never expires


[ Top ]
boolean   $cache_modified_check = false [line 188]

Only used when $caching is enabled. If true, then If-Modified-Since headers are respected with cached content, and appropriate HTTP headers are sent.

Smarty Configuration Section This way repeated hits to a cached page do not send the entire page to the client every time.


[ Top ]
integer   $caching = 0 [line 160]

This enables template caching.

Smarty Configuration Section

  • 0 = no caching
  • 1 = use class cache_lifetime value
  • 2 = use cache_lifetime in cache file


[ Top ]
string   $compiler_class = 'Smarty_Compiler' [line 392]

The class used for compiling templates.


[ Top ]
string   $compiler_file = 'Smarty_Compiler.class.php' [line 385]

The file that contains the compiler class. This can a full pathname, or relative to the php_include path.


[ Top ]
boolean   $compile_check = true [line 141]

This tells Smarty whether to check for recompiling or not. Recompiling does not need to happen unless a template or config file is changed.

Smarty Configuration Section Typically you enable this during development, and disable for production.


[ Top ]
string   $compile_dir = 'templates_c' [line 82]

The directory where compiled templates are located.

Smarty Configuration Section


[ Top ]
string   $compile_id = null [line 291]

Set this if you want different sets of compiled files for the same templates. This is useful for things like different languages.

Smarty Configuration Section Instead of creating separate sets of templates per language, you set different compile_ids like 'en' and 'de'.


[ Top ]
mixed   $config_booleanize = true [line 354]

This tells whether or not to automatically booleanize config file variables.

If enabled, then the strings "on", "true", and "yes" are treated as boolean true, and "off", "false" and "no" are treated as boolean false.


[ Top ]
string   $config_class = 'Config_File' [line 399]

The class used to load config vars.


[ Top ]
string   $config_dir = 'configs' [line 89]

The directory where config files are located.

Smarty Configuration Section


[ Top ]
mixed   $config_fix_newlines = true [line 368]

This tells whether or not automatically fix newlines in config files.

It basically converts \r (mac) or \r\n (dos) to \n


[ Top ]
mixed   $config_overwrite = true [line 347]

This tells if config file vars of the same name overwrite each other or not.

if disabled, same name variables are accumulated in an array.


[ Top ]
mixed   $config_read_hidden = false [line 362]

This tells whether hidden sections [.foobar] are readable from the tempalates or not. Normally you would never allow this since that is the point behind hidden sections: the application can access them, but the templates cannot.


[ Top ]
boolean   $debugging = false [line 105]

If debugging is enabled, a debug console window will display when the page loads (make sure your browser allows unrequested popup windows)

Smarty Configuration Section


[ Top ]
string   $debugging_ctrl = 'NONE' [line 131]

This determines if debugging is enable-able from the browser.

Smarty Configuration Section

  • NONE => no debugging control allowed
  • URL => enable debugging when SMARTY_DEBUG is found in the URL.

Information Tags:
Link:  http://www.foo.dom/index.php?SMARTY_DEBUG

[ Top ]
string   $debug_tpl = '' [line 120]

This is the path to the debug console template. If not set, the default one will be used.

Smarty Configuration Section


[ Top ]
array   $default_modifiers = array() [line 310]

This is a list of the modifiers to apply to all template variables.

Smarty Configuration Section Put each modifier in a separate array element in the order you want them applied. example:

  1. array('escape:"htmlall"');


[ Top ]
array   $default_resource_type = 'file' [line 324]

This is the resource type to be used when not specified

Smarty Configuration Section at the beginning of the resource path. examples: $smarty->display('file:index.tpl'); $smarty->display('db:index.tpl'); $smarty->display('index.tpl'); // will use default resource type {include file="file:index.tpl"} {include file="db:index.tpl"} {include file="index.tpl"} {* will use default resource type *}


[ Top ]
string   $default_template_handler_func = '' [line 377]

If a template cannot be found, this PHP function will be executed.

Useful for creating templates on-the-fly or other special action.


[ Top ]
boolean   $error_reporting = null [line 112]

When set, smarty does uses this value as error_reporting-level.

Smarty Configuration Section


[ Top ]
boolean   $force_compile = false [line 149]

This forces templates to compile every time. Useful for development or debugging.

Smarty Configuration Section


[ Top ]
string   $left_delimiter = '{' [line 255]

The left delimiter used for the template tags.

Smarty Configuration Section


[ Top ]
integer   $php_handling = SMARTY_PHP_PASSTHRU [line 202]

This determines how Smarty handles "<?php ... ?>" tags in templates.

Smarty Configuration Section possible values:

  • SMARTY_PHP_PASSTHRU -> print tags as plain text
  • SMARTY_PHP_QUOTE -> escape tags as entities
  • SMARTY_PHP_REMOVE -> remove php tags
  • SMARTY_PHP_ALLOW -> execute php tags


[ Top ]
array   $plugins_dir = array('plugins') [line 96]

An array of directories searched for plugins.

Smarty Configuration Section


[ Top ]
boolean   $request_use_auto_globals = true [line 281]

Indicates wether $HTTP_*_VARS[] (request_use_auto_globals=false)

Smarty Configuration Section are uses as request-vars or $_*[]-vars. note: if request_use_auto_globals is true, then $request_vars_order has no effect, but the php-ini-value "gpc_order"


[ Top ]
string   $request_vars_order = 'EGPCS' [line 271]

The order in which request variables are registered, similar to variables_order in php.ini E = Environment, G = GET, P = POST, C = Cookies, S = Server

Smarty Configuration Section


[ Top ]
string   $right_delimiter = '}' [line 262]

The right delimiter used for the template tags.

Smarty Configuration Section


[ Top ]
array   $secure_dir = array() [line 221]

This is the list of template directories that are considered secure. This is used only if $security is enabled. One directory per array element. $template_dir is in this list implicitly.

Smarty Configuration Section


[ Top ]
boolean   $security = false [line 212]

This enables template security. When enabled, many things are restricted

Smarty Configuration Section in the templates that normally would go unchecked. This is useful when untrusted parties are editing templates and you want a reasonable level of security. (no direct execution of PHP in templates for example)


[ Top ]
array   $security_settings = array(
'PHP_HANDLING' => false,
'IF_FUNCS' => array('array', 'list',
'isset', 'empty',
'count', 'sizeof',
'in_array', 'is_array',
'true', 'false', 'null'),'INCLUDE_ANY'=>false,'PHP_TAGS'=>false,'MODIFIER_FUNCS'=>array('count'),'ALLOW_CONSTANTS'=>false)
[line 229]

These are the security settings for Smarty. They are used only when $security is enabled.

Smarty Configuration Section


[ Top ]
string   $template_dir = 'templates' [line 75]

The name of the directory where templates are located.

Smarty Configuration Section


[ Top ]
array   $trusted_dir = array() [line 248]

This is an array of directories where trusted php scripts reside.

Smarty Configuration Section $security is disabled during their inclusion/execution.


[ Top ]
boolean   $use_sub_dirs = false [line 301]

This tells Smarty whether or not to use sub dirs in the cache/ and templates_c/ directories. sub directories better organized, but may not work well with PHP safe mode enabled.

Smarty Configuration Section


[ Top ]
Methods
Constructor Smarty  [line 568]

  Smarty Smarty( )

The class constructor.



[ Top ]
append  [line 612]

  void append( array|string $tpl_var, [mixed $value = null], [mixed $merge = false]  )

appends values to template variables

Parameters:
array|string   $tpl_var:  the template variable name(s)
mixed   $value:  the value to append


[ Top ]
append_by_ref  [line 652]

  void append_by_ref( string $tpl_var, mixed &$value, [mixed $merge = false]  )

appends values to template variables by reference

Parameters:
string   $tpl_var:  the template variable name
mixed   $value:  the referenced value to append


[ Top ]
assign  [line 580]

  void assign( array|string $tpl_var, [mixed $value = null]  )

assigns values to template variables

Parameters:
array|string   $tpl_var:  the template variable name(s)
mixed   $value:  the value to assign


[ Top ]
assign_by_ref  [line 600]

  void assign_by_ref( string $tpl_var, mixed &$value  )

assigns values to template variables by reference

Parameters:
string   $tpl_var:  the template variable name
mixed   $value:  the referenced value to assign


[ Top ]
clear_all_assign  [line 1006]

  void clear_all_assign( )

clear all the assigned template variables.



[ Top ]
clear_all_cache  [line 970]

  boolean clear_all_cache( [string $exp_time = null]  )

clear the entire contents of cache (all templates)

Parameters:
string   $exp_time:  expire time

API Tags:
Return:  results of smarty_core_rm_auto()


[ Top ]
clear_assign  [line 674]

  void clear_assign( string $tpl_var  )

clear the given assigned template variable.

Parameters:
string   $tpl_var:  the template variable to clear


[ Top ]
clear_cache  [line 938]

  boolean clear_cache( [string $tpl_file = null], [string $cache_id = null], [string $compile_id = null], [string $exp_time = null]  )

clear cached content for the given template and cache id

Parameters:
string   $tpl_file:  name of template file
string   $cache_id:  name of cache_id
string   $compile_id:  name of compile_id
string   $exp_time:  expiration time


[ Top ]
clear_compiled_tpl  [line 1021]

  boolean clear_compiled_tpl( [string $tpl_file = null], [string $compile_id = null], [string $exp_time = null]  )

clears compiled version of specified template resource, or all compiled template files if one is not specified.

This function is for advanced use only, not normally needed.

Parameters:
string   $tpl_file: 
string   $compile_id: 
string   $exp_time: 

API Tags:
Return:  results of smarty_core_rm_auto()


[ Top ]
clear_config  [line 1341]

  void clear_config( [string $var = null]  )

clear configuration values

Parameters:
string   $var: 


[ Top ]
config_load  [line 1314]

  void config_load( string $file, [string $section = null], [string $scope = 'global']  )

load configuration values

Parameters:
string   $file: 
string   $section: 
string   $scope: 


[ Top ]
display  [line 1099]

  void display( string $resource_name, [string $cache_id = null], [string $compile_id = null]  )

executes & displays the template results

Parameters:
string   $resource_name: 
string   $cache_id: 
string   $compile_id: 


[ Top ]
fetch  [line 1112]

  void fetch( string $resource_name, [string $cache_id = null], [string $compile_id = null], [boolean $display = false]  )

executes & returns or displays the template results

Parameters:
string   $resource_name: 
string   $cache_id: 
string   $compile_id: 
boolean   $display: 


[ Top ]
get_config_vars  [line 1071]

  array &get_config_vars( [string $name = null], string $type  )

Returns an array containing config variables

Parameters:
string   $name: 
string   $type: 


[ Top ]
get_registered_object  [line 1326]

  object &get_registered_object( string $name  )

return a reference to a registered object

Parameters:
string   $name: 


[ Top ]
get_template_vars  [line 1054]

  array &get_template_vars( [string $name = null], string $type  )

Returns an array containing template variables

Parameters:
string   $name: 
string   $type: 


[ Top ]
is_cached  [line 984]

  string|false is_cached( string $tpl_file, [string $cache_id = null], [string $compile_id = null]  )

test to see if valid cache exists for this template

Parameters:
string   $tpl_file:  name of template file
string   $cache_id: 
string   $compile_id: 

API Tags:
Return:  results of _read_cache_file()


[ Top ]
load_filter  [line 912]

  void load_filter( string $type, string $name  )

load a filter of specified type and name

Parameters:
string   $type:  filter type
string   $name:  filter name


[ Top ]
register_block  [line 741]

  void register_block( string $block, string $block_impl, [mixed $cacheable = true], [mixed $cache_attrs = null]  )

Registers block function to be used in templates

Parameters:
string   $block:  name of template block
string   $block_impl:  PHP function to register


[ Top ]
register_compiler_function  [line 763]

  void register_compiler_function( string $function, string $function_impl, [mixed $cacheable = true]  )

Registers compiler function

Parameters:
string   $function:  name of template function
string   $function_impl:  name of PHP function to register


[ Top ]
register_function  [line 690]

  void register_function( string $function, string $function_impl, [mixed $cacheable = true], [mixed $cache_attrs = null]  )

Registers custom function to be used in templates

Parameters:
string   $function:  the name of the template function
string   $function_impl:  the name of the PHP function to register


[ Top ]
register_modifier  [line 785]

  void register_modifier( string $modifier, string $modifier_impl  )

Registers modifier to be used in templates

Parameters:
string   $modifier:  name of template modifier
string   $modifier_impl:  name of PHP function to register


[ Top ]
register_object  [line 716]

  void register_object( string $object, object &$object_impl, [null|array $allowed = array()], [boolean $smarty_args = true], [mixed $block_methods = array()], null|array $block_functs  )

Registers object to be used in templates

Parameters:
string   $object:  name of template object
object   &$object_impl:  the referenced PHP object to register
null|array   $allowed:  list of allowed methods (empty = all)
boolean   $smarty_args:  smarty argument format, else traditional
null|array   $block_functs:  list of methods that are block format


[ Top ]
register_outputfilter  [line 889]

  void register_outputfilter( string $function  )

Registers an output filter function to apply to a template output

Parameters:
string   $function:  name of PHP function


[ Top ]
register_postfilter  [line 866]

  void register_postfilter( string $function  )

Registers a postfilter function to apply to a compiled template after compilation

Parameters:
string   $function:  name of PHP function to register


[ Top ]
register_prefilter  [line 843]

  void register_prefilter( string $function  )

Registers a prefilter function to apply to a template before compiling

Parameters:
string   $function:  name of PHP function to register


[ Top ]
register_resource  [line 807]

  void register_resource( string $type, array $functions  )

Registers a resource to fetch a template

Parameters: