diff options
author | Nils Adermann <naderman@naderman.de> | 2011-11-18 20:31:26 +0100 |
---|---|---|
committer | Nils Adermann <naderman@naderman.de> | 2011-11-18 20:31:26 +0100 |
commit | 4be9c70827c5d87bd654bae22095b8165a689ffa (patch) | |
tree | 34c1165792fc4a65c51d88b7fe561f1f2d005c19 /phpBB | |
parent | 6894477b600f4a1ffaa6c8ce7fde45465e1f5c07 (diff) | |
parent | 4fae5eef6829b997e39099e561cb88cb5d248ff8 (diff) | |
download | forums-4be9c70827c5d87bd654bae22095b8165a689ffa.tar forums-4be9c70827c5d87bd654bae22095b8165a689ffa.tar.gz forums-4be9c70827c5d87bd654bae22095b8165a689ffa.tar.bz2 forums-4be9c70827c5d87bd654bae22095b8165a689ffa.tar.xz forums-4be9c70827c5d87bd654bae22095b8165a689ffa.zip |
Merge remote-tracking branch 'github-nickvergessen/ticket/9776' into develop-olympus
* github-nickvergessen/ticket/9776:
[ticket/9776] Delete poll if no poll options were submitted.
Diffstat (limited to 'phpBB')
-rw-r--r-- | phpBB/includes/functions_posting.php | 8 | ||||
-rw-r--r-- | phpBB/posting.php | 17 |
2 files changed, 21 insertions, 4 deletions
diff --git a/phpBB/includes/functions_posting.php b/phpBB/includes/functions_posting.php index a641afbaed..77d92e26e2 100644 --- a/phpBB/includes/functions_posting.php +++ b/phpBB/includes/functions_posting.php @@ -1870,9 +1870,9 @@ function submit_post($mode, $subject, $username, $topic_type, &$poll, &$data, $u case 'edit_topic': case 'edit_first_post': - if (isset($poll['poll_options']) && !empty($poll['poll_options'])) + if (isset($poll['poll_options'])) { - $poll_start = ($poll['poll_start']) ? $poll['poll_start'] : $current_time; + $poll_start = ($poll['poll_start'] || empty($poll['poll_options'])) ? $poll['poll_start'] : $current_time; $poll_length = $poll['poll_length'] * 86400; if ($poll_length < 0) { @@ -2075,11 +2075,11 @@ function submit_post($mode, $subject, $username, $topic_type, &$poll, &$data, $u } // Update Poll Tables - if (isset($poll['poll_options']) && !empty($poll['poll_options'])) + if (isset($poll['poll_options'])) { $cur_poll_options = array(); - if ($poll['poll_start'] && $mode == 'edit') + if ($mode == 'edit') { $sql = 'SELECT * FROM ' . POLL_OPTIONS_TABLE . ' diff --git a/phpBB/posting.php b/phpBB/posting.php index 1bc498efe7..ea3b53e939 100644 --- a/phpBB/posting.php +++ b/phpBB/posting.php @@ -904,6 +904,23 @@ if ($submit || $preview || $refresh) $message_parser->warn_msg[] = $user->lang['NO_DELETE_POLL_OPTIONS']; }*/ } + else if ($mode == 'edit' && $post_id == $post_data['topic_first_post_id'] && $auth->acl_get('f_poll', $forum_id)) + { + // The user removed all poll options, this is equal to deleting the poll. + $poll = array( + 'poll_title' => '', + 'poll_length' => 0, + 'poll_max_options' => 0, + 'poll_option_text' => '', + 'poll_start' => 0, + 'poll_last_vote' => 0, + 'poll_vote_change' => 0, + 'poll_options' => array(), + ); + + $post_data['poll_options'] = $post_data['poll_title'] = ''; + $post_data['poll_start'] = $post_data['poll_length'] = $post_data['poll_max_options'] = $post_data['poll_last_vote'] = $post_data['poll_vote_change'] = 0; + } else if (!$auth->acl_get('f_poll', $forum_id) && ($mode == 'edit') && ($post_id == $post_data['topic_first_post_id']) && ($original_poll_data['poll_title'] != '')) { // We have a poll but the editing user is not permitted to create/edit it. |