diff --git a/phpBB/includes/functions_admin.php b/phpBB/includes/functions_admin.php index c116b605e8..b190fcf899 100644 --- a/phpBB/includes/functions_admin.php +++ b/phpBB/includes/functions_admin.php @@ -2375,7 +2375,7 @@ function prune($forum_id, $prune_mode, $prune_date, $prune_flags = 0, $auto_sync /** * Function auto_prune(), this function now relies on passed vars */ -function auto_prune($forum_id, $prune_mode, $prune_flags, $prune_days, $prune_freq) +function auto_prune($forum_id, $prune_mode, $prune_flags, $prune_days, $prune_freq, $log_prune = true) { global $db, $user, $phpbb_log; @@ -2395,13 +2395,18 @@ function auto_prune($forum_id, $prune_mode, $prune_flags, $prune_days, $prune_fr if ($result['topics'] == 0 && $result['posts'] == 0) { + $column = $prune_mode === 'shadow' ? 'prune_shadow_next' : 'prune_next'; + $sql = 'UPDATE ' . FORUMS_TABLE . " - SET prune_next = $next_prune + SET $column = $next_prune WHERE forum_id = $forum_id"; $db->sql_query($sql); } - $phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_AUTO_PRUNE', false, array($row['forum_name'])); + if ($log_prune) + { + $phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_AUTO_PRUNE', false, [$row['forum_name']]); + } } return; diff --git a/phpBB/phpbb/cron/task/core/prune_all_forums.php b/phpBB/phpbb/cron/task/core/prune_all_forums.php index 5005f5b894..664e37b1a1 100644 --- a/phpBB/phpbb/cron/task/core/prune_all_forums.php +++ b/phpBB/phpbb/cron/task/core/prune_all_forums.php @@ -60,21 +60,26 @@ class prune_all_forums extends \phpbb\cron\task\base $result = $this->db->sql_query($sql); while ($row = $this->db->sql_fetchrow($result)) { + $log_prune = true; + if ($row['enable_prune'] && $row['prune_next'] < time()) { if ($row['prune_days']) { - auto_prune($row['forum_id'], 'posted', $row['forum_flags'], $row['prune_days'], $row['prune_freq']); + auto_prune($row['forum_id'], 'posted', $row['forum_flags'], $row['prune_days'], $row['prune_freq'], $log_prune); + $log_prune = false; } if ($row['prune_viewed']) { - auto_prune($row['forum_id'], 'viewed', $row['forum_flags'], $row['prune_viewed'], $row['prune_freq']); + auto_prune($row['forum_id'], 'viewed', $row['forum_flags'], $row['prune_viewed'], $row['prune_freq'], $log_prune); + $log_prune = false; } } + if ($row['enable_shadow_prune'] && $row['prune_shadow_next'] < time() && $row['prune_shadow_days']) { - auto_prune($row['forum_id'], 'shadow', $row['forum_flags'], $row['prune_shadow_days'], $row['prune_shadow_freq']); + auto_prune($row['forum_id'], 'shadow', $row['forum_flags'], $row['prune_shadow_days'], $row['prune_shadow_freq'], $log_prune); } } $this->db->sql_freeresult($result); diff --git a/phpBB/phpbb/cron/task/core/prune_forum.php b/phpBB/phpbb/cron/task/core/prune_forum.php index abf91aee19..2060babc25 100644 --- a/phpBB/phpbb/cron/task/core/prune_forum.php +++ b/phpBB/phpbb/cron/task/core/prune_forum.php @@ -75,14 +75,17 @@ class prune_forum extends \phpbb\cron\task\base implements \phpbb\cron\task\para include($this->phpbb_root_path . 'includes/functions_admin.' . $this->php_ext); } + $log_prune = true; + 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']); + auto_prune($this->forum_data['forum_id'], 'posted', $this->forum_data['forum_flags'], $this->forum_data['prune_days'], $this->forum_data['prune_freq'], $log_prune); + $log_prune = false; } 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']); + auto_prune($this->forum_data['forum_id'], 'viewed', $this->forum_data['forum_flags'], $this->forum_data['prune_viewed'], $this->forum_data['prune_freq'], $log_prune); } }