From 24fab91694a1d39e1a78d6f5f951d3370684ec2a Mon Sep 17 00:00:00 2001 From: mrgoldy Date: Tue, 10 Mar 2020 00:24:19 +0100 Subject: [PATCH] [ticket/15979] Fix restoring/deleting when editing deleted post PHPBB3-15979 --- phpBB/includes/functions_posting.php | 2 +- phpBB/posting.php | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/phpBB/includes/functions_posting.php b/phpBB/includes/functions_posting.php index 3abfaff6bf..0ea6adb308 100644 --- a/phpBB/includes/functions_posting.php +++ b/phpBB/includes/functions_posting.php @@ -2819,7 +2819,7 @@ function phpbb_handle_post_delete($forum_id, $topic_id, $post_id, &$post_data, $ $s_hidden_fields['delete_permanent'] = '1'; } - confirm_box(false, $l_confirm, build_hidden_fields($s_hidden_fields), 'confirm_delete_body.html'); + confirm_box(false, [$l_confirm, 1], build_hidden_fields($s_hidden_fields), 'confirm_delete_body.html'); } } diff --git a/phpBB/posting.php b/phpBB/posting.php index a3b329026d..4d7df48400 100644 --- a/phpBB/posting.php +++ b/phpBB/posting.php @@ -1172,10 +1172,10 @@ if ($submit || $preview || $refresh) $error[] = $user->lang['FORM_INVALID']; } - if ($submit && $mode == 'edit' && $post_data['post_visibility'] == ITEM_DELETED && !isset($_POST['soft_delete']) && $auth->acl_get('m_approve', $forum_id)) + if ($submit && $mode == 'edit' && $post_data['post_visibility'] == ITEM_DELETED && !$request->is_set_post('delete') && $auth->acl_get('m_approve', $forum_id)) { - $is_first_post = ($post_id == $post_data['topic_first_post_id'] || !$post_data['topic_posts_approved']); - $is_last_post = ($post_id == $post_data['topic_last_post_id'] || !$post_data['topic_posts_approved']); + $is_first_post = ($post_id <= $post_data['topic_first_post_id'] || !$post_data['topic_posts_approved']); + $is_last_post = ($post_id >= $post_data['topic_last_post_id'] || !$post_data['topic_posts_approved']); $updated_post_data = $phpbb_content_visibility->set_post_visibility(ITEM_APPROVED, $post_id, $post_data['topic_id'], $post_data['forum_id'], $user->data['user_id'], time(), '', $is_first_post, $is_last_post); if (!empty($updated_post_data)) @@ -1545,7 +1545,7 @@ if ($submit || $preview || $refresh) } // Handle delete mode... - if ($request->is_set_post('delete') || $request->is_set_post('delete_permanent')) + if ($request->is_set_post('delete_permanent') || ($request->is_set_post('delete') && $post_data['post_visibility'] != ITEM_DELETED)) { $delete_reason = $request->variable('delete_reason', '', true); phpbb_handle_post_delete($forum_id, $topic_id, $post_id, $post_data, !$request->is_set_post('delete_permanent'), $delete_reason);