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() — отображает шаблон
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().