What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
display() — displays the template
void display(string template,
string cache_id,
string compile_id);
This displays the template unlike
fetch()
.
Supply a valid template resource
type and path. As an optional second parameter, you can pass a
$cache id
, see the
caching section for more information.
As an optional third parameter, you can pass a
$compile_id
.
This is in the event that you want to compile different versions of
the same template, such as having separate templates compiled
for different languages. Another use for
$compile_id
is when you use more than one
$template_dir
but only one
$compile_dir
.
Set a separate $compile_id
for each
$template_dir
,
otherwise templates of the same name will overwrite each other. You can
also set the
$compile_id
variable once instead of passing
this to each call to this function.
Example 13.12. display()
<?php include(SMARTY_DIR.'Smarty.class.php'); $smarty = new Smarty(); $smarty->caching = true; // only do db calls if cache doesn't exist if(!$smarty->is_cached('index.tpl')) { // dummy up some data $address = '245 N 50th'; $db_data = array( 'City' => 'Lincoln', 'State' => 'Nebraska', 'Zip' => '68502' ); $smarty->assign('Name', 'Fred'); $smarty->assign('Address', $address); $smarty->assign('data', $db_data); } // display the output $smarty->display('index.tpl'); ?>
Example 13.13. Other display() template resource examples
Use the syntax for template resources to
display files outside of the
$template_dir
directory.
<?php // absolute filepath $smarty->display('/usr/local/include/templates/header.tpl'); // absolute filepath (same thing) $smarty->display('file:/usr/local/include/templates/header.tpl'); // windows absolute filepath (MUST use "file:" prefix) $smarty->display('file:C:/www/pub/templates/header.tpl'); // include from template resource named "db" $smarty->display('db:header.tpl'); ?>
See also fetch()
and
template_exists()
.