display()

display() -- displays the template

Description

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-1. 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-2. 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().