diff options
Diffstat (limited to 'phpBB/includes/cron_tasks/standard/tidy_search.php')
-rw-r--r-- | phpBB/includes/cron_tasks/standard/tidy_search.php | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/phpBB/includes/cron_tasks/standard/tidy_search.php b/phpBB/includes/cron_tasks/standard/tidy_search.php new file mode 100644 index 0000000000..ac42c26689 --- /dev/null +++ b/phpBB/includes/cron_tasks/standard/tidy_search.php @@ -0,0 +1,72 @@ +<?php +/** +* +* @package phpBB3 +* @version $Id$ +* @copyright (c) 2010 phpBB Group +* @license http://opensource.org/licenses/gpl-license.php GNU Public License +* +*/ + +/** +* @ignore +*/ +if (!defined('IN_PHPBB')) +{ + exit; +} + +/** +* Tidy search cron task. +* +* Will only run when the currently selected search backend supports tidying. +* +* @package phpBB3 +*/ +class tidy_sessions_cron_task extends cron_task_base +{ + /** + * Runs this cron task. + */ + public function run() + { + global $phpbb_root_path, $phpEx, $config, $error; + + // Select the search method + $search_type = basename($config['search_type']); + + include_once("{$phpbb_root_path}includes/search/$search_type.$phpEx"); + + // We do some additional checks in the module to ensure it can actually be utilised + $error = false; + $search = new $search_type($error); + + if (!$error) + { + $search->tidy(); + } + } + + /** + * Returns whether this cron task can run, given current board configuration. + */ + public function is_runnable() + { + global $phpbb_root_path, $phpEx, $config; + + // Select the search method + $search_type = basename($config['search_type']); + + return file_exists($phpbb_root_path . 'includes/search/' . $search_type . '.' . $phpEx); + } + + /** + * Returns whether this cron task should run now, because enough time + * has passed since it was last run. + */ + public function should_run() + { + global $config; + return $config['search_last_gc'] < time() - $config['search_gc']; + } +} |