diff --git a/phpBB/includes/constants.php b/phpBB/includes/constants.php index 18e92d70c0..c3bb2aa468 100644 --- a/phpBB/includes/constants.php +++ b/phpBB/includes/constants.php @@ -169,7 +169,7 @@ define('FIELD_DATE', 6); // Additional constants - +define('VOTE_CONVERTED', 9999); // Table names define('ACL_GROUPS_TABLE', $table_prefix . 'acl_groups'); diff --git a/phpBB/install/convertors/convert_phpbb20.php b/phpBB/install/convertors/convert_phpbb20.php index 91a9951e90..cb26833212 100644 --- a/phpBB/install/convertors/convert_phpbb20.php +++ b/phpBB/install/convertors/convert_phpbb20.php @@ -571,7 +571,7 @@ if (!$get_info) 'primary' => 'vote_desc.topic_id', 'query_first' => array('target', $convert->truncate_statement . POLL_VOTES_TABLE), - array('poll_option_id', 1, ''), + array('poll_option_id', VOTE_CONVERTED, ''), array('topic_id', 'vote_desc.topic_id', ''), array('vote_user_id', 'vote_voters.vote_user_id', 'phpbb_user_id'), array('vote_user_ip', 'vote_voters.vote_user_ip', 'decode_ip'), diff --git a/phpBB/language/en/viewtopic.php b/phpBB/language/en/viewtopic.php index 27989f3c60..337a21c11f 100644 --- a/phpBB/language/en/viewtopic.php +++ b/phpBB/language/en/viewtopic.php @@ -105,6 +105,7 @@ $lang = array_merge($lang, array( 'VIEW_UNREAD_POST' => 'First unread post', 'VISIT_WEBSITE' => 'WWW', 'VOTE_SUBMITTED' => 'Your vote has been cast.', + 'VOTE_CONVERTED' => 'Changing votes is not supported for converted polls.', )); diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php index c44d413f60..f99278aece 100644 --- a/phpBB/viewtopic.php +++ b/phpBB/viewtopic.php @@ -654,13 +654,25 @@ if (!empty($topic_data['poll_start'])) if ($update && $s_can_vote) { - if (!sizeof($voted_id) || sizeof($voted_id) > $topic_data['poll_max_options']) + + if (!sizeof($voted_id) || sizeof($voted_id) > $topic_data['poll_max_options'] || in_array(VOTE_CONVERTED, $cur_voted_id)) { $redirect_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&t=$topic_id&start=$start"); meta_refresh(5, $redirect_url); - - $message = (!sizeof($voted_id)) ? 'NO_VOTE_OPTION' : 'TOO_MANY_VOTE_OPTIONS'; + if (!sizeof($voted_id)) + { + $message = 'NO_VOTE_OPTION'; + } + else if (sizeof($voted_id) > $topic_data['poll_max_options']) + { + $message = 'TOO_MANY_VOTE_OPTIONS'; + } + else + { + $message = 'VOTE_CONVERTED'; + } + $message = $user->lang[$message] . '

' . sprintf($user->lang['RETURN_TOPIC'], '', ''); trigger_error($message); }