getForceRunFlag ())) { $this->procedure (); } } protected function procedure () { $this->purgeUploadDirectory (); $this->purgeSearches (); $this->purgeLogs (); } private function purgeSearches () { $threshold_time = date ('Y-m-d H:i:s', strtotime ('-2 weeks')); ORM::factory ('search')->where ('date_last_used <', $threshold_time)->delete_all (); } private function purgeLogs () { $ttl_log_update = (int) Setting_Model::get (Setting_Model::S_TTL_LOG_UPDATE); if ($ttl_log_update > 0) { $still_valid_time = strtotime ("-$ttl_log_update day"); foreach (new RegexIterator (new DirectoryIterator (LOGDIR), '/^(\w+) .*\.log$/') as $item) { $file_name = $item->getFilename (); if (preg_match ('/(\d{2}(?:\d{2}-){2}\d{2})_((?:\d{2}-){2}\d{2})\.log$/', $file_name, $match)) { list ($dumb, $date, $time) = $match; $time = str_replace ('-', ':', $time); $time = strtotime ("$date $time"); if ($time < $still_valid_time) { @unlink (LOGDIR . "/$file_name"); } } } } } private function purgeUploadDirectory () { $still_valid_time = strtotime ("-24 hour"); $upload_dir = DOCROOT . 'uploads'; foreach (new DirectoryIterator ($upload_dir) as $item) { if (!$item->isDot ()) { if ($item->isFile ()) { if ($item->getFilename () != '.htaccess') { if ($item->getMTime () < $still_valid_time) { $file = new File ($item->getPathname ()); $file->delete (); } } } } } } function setForceRunFlag ($force_run_flag) { $this->force_run_flag = $force_run_flag; } function getForceRunFlag () { return $this->force_run_flag; } }