PhpRiot
Become Zend Certified

Prepare for the ZCE exam using our quizzes (web or iPad/iPhone). More info...


When you're ready get 7.5% off your exam voucher using voucher CJQNOV23 at the Zend Store

Smarty - the compiling PHP template engine

Monte Ohrt <monte at ohrt dot com>

Uwe Tews <uwe dot tews at googlemail dot com>

2012-07-09


Table of Contents

Preface
Getting Started
What is Smarty?
Installation
Requirements
Basic Installation
Extended Setup
Smarty For Template Designers
Basic Syntax
Comments
Variables
Functions
Attributes
Embedding Vars in Double Quotes
Math
Escaping Smarty Parsing
Variables
Variables assigned from PHP
Variable scopes
Variables loaded from config files
{$smarty} reserved variable
Variable Modifiers
capitalize
cat
count_characters
count_paragraphs
count_sentences
count_words
date_format
default
escape
from_charset
indent
lower
nl2br
regex_replace
replace
spacify
string_format
strip
strip_tags
to_charset
truncate
unescape
upper
wordwrap
Combining Modifiers
Built-in Functions
{$var=...}
{append}
{assign}
{block}
{call}
{capture}
{config_load}
{debug}
{extends}
{for}
{foreach},{foreachelse}
{function}
{if},{elseif},{else}
{include}
{include_php}
{insert}
{ldelim},{rdelim}
{literal}
{nocache}
{php}
{section},{sectionelse}
{setfilter}
{strip}
{while}
Custom Functions
{counter}
{cycle}
{eval}
{fetch}
{html_checkboxes}
{html_image}
{html_options}
{html_radios}
{html_select_date}
{html_select_time}
{html_table}
{mailto}
{math}
{textformat}
Config Files
Debugging Console
Smarty For Programmers
Charset Encoding
Charset Encoding
Constants
SMARTY_DIR
Smarty Class Variables
$allow_php_templates
$auto_literal
$autoload_filters
$cache_dir
$cache_id
$cache_lifetime
$cache_locking
$cache_modified_check
$caching
$caching_type
$compile_check
$compile_dir
$compile_id
$compile_locking
$compiler_class
$config_booleanize
$config_dir
$config_overwrite
$config_read_hidden
$debug_tpl
$debugging
$debugging_ctrl
$default_config_type
$default_modifiers
$default_resource_type
$default_config_handler_func
$default_template_handler_func
$direct_access_security
$error_reporting
$escape_html
$force_cache
$force_compile
$left_delimiter
$locking_timeout
$merge_compiled_includes
$php_handling
$plugins_dir
$right_delimiter
$smarty_debug_id
$template_dir
$trusted_dir
$use_include_path
$use_sub_dirs
Smarty Class Methods
addConfigDir() — add a directory to the list of directories where config files are stored
addPluginsDir() — add a directory to the list of directories where plugins are stored
addTemplateDir() — add a directory to the list of directories where templates are stored
append() — append an element to an assigned array
appendByRef() — append values by reference
assign() — assign variables/objects to the templates
assignByRef() — assign values by reference
clearAllAssign() — clears the values of all assigned variables
clearAllCache() — clears the entire template cache
clearAssign() — clears the value of an assigned variable
clearCache() — clears the cache for a specific template
clearCompiledTemplate() — clears the compiled version of the specified template resource
clearConfig() — clears assigned config variables
compileAllConfig() — compiles all known config files
compileAllTemplates() — compiles all known templates
configLoad() — loads config file data and assigns it to the template
createData() — creates a data object
createTemplate() — returns a template object
disableSecurity() — disables template security
display() — displays the template
enableSecurity() — enables template security
fetch() — returns the template output
getCacheDir() — return the directory where the rendered template's output is stored
getCompileDir() — returns the directory where compiled templates are stored
getConfigDir() — return the directory where config files are stored
getConfigVars() — returns the given loaded config variable value
getPluginsDir() — return the directory where plugins are stored
getRegisteredObject() — returns a reference to a registered object
getTags() — return tags used by template
getTemplateDir() — return the directory where templates are stored
getTemplateVars() — returns assigned variable value(s)
isCached() — returns true if there is a valid cache for this template
loadFilter() — load a filter plugin
Smarty::muteExpectedErrors() — mutes expected warnings and notices deliberately generated by Smarty
registerCacheResource() — dynamically register CacheResources
registerClass() — register a class for use in the templates
registerDefaultPluginHandler() — register a function which gets called on undefined tags
registerFilter() — dynamically register filters
registerPlugin() — dynamically register plugins
registerObject() — register an object for use in the templates
registerResource() — dynamically register resources
setCacheDir() — set the directory where the rendered template's output is stored
setCompileDir() — set the directory where compiled templates are stored
setConfigDir() — set the directories where config files are stored
setPluginsDir() — set the directories where plugins are stored
setTemplateDir() — set the directories where templates are stored
templateExists() — checks whether the specified template exists
unregisterCacheResource() — dynamically unregister a CacheResource plugin
unregisterFilter() — dynamically unregister a filter
unregisterPlugin — dynamically unregister plugins
unregisterObject() — dynamically unregister an object
unregisterResource() — dynamically unregister a resource plugin
testInstall() — checks Smarty installation
Caching
Setting Up Caching
Multiple Caches Per Page
Cache Groups
Controlling Cacheability of Output
Custom Cache Implementation
Resources
File Template Resources
String Template Resources
Stream Template Resources
Extends Template Resources
Custom Template Resources
Advanced Features
Security
Changing settings by template
Template Inheritance
Streams
Objects
Static Classes
Prefilters
Postfilters
Output Filters
Extending Smarty With Plugins
How Plugins Work
Naming Conventions
Writing Plugins
Template Functions
Modifiers
Block Functions
Compiler Functions
Prefilters/Postfilters
Output Filters
Resources
Inserts
SmartyBC - Backwards Compatibility Wrapper
SmartyBC class
Appendixes
Troubleshooting
Smarty/PHP errors
Tips & Tricks
Blank Variable Handling
Default Variable Handling
Passing variable title to header template
Dates
WAP/WML
Componentized Templates
Obfuscating E-mail Addresses
Resources
BUGS

Smarty Template Engine