* @version $Revision: 17580 $ */ class FlushDatabaseCacheTask extends MaintenanceTask { /** * @see MaintenanceTask::getInfo */ function getInfo() { global $gallery; $info['l10Domain'] = 'modules_core'; $info['title'] = $gallery->i18n('Delete database cache'); $info['description'] = $gallery->i18n( 'Gallery stores commonly used database information on disk for increased performance.' . ' If you modify the database directly, you should run this task to clean out the ' . 'cache and force Gallery to reload the information from the database.'); return $info; } /** * @see MaintenanceTask::run */ function run() { global $gallery; $platform =& $gallery->getPlatform(); $cacheBaseDir = $gallery->getConfig('data.gallery.cache'); list ($ret, $module) = GalleryCoreApi::loadPlugin('module', 'core'); if ($ret) { return array($ret, null, null); } $cacheDirs = array('entity', 'theme', 'module'); $success = true; foreach ($cacheDirs as $dir) { $dir = sprintf('%s%s', $cacheBaseDir, $dir); if ($platform->file_exists($dir)) { if ($platform->recursiveRmDir($dir)) { $details[] = $module->translate( array('text' => 'Successfully deleted directory: %s', 'arg1' => $dir)); } else { $success = false; $details[] = $module->translate( array('text' => 'Unable to delete directory: %s', 'arg1' => $dir)); } } } return array(null, $success, $details); } } ?>