Name

display() — отображает шаблон

Описание

void display(string template,
             string cache_id,
             string compile_id);

Данная функция отображает шаблон, в отличие от fetch(). В качестве первого аргумента следуедует указать доступный тип и путь к ресурсу шаблона. В качестве второго необязательного аргумета, вы можете передать идентификатор кэша. См. раздел Кэширование для получения дополнительной информации.

В качестве необязательного третьего аргумента вы можете передать $compile_id. Это полезно в случае, если вы хотите скомпилировать несколько различных версий одного шаблона, например несколько версий одного шаблона на разных языках. Другое применение $compile_id можно найти, если вы используете несколько $template_dir, но только одну $compile_dir. Устанавливайте свой compile_id для каждой $template_dir, иначе шаблоны с одинаковыми именами будут сохраняться поверх друг друга. Также вы можете один раз указать $compile_id, вместо того, чтобы каждый раз передавать его при вызове этой функции.

Example 13.12. display()


<?php
include("Smarty.class.php");
$smarty = new Smarty;
$smarty->caching = true;

// выполняем запрос к БД только в том случае, если кэш не существует
if(!$smarty->is_cached("index.tpl")) {

  // немного данных для примера
  $address = "245 N 50th";
  $db_data = array(
               "City" => "Lincoln",
               "State" => "Nebraska",
               "Zip" => "68502"
             );

  $smarty->assign("Name","Fred");
  $smarty->assign("Address",$address);
  $smarty->assign($db_data);

}

// выводим результат
$smarty->display("index.tpl");
?>

   

Используйте синтаксис ресурсов шаблона для отображения файлов за пределами директории $template_dir.

Example 13.13. Пример работы функции display() с ресурсами шаблона


<?php
// абсолютный файловый путь
$smarty->display('/usr/local/include/templates/header.tpl');

// абсолютный файловый путь (тот же результат)
$smarty->display('file:/usr/local/include/templates/header.tpl');

// абсолютный файловый путь под Windows (префикс "file:" ОБЯЗАТЕЛЕН)
$smarty->display('file:C:/www/pub/templates/header.tpl');

// использование ресурса шаблона с именем "db"
$smarty->display('db:header.tpl');
?>

   

См. также fetch() и template_exists().