function vars_cron in Variable API 6.2
Implements hook_cron().
File
- ./
vars.module, line 533 - Implement an API to handle persistent variables.
Code
function vars_cron() {
global $conf;
$modules = array();
$query = db_query("SELECT name FROM {system} WHERE type = 'module' AND schema = %d", SCHEMA_UNINSTALLED);
$variables = array();
while ($module = db_fetch_object($query)) {
$modules[] = $module->name;
cache_clear_all('module:' . $module->name, 'cache_vars');
}
$defaults = db_query("SELECT * FROM {variable_default} WHERE module IN (" . db_placeholders($modules, 'varchar') . ")", $modules);
while ($default = db_fetch_object($defaults)) {
if ($default->flags & Vars::VARS_DYNAMIC) {
$name_like = str_replace(array(
'_',
'%',
), array(
'\\_',
'\\%',
), $name) . '\\_%';
$vars = db_query("SELECT name FROM {variable} WHERE name LIKE '%s' OR name = '%s'", $name_like, $name);
while ($var = db_fetch_object($vars)) {
unset($conf[$var->name]);
$variables[] = $var->name;
}
}
else {
unset($conf[$name]);
$variables[] = $name;
}
}
if (!empty($variables)) {
db_query("DELETE FROM {variable} WHERE name IN (" . db_placeholders($variables, 'varchar') . ")", $variables);
db_query("DELETE FROM {variable_default} WHERE module IN (" . db_placeholders($modules, 'varchar') . ")", $modules);
cache_clear_all('variables', 'cache');
self::staticReset('vars_default_values');
}
}