diff options
Diffstat (limited to 'phpBB/includes/cron')
| -rw-r--r-- | phpBB/includes/cron/manager.php | 138 | ||||
| -rw-r--r-- | phpBB/includes/cron/task/base.php | 76 | ||||
| -rw-r--r-- | phpBB/includes/cron/task/core/prune_all_forums.php | 93 | ||||
| -rw-r--r-- | phpBB/includes/cron/task/core/prune_forum.php | 163 | ||||
| -rw-r--r-- | phpBB/includes/cron/task/core/queue.php | 82 | ||||
| -rw-r--r-- | phpBB/includes/cron/task/core/tidy_cache.php | 76 | ||||
| -rw-r--r-- | phpBB/includes/cron/task/core/tidy_database.php | 70 | ||||
| -rw-r--r-- | phpBB/includes/cron/task/core/tidy_search.php | 109 | ||||
| -rw-r--r-- | phpBB/includes/cron/task/core/tidy_sessions.php | 63 | ||||
| -rw-r--r-- | phpBB/includes/cron/task/core/tidy_warnings.php | 84 | ||||
| -rw-r--r-- | phpBB/includes/cron/task/parametrized.php | 52 | ||||
| -rw-r--r-- | phpBB/includes/cron/task/task.php | 55 | ||||
| -rw-r--r-- | phpBB/includes/cron/task/wrapper.php | 108 | 
13 files changed, 0 insertions, 1169 deletions
| diff --git a/phpBB/includes/cron/manager.php b/phpBB/includes/cron/manager.php deleted file mode 100644 index 84c9650830..0000000000 --- a/phpBB/includes/cron/manager.php +++ /dev/null @@ -1,138 +0,0 @@ -<?php -/** -* -* @package phpBB3 -* @copyright (c) 2010 phpBB Group -* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ -	exit; -} - -/** -* Cron manager class. -* -* Finds installed cron tasks, stores task objects, provides task selection. -* -* @package phpBB3 -*/ -class phpbb_cron_manager -{ -	/** -	* Set of phpbb_cron_task_wrapper objects. -	* Array holding all tasks that have been found. -	* -	* @var array -	*/ -	protected $tasks = array(); - -	protected $phpbb_root_path; -	protected $php_ext; - -	/** -	* Constructor. Loads all available tasks. -	* -	* @param array|Traversable $tasks Provides an iterable set of task names -	*/ -	public function __construct($tasks, $phpbb_root_path, $php_ext) -	{ -		$this->phpbb_root_path = $phpbb_root_path; -		$this->php_ext = $php_ext; - -		$this->load_tasks($tasks); -	} - -	/** -	* Loads tasks given by name, wraps them -	* and puts them into $this->tasks. -	* -	* @param array|Traversable $tasks		Array of instances of phpbb_cron_task -	* -	* @return null -	*/ -	public function load_tasks($tasks) -	{ -		foreach ($tasks as $task) -		{ -			$this->tasks[] = $this->wrap_task($task); -		} -	} - -	/** -	* Finds a task that is ready to run. -	* -	* If several tasks are ready, any one of them could be returned. -	* -	* If no tasks are ready, null is returned. -	* -	* @return phpbb_cron_task_wrapper|null -	*/ -	public function find_one_ready_task() -	{ -		foreach ($this->tasks as $task) -		{ -			if ($task->is_ready()) -			{ -				return $task; -			} -		} -		return null; -	} - -	/** -	* Finds all tasks that are ready to run. -	* -	* @return array		List of tasks which are ready to run (wrapped in phpbb_cron_task_wrapper). -	*/ -	public function find_all_ready_tasks() -	{ -		$tasks = array(); -		foreach ($this->tasks as $task) -		{ -			if ($task->is_ready()) -			{ -				$tasks[] = $task; -			} -		} -		return $tasks; -	} - -	/** -	* Finds a task by name. -	* -	* If there is no task with the specified name, null is returned. -	* -	* Web runner uses this method to resolve names to tasks. -	* -	* @param string				$name Name of the task to look up. -	* @return phpbb_cron_task	A task corresponding to the given name, or null. -	*/ -	public function find_task($name) -	{ -		foreach ($this->tasks as $task) -		{ -			if ($task->get_name() == $name) -			{ -				return $task; -			} -		} -		return null; -	} - -	/** -	* Wraps a task inside an instance of phpbb_cron_task_wrapper. -	* -	* @param  phpbb_cron_task 			$task The task. -	* @return phpbb_cron_task_wrapper	The wrapped task. -	*/ -	public function wrap_task(phpbb_cron_task $task) -	{ -		return new phpbb_cron_task_wrapper($task, $this->phpbb_root_path, $this->php_ext); -	} -} diff --git a/phpBB/includes/cron/task/base.php b/phpBB/includes/cron/task/base.php deleted file mode 100644 index 94a2f267b4..0000000000 --- a/phpBB/includes/cron/task/base.php +++ /dev/null @@ -1,76 +0,0 @@ -<?php -/** -* -* @package phpBB3 -* @copyright (c) 2010 phpBB Group -* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ -	exit; -} - -/** -* Cron task base class. Provides sensible defaults for cron tasks -* and partially implements cron task interface, making writing cron tasks easier. -* -* At a minimum, subclasses must override the run() method. -* -* Cron tasks need not inherit from this base class. If desired, -* they may implement cron task interface directly. -* -* @package phpBB3 -*/ -abstract class phpbb_cron_task_base implements phpbb_cron_task -{ -	private $name; - -	/** -	* Returns the name of the task. -	* -	* @return string		Name of wrapped task. -	*/ -	public function get_name() -	{ -		return $this->name; -	} - -	/** -	* Sets the name of the task. -	* -	* @param string	$name The task name -	*/ -	public function set_name($name) -	{ -		$this->name = $name; -	} - -	/** -	* Returns whether this cron task can run, given current board configuration. -	* -	* For example, a cron task that prunes forums can only run when -	* forum pruning is enabled. -	* -	* @return bool -	*/ -	public function is_runnable() -	{ -		return true; -	} - -	/** -	* Returns whether this cron task should run now, because enough time -	* has passed since it was last run. -	* -	* @return bool -	*/ -	public function should_run() -	{ -		return true; -	} -} diff --git a/phpBB/includes/cron/task/core/prune_all_forums.php b/phpBB/includes/cron/task/core/prune_all_forums.php deleted file mode 100644 index 2c5d38cec0..0000000000 --- a/phpBB/includes/cron/task/core/prune_all_forums.php +++ /dev/null @@ -1,93 +0,0 @@ -<?php -/** -* -* @package phpBB3 -* @copyright (c) 2010 phpBB Group -* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ -	exit; -} - -/** -* Prune all forums cron task. -* -* It is intended to be invoked from system cron. -* This task will find all forums for which pruning is enabled, and will -* prune all forums as necessary. -* -* @package phpBB3 -*/ -class phpbb_cron_task_core_prune_all_forums extends phpbb_cron_task_base -{ -	protected $phpbb_root_path; -	protected $php_ext; -	protected $config; -	protected $db; - -	/** -	* Constructor. -	* -	* @param string $phpbb_root_path The root path -	* @param string $php_ext The PHP extension -	* @param phpbb_config $config The config -	* @param phpbb_db_driver $db The db connection -	*/ -	public function __construct($phpbb_root_path, $php_ext, phpbb_config $config, phpbb_db_driver $db) -	{ -		$this->phpbb_root_path = $phpbb_root_path; -		$this->php_ext = $php_ext; -		$this->config = $config; -		$this->db = $db; -	} - -	/** -	* Runs this cron task. -	* -	* @return null -	*/ -	public function run() -	{ -		if (!function_exists('auto_prune')) -		{ -			include($this->phpbb_root_path . 'includes/functions_admin.' . $this->php_ext); -		} - -		$sql = 'SELECT forum_id, prune_next, enable_prune, prune_days, prune_viewed, forum_flags, prune_freq -			FROM ' . FORUMS_TABLE . " -			WHERE enable_prune = 1 -				AND prune_next < " . time(); -		$result = $this->db->sql_query($sql); -		while ($row = $this->db->sql_fetchrow($result)) -		{ -			if ($row['prune_days']) -			{ -				auto_prune($row['forum_id'], 'posted', $row['forum_flags'], $row['prune_days'], $row['prune_freq']); -			} - -			if ($row['prune_viewed']) -			{ -				auto_prune($row['forum_id'], 'viewed', $row['forum_flags'], $row['prune_viewed'], $row['prune_freq']); -			} -		} -		$this->db->sql_freeresult($result); -	} - -	/** -	* Returns whether this cron task can run, given current board configuration. -	* -	* This cron task will only run when system cron is utilised. -	* -	* @return bool -	*/ -	public function is_runnable() -	{ -		return (bool) $this->config['use_system_cron']; -	} -} diff --git a/phpBB/includes/cron/task/core/prune_forum.php b/phpBB/includes/cron/task/core/prune_forum.php deleted file mode 100644 index e3c497f072..0000000000 --- a/phpBB/includes/cron/task/core/prune_forum.php +++ /dev/null @@ -1,163 +0,0 @@ -<?php -/** -* -* @package phpBB3 -* @copyright (c) 2010 phpBB Group -* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ -	exit; -} - -/** -* Prune one forum cron task. -* -* It is intended to be used when cron is invoked via web. -* This task can decide whether it should be run using data obtained by viewforum -* code, without making additional database queries. -* -* @package phpBB3 -*/ -class phpbb_cron_task_core_prune_forum extends phpbb_cron_task_base implements phpbb_cron_task_parametrized -{ -	protected $phpbb_root_path; -	protected $php_ext; -	protected $config; -	protected $db; - -	/** -	* If $forum_data is given, it is assumed to contain necessary information -	* about a single forum that is to be pruned. -	* -	* If $forum_data is not given, forum id will be retrieved via request_var -	* and a database query will be performed to load the necessary information -	* about the forum. -	*/ -	protected $forum_data; - -	/** -	* Constructor. -	* -	* @param string $phpbb_root_path The root path -	* @param string $php_ext The PHP extension -	* @param phpbb_config $config The config -	* @param phpbb_db_driver $db The db connection -	*/ -	public function __construct($phpbb_root_path, $php_ext, phpbb_config $config, phpbb_db_driver $db) -	{ -		$this->phpbb_root_path = $phpbb_root_path; -		$this->php_ext = $php_ext; -		$this->config = $config; -		$this->db = $db; -	} - -	/** -	* Manually set forum data. -	* -	* @param array $forum_data Information about a forum to be pruned. -	*/ -	public function set_forum_data($forum_data) -	{ -		$this->forum_data = $forum_data; -	} - -	/** -	* Runs this cron task. -	* -	* @return null -	*/ -	public function run() -	{ -		if (!function_exists('auto_prune')) -		{ -			include($this->phpbb_root_path . 'includes/functions_admin.' . $this->php_ext); -		} - -		if ($this->forum_data['prune_days']) -		{ -			auto_prune($this->forum_data['forum_id'], 'posted', $this->forum_data['forum_flags'], $this->forum_data['prune_days'], $this->forum_data['prune_freq']); -		} - -		if ($this->forum_data['prune_viewed']) -		{ -			auto_prune($this->forum_data['forum_id'], 'viewed', $this->forum_data['forum_flags'], $this->forum_data['prune_viewed'], $this->forum_data['prune_freq']); -		} -	} - -	/** -	* Returns whether this cron task can run, given current board configuration. -	* -	* This cron task will not run when system cron is utilised, as in -	* such cases prune_all_forums task would run instead. -	* -	* Additionally, this task must be given the forum data, either via -	* the constructor or parse_parameters method. -	* -	* @return bool -	*/ -	public function is_runnable() -	{ -		return !$this->config['use_system_cron'] && $this->forum_data; -	} - -	/** -	* Returns whether this cron task should run now, because enough time -	* has passed since it was last run. -	* -	* Forum pruning interval is specified in the forum data. -	* -	* @return bool -	*/ -	public function should_run() -	{ -		return $this->forum_data['enable_prune'] && $this->forum_data['prune_next'] < time(); -	} - -	/** -	* Returns parameters of this cron task as an array. -	* The array has one key, f, whose value is id of the forum to be pruned. -	* -	* @return array -	*/ -	public function get_parameters() -	{ -		return array('f' => $this->forum_data['forum_id']); -	} - -	/** -	* Parses parameters found in $request, which is an instance of -	* phpbb_request_interface. -	* -	* It is expected to have a key f whose value is id of the forum to be pruned. -	* -	* @param phpbb_request_interface $request Request object. -	* -	* @return null -	*/ -	public function parse_parameters(phpbb_request_interface $request) -	{ -		$this->forum_data = null; -		if ($request->is_set('f')) -		{ -			$forum_id = $request->variable('f', 0); - -			$sql = 'SELECT forum_id, prune_next, enable_prune, prune_days, prune_viewed, forum_flags, prune_freq -				FROM ' . FORUMS_TABLE . " -				WHERE forum_id = $forum_id"; -			$result = $this->db->sql_query($sql); -			$row = $this->db->sql_fetchrow($result); -			$this->db->sql_freeresult($result); - -			if ($row) -			{ -				$this->forum_data = $row; -			} -		} -	} -} diff --git a/phpBB/includes/cron/task/core/queue.php b/phpBB/includes/cron/task/core/queue.php deleted file mode 100644 index 732f9c6bea..0000000000 --- a/phpBB/includes/cron/task/core/queue.php +++ /dev/null @@ -1,82 +0,0 @@ -<?php -/** -* -* @package phpBB3 -* @copyright (c) 2010 phpBB Group -* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ -	exit; -} - -/** -* Queue cron task. Sends email and jabber messages queued by other scripts. -* -* @package phpBB3 -*/ -class phpbb_cron_task_core_queue extends phpbb_cron_task_base -{ -	protected $phpbb_root_path; -	protected $php_ext; -	protected $config; - -	/** -	* Constructor. -	* -	* @param string $phpbb_root_path The root path -	* @param string $php_ext The PHP extension -	* @param phpbb_config $config The config -	*/ -	public function __construct($phpbb_root_path, $php_ext, phpbb_config $config) -	{ -		$this->phpbb_root_path = $phpbb_root_path; -		$this->php_ext = $php_ext; -		$this->config = $config; -	} - -	/** -	* Runs this cron task. -	* -	* @return null -	*/ -	public function run() -	{ -		if (!class_exists('queue')) -		{ -			include($this->phpbb_root_path . 'includes/functions_messenger.' . $this->php_ext); -		} -		$queue = new queue(); -		$queue->process(); -	} - -	/** -	* Returns whether this cron task can run, given current board configuration. -	* -	* Queue task is only run if the email queue (file) exists. -	* -	* @return bool -	*/ -	public function is_runnable() -	{ -		return file_exists($this->phpbb_root_path . 'cache/queue.' . $this->php_ext); -	} - -	/** -	* Returns whether this cron task should run now, because enough time -	* has passed since it was last run. -	* -	* The interval between queue runs is specified in board configuration. -	* -	* @return bool -	*/ -	public function should_run() -	{ -		return $this->config['last_queue_run'] < time() - $this->config['queue_interval_config']; -	} -} diff --git a/phpBB/includes/cron/task/core/tidy_cache.php b/phpBB/includes/cron/task/core/tidy_cache.php deleted file mode 100644 index 16a45dae7c..0000000000 --- a/phpBB/includes/cron/task/core/tidy_cache.php +++ /dev/null @@ -1,76 +0,0 @@ -<?php -/** -* -* @package phpBB3 -* @copyright (c) 2010 phpBB Group -* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ -	exit; -} - -/** -* Tidy cache cron task. -* -* @package phpBB3 -*/ -class phpbb_cron_task_core_tidy_cache extends phpbb_cron_task_base -{ -	protected $config; -	protected $cache; - -	/** -	* Constructor. -	* -	* @param phpbb_config $config The config -	* @param phpbb_cache_driver_interface $cache The cache driver -	*/ -	public function __construct(phpbb_config $config, phpbb_cache_driver_interface $cache) -	{ -		$this->config = $config; -		$this->cache = $cache; -	} - -	/** -	* Runs this cron task. -	* -	* @return null -	*/ -	public function run() -	{ -		$this->cache->tidy(); -	} - -	/** -	* Returns whether this cron task can run, given current board configuration. -	* -	* Tidy cache cron task runs if the cache implementation in use -	* supports tidying. -	* -	* @return bool -	*/ -	public function is_runnable() -	{ -		return true; -	} - -	/** -	* Returns whether this cron task should run now, because enough time -	* has passed since it was last run. -	* -	* The interval between cache tidying is specified in board -	* configuration. -	* -	* @return bool -	*/ -	public function should_run() -	{ -		return $this->config['cache_last_gc'] < time() - $this->config['cache_gc']; -	} -} diff --git a/phpBB/includes/cron/task/core/tidy_database.php b/phpBB/includes/cron/task/core/tidy_database.php deleted file mode 100644 index b882e7b500..0000000000 --- a/phpBB/includes/cron/task/core/tidy_database.php +++ /dev/null @@ -1,70 +0,0 @@ -<?php -/** -* -* @package phpBB3 -* @copyright (c) 2010 phpBB Group -* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ -	exit; -} - -/** -* Tidy database cron task. -* -* @package phpBB3 -*/ -class phpbb_cron_task_core_tidy_database extends phpbb_cron_task_base -{ -	protected $phpbb_root_path; -	protected $php_ext; -	protected $config; - -	/** -	* Constructor. -	* -	* @param string $phpbb_root_path The root path -	* @param string $php_ext The PHP extension -	* @param phpbb_config $config The config -	*/ -	public function __construct($phpbb_root_path, $php_ext, phpbb_config $config) -	{ -		$this->phpbb_root_path = $phpbb_root_path; -		$this->php_ext = $php_ext; -		$this->config = $config; -	} - -	/** -	* Runs this cron task. -	* -	* @return null -	*/ -	public function run() -	{ -		if (!function_exists('tidy_database')) -		{ -			include($this->phpbb_root_path . 'includes/functions_admin.' . $this->php_ext); -		} -		tidy_database(); -	} - -	/** -	* Returns whether this cron task should run now, because enough time -	* has passed since it was last run. -	* -	* The interval between database tidying is specified in board -	* configuration. -	* -	* @return bool -	*/ -	public function should_run() -	{ -		return $this->config['database_last_gc'] < time() - $this->config['database_gc']; -	} -} diff --git a/phpBB/includes/cron/task/core/tidy_search.php b/phpBB/includes/cron/task/core/tidy_search.php deleted file mode 100644 index 3ec25aa021..0000000000 --- a/phpBB/includes/cron/task/core/tidy_search.php +++ /dev/null @@ -1,109 +0,0 @@ -<?php -/** -* -* @package phpBB3 -* @copyright (c) 2010 phpBB Group -* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ -	exit; -} - -/** -* Tidy search cron task. -* -* Will only run when the currently selected search backend supports tidying. -* -* @package phpBB3 -*/ -class phpbb_cron_task_core_tidy_search extends phpbb_cron_task_base -{ -	protected $phpbb_root_path; -	protected $php_ext; -	protected $auth; -	protected $config; -	protected $db; -	protected $user; - -	/** -	* Constructor. -	* -	* @param string $phpbb_root_path The root path -	* @param string $php_ext The PHP extension -	* @param phpbb_auth $auth The auth -	* @param phpbb_config $config The config -	* @param phpbb_db_driver $db The db connection -	* @param phpbb_user $user The user -	*/ -	public function __construct($phpbb_root_path, $php_ext, phpbb_auth $auth, phpbb_config $config, phpbb_db_driver $db, phpbb_user $user) -	{ -		$this->phpbb_root_path = $phpbb_root_path; -		$this->php_ext = $php_ext; -		$this->auth = $auth; -		$this->config = $config; -		$this->db = $db; -		$this->user = $user; -	} - -	/** -	* Runs this cron task. -	* -	* @return null -	*/ -	public function run() -	{ -		// Select the search method -		$search_type = basename($this->config['search_type']); - -		if (!class_exists($search_type)) -		{ -			include($this->phpbb_root_path . "includes/search/$search_type." . $this->php_ext); -		} - -		// We do some additional checks in the module to ensure it can actually be utilised -		$error = false; -		$search = new $search_type($error, $this->phpbb_root_path, $this->php_ext, $this->auth, $this->config, $this->db, $this->user); - -		if (!$error) -		{ -			$search->tidy(); -		} -	} - -	/** -	* Returns whether this cron task can run, given current board configuration. -	* -	* Search cron task is runnable in all normal use. It may not be -	* runnable if the search backend implementation selected in board -	* configuration does not exist. -	* -	* @return bool -	*/ -	public function is_runnable() -	{ -		// Select the search method -		$search_type = basename($this->config['search_type']); - -		return file_exists($this->phpbb_root_path . 'includes/search/' . $search_type . '.' . $this->php_ext); -	} - -	/** -	* Returns whether this cron task should run now, because enough time -	* has passed since it was last run. -	* -	* The interval between search tidying is specified in board -	* configuration. -	* -	* @return bool -	*/ -	public function should_run() -	{ -		return $this->config['search_last_gc'] < time() - $this->config['search_gc']; -	} -} diff --git a/phpBB/includes/cron/task/core/tidy_sessions.php b/phpBB/includes/cron/task/core/tidy_sessions.php deleted file mode 100644 index 95f55235c9..0000000000 --- a/phpBB/includes/cron/task/core/tidy_sessions.php +++ /dev/null @@ -1,63 +0,0 @@ -<?php -/** -* -* @package phpBB3 -* @copyright (c) 2010 phpBB Group -* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ -	exit; -} - -/** -* Tidy sessions cron task. -* -* @package phpBB3 -*/ -class phpbb_cron_task_core_tidy_sessions extends phpbb_cron_task_base -{ -	protected $config; -	protected $user; - -	/** -	* Constructor. -	* -	* @param phpbb_config $config The config -	* @param phpbb_user $user The user -	*/ -	public function __construct(phpbb_config $config, phpbb_user $user) -	{ -		$this->config = $config; -		$this->user = $user; -	} - -	/** -	* Runs this cron task. -	* -	* @return null -	*/ -	public function run() -	{ -		$this->user->session_gc(); -	} - -	/** -	* Returns whether this cron task should run now, because enough time -	* has passed since it was last run. -	* -	* The interval between session tidying is specified in board -	* configuration. -	* -	* @return bool -	*/ -	public function should_run() -	{ -		return $this->config['session_last_gc'] < time() - $this->config['session_gc']; -	} -} diff --git a/phpBB/includes/cron/task/core/tidy_warnings.php b/phpBB/includes/cron/task/core/tidy_warnings.php deleted file mode 100644 index 2a7798e56e..0000000000 --- a/phpBB/includes/cron/task/core/tidy_warnings.php +++ /dev/null @@ -1,84 +0,0 @@ -<?php -/** -* -* @package phpBB3 -* @copyright (c) 2010 phpBB Group -* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ -	exit; -} - -/** -* Tidy warnings cron task. -* -* Will only run when warnings are configured to expire. -* -* @package phpBB3 -*/ -class phpbb_cron_task_core_tidy_warnings extends phpbb_cron_task_base -{ -	protected $phpbb_root_path; -	protected $php_ext; -	protected $config; - -	/** -	* Constructor. -	* -	* @param string $phpbb_root_path The root path -	* @param string $php_ext The PHP extension -	* @param phpbb_config $config The config -	*/ -	public function __construct($phpbb_root_path, $php_ext, phpbb_config $config) -	{ -		$this->phpbb_root_path = $phpbb_root_path; -		$this->php_ext = $php_ext; -		$this->config = $config; -	} - -	/** -	* Runs this cron task. -	* -	* @return null -	*/ -	public function run() -	{ -		if (!function_exists('tidy_warnings')) -		{ -			include($this->phpbb_root_path . 'includes/functions_admin.' . $this->php_ext); -		} -		tidy_warnings(); -	} - -	/** -	* Returns whether this cron task can run, given current board configuration. -	* -	* If warnings are set to never expire, this cron task will not run. -	* -	* @return bool -	*/ -	public function is_runnable() -	{ -		return (bool) $this->config['warnings_expire_days']; -	} - -	/** -	* Returns whether this cron task should run now, because enough time -	* has passed since it was last run. -	* -	* The interval between warnings tidying is specified in board -	* configuration. -	* -	* @return bool -	*/ -	public function should_run() -	{ -		return $this->config['warnings_last_gc'] < time() - $this->config['warnings_gc']; -	} -} diff --git a/phpBB/includes/cron/task/parametrized.php b/phpBB/includes/cron/task/parametrized.php deleted file mode 100644 index 5f0e46eafc..0000000000 --- a/phpBB/includes/cron/task/parametrized.php +++ /dev/null @@ -1,52 +0,0 @@ -<?php -/** -* -* @package phpBB3 -* @copyright (c) 2010 phpBB Group -* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ -	exit; -} - -/** -* Parametrized cron task interface. -* -* Parametrized cron tasks are somewhat of a cross between regular cron tasks and -* delayed jobs. Whereas regular cron tasks perform some action globally, -* parametrized cron tasks perform actions on a particular object (or objects). -* Parametrized cron tasks do not make sense and are not usable without -* specifying these objects. -* -* @package phpBB3 -*/ -interface phpbb_cron_task_parametrized extends phpbb_cron_task -{ -	/** -	* Returns parameters of this cron task as an array. -	* -	* The array must map string keys to string values. -	* -	* @return array -	*/ -	public function get_parameters(); - -	/** -	* Parses parameters found in $request, which is an instance of -	* phpbb_request_interface. -	* -	* $request contains user input and must not be trusted. -	* Cron task must validate all data before using it. -	* -	* @param phpbb_request_interface $request Request object. -	* -	* @return null -	*/ -	public function parse_parameters(phpbb_request_interface $request); -} diff --git a/phpBB/includes/cron/task/task.php b/phpBB/includes/cron/task/task.php deleted file mode 100644 index 2d585df96d..0000000000 --- a/phpBB/includes/cron/task/task.php +++ /dev/null @@ -1,55 +0,0 @@ -<?php -/** -* -* @package phpBB3 -* @copyright (c) 2010 phpBB Group -* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ -	exit; -} - -/** -* Cron task interface -* @package phpBB3 -*/ -interface phpbb_cron_task -{ -	/** -	* Returns the name of the task. -	* -	* @return string		Name of wrapped task. -	*/ -	public function get_name(); - -	/** -	* Runs this cron task. -	* -	* @return null -	*/ -	public function run(); - -	/** -	* Returns whether this cron task can run, given current board configuration. -	* -	* For example, a cron task that prunes forums can only run when -	* forum pruning is enabled. -	* -	* @return bool -	*/ -	public function is_runnable(); - -	/** -	* Returns whether this cron task should run now, because enough time -	* has passed since it was last run. -	* -	* @return bool -	*/ -	public function should_run(); -} diff --git a/phpBB/includes/cron/task/wrapper.php b/phpBB/includes/cron/task/wrapper.php deleted file mode 100644 index 386fb5b383..0000000000 --- a/phpBB/includes/cron/task/wrapper.php +++ /dev/null @@ -1,108 +0,0 @@ -<?php -/** -* -* @package phpBB3 -* @copyright (c) 2010 phpBB Group -* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ -	exit; -} - -/** -* Cron task wrapper class. -* Enhances cron tasks with convenience methods that work identically for all tasks. -* -* @package phpBB3 -*/ -class phpbb_cron_task_wrapper -{ -	protected $task; -	protected $phpbb_root_path; -	protected $php_ext; - -	/** -	* Constructor. -	* -	* Wraps a task $task, which must implement cron_task interface. -	* -	* @param phpbb_cron_task $task The cron task to wrap. -	*/ -	public function __construct(phpbb_cron_task $task, $phpbb_root_path, $php_ext) -	{ -		$this->task = $task; -		$this->phpbb_root_path = $phpbb_root_path; -		$this->php_ext = $php_ext; -	} - -	/** -	* Returns whether the wrapped task is parametrised. -	* -	* Parametrized tasks accept parameters during initialization and must -	* normally be scheduled with parameters. -	* -	* @return bool		Whether or not this task is parametrized. -	*/ -	public function is_parametrized() -	{ -		return $this->task instanceof phpbb_cron_task_parametrized; -	} - -	/** -	* Returns whether the wrapped task is ready to run. -	* -	* A task is ready to run when it is runnable according to current configuration -	* and enough time has passed since it was last run. -	* -	* @return bool		Whether the wrapped task is ready to run. -	*/ -	public function is_ready() -	{ -		return $this->task->is_runnable() && $this->task->should_run(); -	} - -	/** -	* Returns a url through which this task may be invoked via web. -	* -	* When system cron is not in use, running a cron task is accomplished -	* by outputting an image with the url returned by this function as -	* source. -	* -	* @return string		URL through which this task may be invoked. -	*/ -	public function get_url() -	{ -		$name = $this->get_name(); -		if ($this->is_parametrized()) -		{ -			$params = $this->task->get_parameters(); -			$extra = ''; -			foreach ($params as $key => $value) -			{ -				$extra .= '&' . $key . '=' . urlencode($value); -			} -		} -		else -		{ -			$extra = ''; -		} -		$url = append_sid($this->phpbb_root_path . 'cron.' . $this->php_ext, 'cron_type=' . $name . $extra); -		return $url; -	} - -	/** -	* Forwards all other method calls to the wrapped task implementation. -	* -	* @return mixed -	*/ -	public function __call($name, $args) -	{ -		return call_user_func_array(array($this->task, $name), $args); -	} -} | 
