aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB
diff options
context:
space:
mode:
authorNils Adermann <naderman@naderman.de>2011-11-18 20:31:26 +0100
committerNils Adermann <naderman@naderman.de>2011-11-18 20:31:26 +0100
commit4be9c70827c5d87bd654bae22095b8165a689ffa (patch)
tree34c1165792fc4a65c51d88b7fe561f1f2d005c19 /phpBB
parent6894477b600f4a1ffaa6c8ce7fde45465e1f5c07 (diff)
parent4fae5eef6829b997e39099e561cb88cb5d248ff8 (diff)
downloadforums-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.php8
-rw-r--r--phpBB/posting.php17
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.