display() — displays the template
void display(string template,
string cache_id,
string compile_id);
This displays the contents of a template. To return the contents of a template into
a variable, use 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. You can
also set the
$compile_id variable once instead of passing
this to each call to this function.
Example 14.19. display()
<?php
include(SMARTY_DIR.'Smarty.class.php');
$smarty = new Smarty();
$smarty->setCaching(true);
// only do db calls if cache doesn't exist
if(!$smarty->isCached('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 14.20. 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
templateExists().