Name

fetch

string fetch(string template,
             string cache_id,
             string compile_id);

Функция возвращает вывод шаблона вместо его отображения на экран. Укажите верный тип ресурса шаблонов и путь. В качестве необязательного второго параметра можно передать cache id. Смотрите раздел Кэширование для получения дополнительной информации.

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

Example 13.14. fetch


<?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);

}

// перехватываем вывод
$output = $smarty->fetch("index.tpl");

// здесь выполняем какие-либо действия с $output

echo $output;
?>

    


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