function cache_clear_all in Drupal 4
Same name and namespace in other branches
- 5 includes/cache.inc \cache_clear_all()
- 6 includes/cache.inc \cache_clear_all()
- 6 includes/cache-install.inc \cache_clear_all()
- 7 includes/cache.inc \cache_clear_all()
Expire data from the cache.
Parameters
$cid: If set, the cache ID to delete. Otherwise, all cache entries that can expire are deleted.
$wildcard: If set to true, the $cid is treated as a substring to match rather than a complete ID.
31 calls to cache_clear_all()
- aggregator_refresh in modules/
aggregator.module - Checks a news feed for new items.
- block_admin_configure_submit in modules/
block.module - block_admin_display_submit in modules/
block.module - Process main block administration form submission.
- block_box_delete_confirm_submit in modules/
block.module - Deletion of custom blocks.
- comment_admin_overview_submit in modules/
comment.module - Execute the chosen 'Update option' on the selected comments, such as publishing, unpublishing or deleting.
File
- includes/
bootstrap.inc, line 395 - Functions that need to be loaded on every Drupal request.
Code
function cache_clear_all($cid = NULL, $wildcard = false) {
global $user;
if (empty($cid)) {
if (variable_get('cache_lifetime', 0)) {
// We store the time in the current user's $user->cache variable which
// will be saved into the sessions table by sess_write(). We then
// simulate that the cache was flushed for this user by not returning
// cached data that was cached before the timestamp.
$user->cache = time();
$cache_flush = variable_get('cache_flush', 0);
if ($cache_flush == 0) {
// This is the first request to clear the cache, start a timer.
variable_set('cache_flush', time());
}
else {
if (time() > $cache_flush + variable_get('cache_lifetime', 0)) {
// Clear the cache for everyone, cache_flush_delay seconds have
// passed since the first request to clear the cache.
db_query("DELETE FROM {cache} WHERE expire != %d AND expire < %d", CACHE_PERMANENT, time());
variable_set('cache_flush', 0);
}
}
}
else {
// No minimum cache lifetime, flush all temporary cache entries now.
db_query("DELETE FROM {cache} WHERE expire != %d AND expire < %d", CACHE_PERMANENT, time());
}
}
else {
if ($wildcard) {
db_query("DELETE FROM {cache} WHERE cid LIKE '%%%s%%'", $cid);
}
else {
db_query("DELETE FROM {cache} WHERE cid = '%s'", $cid);
}
}
}