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