diff --git a/phpBB/posting.php b/phpBB/posting.php
index 0370b5d36a..1f7e09f942 100644
--- a/phpBB/posting.php
+++ b/phpBB/posting.php
@@ -207,7 +207,7 @@ if( $mode != "newtopic" )
message_die(GENERAL_MESSAGE, $message);
}
}
- else if( $mode == "editpost" )
+ else if( $mode == "editpost" || $mode == "delete" )
{
if( $post_id )
{
@@ -241,7 +241,7 @@ if( $mode != "newtopic" )
$topic_status = $check_row['topic_status'];
$forum_status = $check_row['forum_status'];
- if( $mode == "editpost" )
+ if( $mode == "editpost" || $mode == "delete" )
{
$topic_id = $check_row['topic_id'];
@@ -596,7 +596,7 @@ if( $submit && $mode != "vote" )
// still further reduced, will look at it later, possibly for
// 2.2
//
-if( ( $submit || $confirm ) && !$error )
+if( ( $submit || $confirm || $mode == "delete" ) && !$error )
{
$current_time = time();
@@ -891,7 +891,7 @@ if( ( $submit || $confirm ) && !$error )
//
}
- else if( $mode == "editpost" )
+ else if( $mode == "editpost" || $mode == "delete" )
{
$sql = "SELECT poster_id
FROM " . POSTS_TABLE . "
@@ -902,7 +902,8 @@ if( ( $submit || $confirm ) && !$error )
if( $userdata['user_id'] != $row['poster_id'] && !$is_auth['auth_mod'])
{
- $message = ( $delete ) ? $lang['Sorry_delete_own_posts'] : $lang['Sorry_edit_own_posts'];
+ $message = ( $delete || $mode == "delete" ) ? $lang['Delete_own_posts'] : $lang['Edit_own_posts'];
+ $message .= "
" . $lang['Click'] . " " . $lang['HERE'] . " ". $lang['to_return_topic'];
message_die(GENERAL_MESSAGE, $message);
}
}
@@ -914,19 +915,24 @@ if( ( $submit || $confirm ) && !$error )
//
// The user has chosen to delete a post or a poll
//
- if( ( $delete || $poll_delete ) && ( ( $is_auth['auth_delete'] && $is_last_post_topic ) || $is_auth['auth_mod'] ) )
+ if( ( $delete || $mode == "delete" ) && ( ( $is_auth['auth_delete'] && !$is_last_post_topic && !$is_auth['auth_mod'] ) ) )
+ {
+ $message = $lang['Cannot_delete_replied'] . "
" . $lang['Click'] . " " . $lang['HERE'] . " ". $lang['to_return_topic'];
+ message_die(GENERAL_MESSAGE, $message);
+ }
+ else if( ( $delete || $poll_delete || $mode == "delete" ) && ( ( $is_auth['auth_delete'] && $is_last_post_topic ) || $is_auth['auth_mod'] ) )
{
//
// Output a confirmation message if the user
// chose to delete this post
//
- if( ( $delete || $poll_delete ) && !$confirm )
+ if( ( $delete || $poll_delete || $mode == "delete" ) && !$confirm )
{
$s_hidden_fields = '';
- $s_hidden_fields .= ( $delete ) ? '' : '';
+ $s_hidden_fields .= ( $delete || $mode == "delete" ) ? '' : '';
- $l_confirm = ( ( $delete ) ? $lang['Confirm_delete'] : $lang['Confirm_delete_poll'] );
+ $l_confirm = ( ( $delete || $mode == "delete" ) ? $lang['Confirm_delete'] : $lang['Confirm_delete_poll'] );
//
// Output confirmation page
@@ -951,7 +957,7 @@ if( ( $submit || $confirm ) && !$error )
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
}
- else if( $confirm && ( $delete || $poll_delete ) )
+ else if( $confirm && ( $delete || $poll_delete || $mode == "delete" ) )
{
//
// Delete poll
@@ -1010,8 +1016,18 @@ if( ( $submit || $confirm ) && !$error )
message_die(GENERAL_ERROR, "Couldn't delete from vote users table", "", __LINE__, __FILE__, $sql);
}
}
+ else if( $post_has_poll && !$can_edit_poll && $poll_delete )
+ {
+ $message = $lang['Cannot_delete_poll'] . "
" . $lang['Click'] . " " . $lang['Here'] . " ". $lang['to_return_topic'];
+ message_die(GENERAL_MESSAGE, $message);
+ }
+ else if( !$is_first_post_topic && $poll_delete )
+ {
+ $message = $lang['Post_has_no_poll'] . "
" . $lang['Click'] . " " . $lang['Here'] . " ". $lang['to_return_topic'];
+ message_die(GENERAL_MESSAGE, $message);
+ }
- if( $delete )
+ if( $delete || $mode == "delete" )
{
$sql = "DELETE FROM " . POSTS_TEXT_TABLE . "