polygris
Guest
Проблемы с кешированием в SMARTY
Зарегестрировал ресурс
Изменяю source шаблона - выводиться старое состояние.
В базе нормально аплейдится timestamp.
Прибиваю файлы кеша - все в порядке.
Настройки smarty такие:
Зарегестрировал ресурс
PHP:
// Получить темплейт
function dbt_get_template ($tpl_name, &$tpl_source, &$smarty_obj)
{
GLOBAL $db;
$sql = "SELECT * FROM static WHERE template_filename='$tpl_name'";
// Выполняем запрос
$result = $db->query($sql);
// Проверка результата выполнения запроса
if (DB::isError($db)) {
die ("SQL error: ".__FILE__.":".__LINE__.": $sql <BR> Expression: $db->getMessage()");
}
// Получаем или не получаем темплейт из БД :-)
if ($result->numRows() == 0) {
die ("Шаблон <B>$tpl_name</B> не найден в БД!");
return false;
} else {
$row = $result->fetchRow(DB_FETCHMODE_ASSOC);
$tpl_source = $row["template_source"];
return true;
}
}
function dbt_get_timestamp($tpl_name, &$tpl_timestamp, &$smarty_obj)
{
GLOBAL $db;
$sql = "SELECT UNIX_TIMESTAMP(timestamp) FROM static WHERE template_filename='$tpl_name'";
// Выполняем запрос
$result = $db->query($sql);
// Проверка результата выполнения запроса
if (DB::isError($db)) {
die ("SQL error: ".__FILE__.":".__LINE__.": $sql <BR> Expression: $db->getMessage()");
}
$row = $result->fetchRow(DB_FETCHMODE_ASSOC);
$tpl_timestamp = $row["timestamp"];
return true;
}
function dbt_get_secure($tpl_name, &$smarty_obj)
{
// Разрешаем все темплейты на обработку
return true;
}
function dbt_get_trusted($tpl_name, &$smarty_obj)
{
// Не используется для темплейтов
}
// register the resource name "db"
$smarty->register_resource("dbt", array("dbt_get_template",
"dbt_get_timestamp",
"dbt_get_secure",
"dbt_get_trusted"));
В базе нормально аплейдится timestamp.
Прибиваю файлы кеша - все в порядке.
Настройки smarty такие:
PHP:
$smarty->compile_check = true;
$smarty->debugging = false;
$smarty->caching = true;