diff --git a/modules/poll/poll.module b/modules/poll/poll.module index ad0728c950ad0ffe8e89f632ea52699cbf6fe696..4a304634d43a114fbcafbebafb46f6a3fcab4f45 100644 --- a/modules/poll/poll.module +++ b/modules/poll/poll.module @@ -442,7 +442,7 @@ function theme_poll_results($title, $results, $votes, $links, $block, $nid, $vot $output .= $results; $output .= '<div class="total">'. t('Total votes: %votes', array('%votes' => $votes)) .'</div>'; if (isset($vote) && $vote > -1 && user_access('cancel own vote')) { - $output .= drupal_get_form('poll_cancel_form', $nid, $vote); + $output .= drupal_get_form('poll_cancel_form', $nid); } $output .= '</div>'; } @@ -450,9 +450,8 @@ function theme_poll_results($title, $results, $votes, $links, $block, $nid, $vot return $output; } -function poll_cancel_form($nid, $vote) { +function poll_cancel_form($nid) { $form['#action'] = url("poll/cancel/$nid"); - $form['choice'] = array('#type' => 'hidden', '#value' => $vote); $form['submit'] = array('#type' => 'submit', '#value' => t('Cancel your vote')); return $form; } @@ -565,11 +564,7 @@ function poll_cancel(&$node) { $nid = arg(2); if ($node = node_load(array('nid' => $nid))) { - $edit = $_POST; - $choice = $edit['choice']; - $cancel = $_POST['cancel']; - - if (isset($choice) && isset($node->choice[$choice])) { + if ($node->type == 'poll' && $node->allowvotes == FALSE) { if ($user->uid) { db_query('DELETE FROM {poll_votes} WHERE nid = %d and uid = %d', $node->nid, $user->uid); } @@ -578,9 +573,9 @@ function poll_cancel(&$node) { } // Subtract from the votes. - db_query("UPDATE {poll_choices} SET chvotes = chvotes - 1 WHERE nid = %d AND chorder = %d", $node->nid, $choice); + db_query("UPDATE {poll_choices} SET chvotes = chvotes - 1 WHERE nid = %d AND chorder = %d", $node->nid, $node->vote); $node->allowvotes = TRUE; - $node->choice[$choice]['chvotes']--; + $node->choice[$node->vote]['chvotes']--; drupal_set_message(t('Your vote was canceled.')); } else {