diff options
author | Joas Schilling <nickvergessen@gmx.de> | 2012-10-05 13:18:06 +0200 |
---|---|---|
committer | Joas Schilling <nickvergessen@gmx.de> | 2012-10-05 13:18:06 +0200 |
commit | 92c5039af971722198ce634d719db6290d58c678 (patch) | |
tree | e457ec207ade77955512816206df2c877748bdc4 /phpBB/includes | |
parent | 42bb97a95cf57074edf2a30f1b4f417cfce81d13 (diff) | |
download | forums-92c5039af971722198ce634d719db6290d58c678.tar forums-92c5039af971722198ce634d719db6290d58c678.tar.gz forums-92c5039af971722198ce634d719db6290d58c678.tar.bz2 forums-92c5039af971722198ce634d719db6290d58c678.tar.xz forums-92c5039af971722198ce634d719db6290d58c678.zip |
[feature/soft-delete] Allow forcing the set_visibility for all posts
PHPBB3-9567
Diffstat (limited to 'phpBB/includes')
-rw-r--r-- | phpBB/includes/content_visibility.php | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/phpBB/includes/content_visibility.php b/phpBB/includes/content_visibility.php index 7bcabbdfd6..4f5da25919 100644 --- a/phpBB/includes/content_visibility.php +++ b/phpBB/includes/content_visibility.php @@ -139,7 +139,7 @@ class phpbb_content_visibility * @param $forum_id - int - forum ID where $topic_id resides * @return void */ - static public function set_topic_visibility($visibility, $topic_id, $forum_id, $user_id, $time, $reason) + static public function set_topic_visibility($visibility, $topic_id, $forum_id, $user_id, $time, $reason, $force_update_all = false) { global $db; @@ -148,17 +148,20 @@ class phpbb_content_visibility return; } - $sql = 'SELECT topic_visibility, topic_delete_time - FROM ' . TOPICS_TABLE . ' - WHERE topic_id = ' . (int) $topic_id; - $result = $db->sql_query($sql); - $original_topic_data = $db->sql_fetchrow($result); - $db->sql_freeresult($result); - - if (!$original_topic_data) + if (!$force_update_all && $visibility == ITEM_APPROVED) { - // The topic does not exist... - return; + $sql = 'SELECT topic_visibility, topic_delete_time + FROM ' . TOPICS_TABLE . ' + WHERE topic_id = ' . (int) $topic_id; + $result = $db->sql_query($sql); + $original_topic_data = $db->sql_fetchrow($result); + $db->sql_freeresult($result); + + if (!$original_topic_data) + { + // The topic does not exist... + return; + } } $data = array( @@ -174,7 +177,7 @@ class phpbb_content_visibility $db->sql_query($sql); // If we're restoring a topic we only restore posts, that were soft deleted through the topic soft deletion. - if ($original_topic_data['topic_delete_time'] && $original_topic_data['topic_visibility'] == ITEM_DELETED && $visibility == ITEM_APPROVED) + if (!$force_update_all && $original_topic_data['topic_delete_time'] && $original_topic_data['topic_visibility'] == ITEM_DELETED && $visibility == ITEM_APPROVED) { // Note, we do not set the same reason for every post. self::set_post_visibility($visibility, false, $topic_id, $forum_id, $user_id, $time, '', true, true, $original_topic_data['topic_visibility'], $original_topic_data['topic_delete_time']); |