is_cachedboolis_cachedstringtemplatestringcache_idstringcompile_id
Este retorna true si hay un cache valido para ese template.
Esto solamente funciona si
caching está asignado a true.
is_cached
caching = true;
if(!$smarty->is_cached("index.tpl")) {
// do database calls, assign vars here
}
$smarty->display("index.tpl");
?>
]]>
Usted también puede pasar un identificador de cache como un
segundo parámetro opcional en el caso que usted quiera multiples
caches para el template dado.
Usted puede proporcionar el identidicador como un tercer parametro
opcional. Si usted omite ese parametro la persistencia del
$compile_id es usada.
Si usted no quiere pasar el identificador de cache solamente
quiere pasar el compile id debe pasar null
como el identidficador de cache.
is_cached con templates con multiple-cache
caching = true;
if(!$smarty->is_cached("index.tpl", "FrontPage")) {
// do database calls, assign vars here
}
$smarty->display("index.tpl", "FrontPage");
?>
]]>
Nota técnica
Si is_cached retorna true el carga actualmente
la salida del cache y lo guarda internamente. cualquier subsecuente
llama a display() o
fetch() y retorna este internamente
guardando la salida y no intenta volver a cargar el archivo del cache.
Esto previene una condicion de la carrera que puede ocurrir cuando un
segundo proceso limpie el cache entre las llamadas a is_cached mostradas
en el ejemplo de arriba. Esto significa tambien llamar al
clear_cache() y otros cambios
en el cache-settings que no tiene efecto despues que
is_cached retorna true.