Например у наст есть тип материала «профиль» (не важно, сами мы его сделали с помощью CCK или использовали модуль Content profile) и в профиле есть какое-то поле, которое мы изменяем программно, с помощью модуля. Результат нашего изменения мы не увидим, пока не очистим кэш. Согласитесь, не очень удобно.
Для того чтобы видеть изменения моментально, мы будем очищать кэш при каждом изменении значения поля профиля. Я не буду пользоваться стандартным API, поскольку он может очистить больше, чем нам нужно, а при большом объеме данных это отрицательно скажется на производительности.
Мы же удалим из кэша только тот профиль, который изменили. Поскольку наш профиль — простая нода, то ее хэш хранится в таблице cache_content. Ноду можно идентифицировать по полю cid, которое имеет следующий формат: [content:nid:vid]. Для этого сделаем специальную функцию:
function mymodule_clear_cache_node($nid)
{
return db_query("DELETE FROM {cache_content} WHERE cid LIKE 'content:%d:%%'", $nid);
}
Комментариев нет:
Отправить комментарий