uawdijnntqw1x1x1
IP : 216.73.216.23
Hostname : web17.us.cloudlogin.co
Kernel : Linux web17.us.cloudlogin.co 5.10.238-xeon-hst #1 SMP Thu Jun 5 12:15:42 UTC 2025 x86_64
Disable Function : None :)
OS : Linux
PATH:
/
home
/
www
/
hallgroupsolutions.com
/
e61a0
/
..
/
3567e
/
..
/
c9428
/
cron.tar
/
/
manager.php000077700000005703151514577600006716 0ustar00<?php /** * * This file is part of the phpBB Forum Software package. * * @copyright (c) phpBB Limited <https://www.phpbb.com> * @license GNU General Public License, version 2 (GPL-2.0) * * For full copyright and license information, please see * the docs/CREDITS.txt file. * */ namespace phpbb\cron; /** * Cron manager class. * * Finds installed cron tasks, stores task objects, provides task selection. */ class 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 * @param string $phpbb_root_path Relative path to phpBB root * @param string $php_ext PHP file extension */ 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\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() { shuffle($this->tasks); 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\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; } /** * Find all tasks and return them. * * @return array List of all tasks. */ public function get_tasks() { return $this->tasks; } /** * Wraps a task inside an instance of \phpbb\cron\task\wrapper. * * @param \phpbb\cron\task\task $task The task. * @return \phpbb\cron\task\wrapper The wrapped task. */ public function wrap_task(\phpbb\cron\task\task $task) { return new \phpbb\cron\task\wrapper($task, $this->phpbb_root_path, $this->php_ext); } } task/parametrized.php000077700000002431151514577600010730 0ustar00<?php /** * * This file is part of the phpBB Forum Software package. * * @copyright (c) phpBB Limited <https://www.phpbb.com> * @license GNU General Public License, version 2 (GPL-2.0) * * For full copyright and license information, please see * the docs/CREDITS.txt file. * */ namespace phpbb\cron\task; /** * 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. */ interface parametrized extends \phpbb\cron\task\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\request_interface. * * $request contains user input and must not be trusted. * Cron task must validate all data before using it. * * @param \phpbb\request\request_interface $request Request object. * * @return null */ public function parse_parameters(\phpbb\request\request_interface $request); } task/task.php000077700000001666151514577600007214 0ustar00<?php /** * * This file is part of the phpBB Forum Software package. * * @copyright (c) phpBB Limited <https://www.phpbb.com> * @license GNU General Public License, version 2 (GPL-2.0) * * For full copyright and license information, please see * the docs/CREDITS.txt file. * */ namespace phpbb\cron\task; /** * Cron task interface */ interface 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(); } task/wrapper.php000077700000005040151514577600007720 0ustar00<?php /** * * This file is part of the phpBB Forum Software package. * * @copyright (c) phpBB Limited <https://www.phpbb.com> * @license GNU General Public License, version 2 (GPL-2.0) * * For full copyright and license information, please see * the docs/CREDITS.txt file. * */ namespace phpbb\cron\task; /** * Cron task wrapper class. * Enhances cron tasks with convenience methods that work identically for all tasks. */ class 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 $task The cron task to wrap. * @param string $phpbb_root_path Relative path to phpBB root * @param string $php_ext PHP file extension */ public function __construct(\phpbb\cron\task\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); } } task/base.php000077700000002641151514577600007156 0ustar00<?php /** * * This file is part of the phpBB Forum Software package. * * @copyright (c) phpBB Limited <https://www.phpbb.com> * @license GNU General Public License, version 2 (GPL-2.0) * * For full copyright and license information, please see * the docs/CREDITS.txt file. * */ namespace phpbb\cron\task; /** * 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. */ abstract class base implements \phpbb\cron\task\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; } } task/core/prune_notifications.php000077700000002525151514577600013257 0ustar00<?php /** * * This file is part of the phpBB Forum Software package. * * @copyright (c) phpBB Limited <https://www.phpbb.com> * @license GNU General Public License, version 2 (GPL-2.0) * * For full copyright and license information, please see * the docs/CREDITS.txt file. * */ namespace phpbb\cron\task\core; /** * Prune notifications cron task. */ class prune_notifications extends \phpbb\cron\task\base { protected $config; protected $notification_manager; /** * Constructor. * * @param \phpbb\config\config $config The config * @param \phpbb\notification\manager $notification_manager Notification manager */ public function __construct(\phpbb\config\config $config, \phpbb\notification\manager $notification_manager) { $this->config = $config; $this->notification_manager = $notification_manager; } /** * {@inheritdoc} */ public function run() { // time minus expire days in seconds $timestamp = time() - ($this->config['read_notification_expire_days'] * 60 * 60 * 24); $this->notification_manager->prune_notifications($timestamp); } /** * {@inheritdoc} */ public function is_runnable() { return (bool) $this->config['read_notification_expire_days']; } /** * {@inheritdoc} */ public function should_run() { return $this->config['read_notification_last_gc'] < time() - $this->config['read_notification_gc']; } } task/core/tidy_sessions.php000077700000002160151514577600012067 0ustar00<?php /** * * This file is part of the phpBB Forum Software package. * * @copyright (c) phpBB Limited <https://www.phpbb.com> * @license GNU General Public License, version 2 (GPL-2.0) * * For full copyright and license information, please see * the docs/CREDITS.txt file. * */ namespace phpbb\cron\task\core; /** * Tidy sessions cron task. */ class tidy_sessions extends \phpbb\cron\task\base { protected $config; protected $user; /** * Constructor. * * @param \phpbb\config\config $config The config * @param \phpbb\user $user The user */ public function __construct(\phpbb\config\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']; } } task/core/queue.php000077700000003325151514577600010320 0ustar00<?php /** * * This file is part of the phpBB Forum Software package. * * @copyright (c) phpBB Limited <https://www.phpbb.com> * @license GNU General Public License, version 2 (GPL-2.0) * * For full copyright and license information, please see * the docs/CREDITS.txt file. * */ namespace phpbb\cron\task\core; /** * Queue cron task. Sends email and jabber messages queued by other scripts. */ class 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 PHP file extension * @param \phpbb\config\config $config The config */ public function __construct($phpbb_root_path, $php_ext, \phpbb\config\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']; } } task/core/tidy_search.php000077700000004476151514577600011502 0ustar00<?php /** * * This file is part of the phpBB Forum Software package. * * @copyright (c) phpBB Limited <https://www.phpbb.com> * @license GNU General Public License, version 2 (GPL-2.0) * * For full copyright and license information, please see * the docs/CREDITS.txt file. * */ namespace phpbb\cron\task\core; /** * Tidy search cron task. * * Will only run when the currently selected search backend supports tidying. */ class 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 file extension * @param \phpbb\auth\auth $auth The auth * @param \phpbb\config\config $config The config * @param \phpbb\db\driver\driver_interface $db The db connection * @param \phpbb\user $user The user */ public function __construct($phpbb_root_path, $php_ext, \phpbb\auth\auth $auth, \phpbb\config\config $config, \phpbb\db\driver\driver_interface $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() { $search_type = $this->config['search_type']; // 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() { return class_exists($this->config['search_type']); } /** * 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']; } } task/core/prune_shadow_topics.php000077700000012676151514577600013264 0ustar00<?php /** * * This file is part of the phpBB Forum Software package. * * @copyright (c) phpBB Limited <https://www.phpbb.com> * @license GNU General Public License, version 2 (GPL-2.0) * * For full copyright and license information, please see * the docs/CREDITS.txt file. * */ namespace phpbb\cron\task\core; /** * Prune one forum of its shadow topics 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. */ class prune_shadow_topics extends \phpbb\cron\task\base implements \phpbb\cron\task\parametrized { protected $phpbb_root_path; protected $php_ext; protected $config; protected $db; protected $log; protected $user; /** * 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 PHP file extension * @param \phpbb\config\config $config The config * @param \phpbb\db\driver\driver_interface $db The db connection * @param \phpbb\log\log $log The phpBB log system * @param \phpbb\user $user The phpBB user object */ public function __construct($phpbb_root_path, $php_ext, \phpbb\config\config $config, \phpbb\db\driver\driver_interface $db, \phpbb\log\log $log, \phpbb\user $user) { $this->phpbb_root_path = $phpbb_root_path; $this->php_ext = $php_ext; $this->config = $config; $this->db = $db; $this->log = $log; $this->user = $user; } /** * 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_shadow_days']) { $this->auto_prune_shadow_topics($this->forum_data['forum_id'], 'shadow', $this->forum_data['forum_flags'], $this->forum_data['prune_shadow_days'], $this->forum_data['prune_shadow_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_shadow_prune'] && $this->forum_data['prune_shadow_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\request_interface. * * It is expected to have a key f whose value is id of the forum to be pruned. * * @param \phpbb\request\request_interface $request Request object. * * @return null */ public function parse_parameters(\phpbb\request\request_interface $request) { $this->forum_data = null; if ($request->is_set('f')) { $forum_id = $request->variable('f', 0); $sql = 'SELECT forum_id, prune_shadow_next, enable_shadow_prune, prune_shadow_days, forum_flags, prune_shadow_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; } } } /** * Automatically prune shadow topics * Based on fuunction auto_prune() * @param int $forum_id Forum ID of forum that should be pruned * @param string $prune_mode Prune mode * @param int $prune_flags Prune flags * @param int $prune_days Prune date in days * @param int $prune_freq Prune frequency * @return null */ protected function auto_prune_shadow_topics($forum_id, $prune_mode, $prune_flags, $prune_days, $prune_freq) { $sql = 'SELECT forum_name FROM ' . FORUMS_TABLE . " WHERE forum_id = $forum_id"; $result = $this->db->sql_query($sql, 3600); $row = $this->db->sql_fetchrow($result); $this->db->sql_freeresult($result); if ($row) { $prune_date = time() - ($prune_days * 86400); $next_prune = time() + ($prune_freq * 86400); prune($forum_id, $prune_mode, $prune_date, $prune_flags, true); $sql = 'UPDATE ' . FORUMS_TABLE . " SET prune_shadow_next = $next_prune WHERE forum_id = $forum_id"; $this->db->sql_query($sql); $user_id = (empty($this->user->data)) ? ANONYMOUS : $this->user->data['user_id']; $user_ip = (empty($this->user->ip)) ? '' : $this->user->ip; $this->log->add('admin', $user_id, $user_ip, 'LOG_PRUNE_SHADOW', false, array($row['forum_name'])); } return; } } task/core/prune_forum.php000077700000010151151514577600011530 0ustar00<?php /** * * This file is part of the phpBB Forum Software package. * * @copyright (c) phpBB Limited <https://www.phpbb.com> * @license GNU General Public License, version 2 (GPL-2.0) * * For full copyright and license information, please see * the docs/CREDITS.txt file. * */ namespace phpbb\cron\task\core; /** * 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. */ class 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 PHP file extension * @param \phpbb\config\config $config The config * @param \phpbb\db\driver\driver_interface $db The db connection */ public function __construct($phpbb_root_path, $php_ext, \phpbb\config\config $config, \phpbb\db\driver\driver_interface $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\request_interface. * * It is expected to have a key f whose value is id of the forum to be pruned. * * @param \phpbb\request\request_interface $request Request object. * * @return null */ public function parse_parameters(\phpbb\request\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; } } } } task/core/tidy_plupload.php000077700000004514151514577600012046 0ustar00<?php /** * * This file is part of the phpBB Forum Software package. * * @copyright (c) phpBB Limited <https://www.phpbb.com> * @license GNU General Public License, version 2 (GPL-2.0) * * For full copyright and license information, please see * the docs/CREDITS.txt file. * */ namespace phpbb\cron\task\core; /** * Cron task for cleaning plupload's temporary upload directory. */ class tidy_plupload extends \phpbb\cron\task\base { /** * How old a file must be (in seconds) before it is deleted. * @var int */ protected $max_file_age = 86400; /** * How often we run the cron (in seconds). * @var int */ protected $cron_frequency = 86400; /** * phpBB root path * @var string */ protected $phpbb_root_path; /** * Config object * @var \phpbb\config\config */ protected $config; /** * Directory where plupload stores temporary files. * @var string */ protected $plupload_upload_path; /** * Constructor. * * @param string $phpbb_root_path The root path * @param \phpbb\config\config $config The config */ public function __construct($phpbb_root_path, \phpbb\config\config $config) { $this->phpbb_root_path = $phpbb_root_path; $this->config = $config; $this->plupload_upload_path = $this->phpbb_root_path . $this->config['upload_path'] . '/plupload'; } /** * {@inheritDoc} */ public function run() { // Remove old temporary file (perhaps failed uploads?) $last_valid_timestamp = time() - $this->max_file_age; try { $iterator = new \DirectoryIterator($this->plupload_upload_path); foreach ($iterator as $file) { if (strpos($file->getBasename(), $this->config['plupload_salt']) !== 0) { // Skip over any non-plupload files. continue; } if ($file->getMTime() < $last_valid_timestamp) { @unlink($file->getPathname()); } } } catch (\UnexpectedValueException $e) { add_log( 'critical', 'LOG_PLUPLOAD_TIDY_FAILED', $this->plupload_upload_path, $e->getMessage(), $e->getTraceAsString() ); } $this->config->set('plupload_last_gc', time(), true); } /** * {@inheritDoc} */ public function is_runnable() { return !empty($this->config['plupload_salt']) && is_dir($this->plupload_upload_path); } /** * {@inheritDoc} */ public function should_run() { return $this->config['plupload_last_gc'] < time() - $this->cron_frequency; } } task/core/tidy_warnings.php000077700000003312151514577600012051 0ustar00<?php /** * * This file is part of the phpBB Forum Software package. * * @copyright (c) phpBB Limited <https://www.phpbb.com> * @license GNU General Public License, version 2 (GPL-2.0) * * For full copyright and license information, please see * the docs/CREDITS.txt file. * */ namespace phpbb\cron\task\core; /** * Tidy warnings cron task. * * Will only run when warnings are configured to expire. */ class 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 PHP file extension * @param \phpbb\config\config $config The config */ public function __construct($phpbb_root_path, $php_ext, \phpbb\config\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']; } } task/core/tidy_cache.php000077700000002625151514577600011272 0ustar00<?php /** * * This file is part of the phpBB Forum Software package. * * @copyright (c) phpBB Limited <https://www.phpbb.com> * @license GNU General Public License, version 2 (GPL-2.0) * * For full copyright and license information, please see * the docs/CREDITS.txt file. * */ namespace phpbb\cron\task\core; /** * Tidy cache cron task. */ class tidy_cache extends \phpbb\cron\task\base { protected $config; protected $cache; /** * Constructor. * * @param \phpbb\config\config $config The config * @param \phpbb\cache\driver\driver_interface $cache The cache driver */ public function __construct(\phpbb\config\config $config, \phpbb\cache\driver\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']; } } task/core/prune_all_forums.php000077700000004265151514577600012554 0ustar00<?php /** * * This file is part of the phpBB Forum Software package. * * @copyright (c) phpBB Limited <https://www.phpbb.com> * @license GNU General Public License, version 2 (GPL-2.0) * * For full copyright and license information, please see * the docs/CREDITS.txt file. * */ namespace phpbb\cron\task\core; /** * 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. */ class 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 file extension * @param \phpbb\config\config $config The config * @param \phpbb\db\driver\driver_interface $db The db connection */ public function __construct($phpbb_root_path, $php_ext, \phpbb\config\config $config, \phpbb\db\driver\driver_interface $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']; } } task/core/tidy_database.php000077700000002605151514577600011771 0ustar00<?php /** * * This file is part of the phpBB Forum Software package. * * @copyright (c) phpBB Limited <https://www.phpbb.com> * @license GNU General Public License, version 2 (GPL-2.0) * * For full copyright and license information, please see * the docs/CREDITS.txt file. * */ namespace phpbb\cron\task\core; /** * Tidy database cron task. */ class 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 file extension * @param \phpbb\config\config $config The config */ public function __construct($phpbb_root_path, $php_ext, \phpbb\config\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']; } }
/home/www/hallgroupsolutions.com/e61a0/../3567e/../c9428/cron.tar