From 885e19e58a54dc5f06161dd56d7e1a2df34df95d Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Sun, 4 Nov 2012 01:17:22 +0100 Subject: [PATCH] [feature/soft-delete] Provide the options for permanent delete via AJAX AJAX confirm_box should be able to call the template file given. The confirm message is HTML so far, but generating the HTML in the php code is not, what we want. PHPBB3-9567 --- phpBB/posting.php | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/phpBB/posting.php b/phpBB/posting.php index 4c92d85a20..16dfad3b91 100644 --- a/phpBB/posting.php +++ b/phpBB/posting.php @@ -1604,8 +1604,8 @@ function handle_post_delete($forum_id, $topic_id, $post_id, &$post_data, $is_sof $template->assign_vars(array( 'S_SOFTDELETED' => $post_data['post_visibility'] == ITEM_DELETED, 'S_CHECKED_PERMANENT' => $request->is_set_post('delete_permanent') ? ' checked="checked"' : '', - 'S_ALLOWED_DELETE' => $auth->acl_get('m_delete', $forum_id) || $auth->acl_get('f_delete', $forum_id), - 'S_ALLOWED_SOFTDELETE' => $auth->acl_get('m_softdelete', $forum_id) || $auth->acl_get('f_softdelete', $forum_id), + 'S_ALLOWED_DELETE' => $auth->acl_gets('m_delete', 'f_delete', $forum_id), + 'S_ALLOWED_SOFTDELETE' => $auth->acl_gets('m_softdelete', 'f_softdelete', $forum_id), 'S_DELETE_REASON' => $auth->acl_get('m_softdelete', $forum_id), )); @@ -1620,7 +1620,24 @@ function handle_post_delete($forum_id, $topic_id, $post_id, &$post_data, $is_sof $s_hidden_fields['delete_permanent'] = '1'; } - confirm_box(false, $l_confirm, build_hidden_fields($s_hidden_fields), 'confirm_delete_body.html'); + // @todo: This needs fixing! AJAX confirm_box should be able to call template files! + if ($request->is_ajax()) + { + $l_confirm = (!isset($user->lang[$l_confirm . '_CONFIRM'])) ? $l_confirm : $user->lang[$l_confirm . '_CONFIRM']; + if ($auth->acl_gets('m_delete', 'f_delete', $forum_id) && $auth->acl_gets('m_softdelete', 'f_softdelete', $forum_id)) + { + $l_confirm .= '
' . $user->lang['DELETE_PERMANENTLY'] . ': '; + } + if ($auth->acl_get('m_softdelete', $forum_id)) + { + $l_confirm .= '
' . $user->lang['DELETE_REASON'] . ': '; + } + confirm_box(false, $l_confirm, build_hidden_fields($s_hidden_fields)); + } + else + { + confirm_box(false, $l_confirm, build_hidden_fields($s_hidden_fields), 'confirm_delete_body.html'); + } } }