You are here

function advpoll_voting_ranking_form_submit in Advanced Poll 6

Same name and namespace in other branches
  1. 5 modes/ranking.inc \advpoll_voting_ranking_form_submit()
  2. 6.3 modes/ranking.inc \advpoll_voting_ranking_form_submit()
  3. 6.2 modes/ranking.inc \advpoll_voting_ranking_form_submit()

Implementation of the vote hook for the runoff module.

This takes care of registering the vote in runoff nodes.

File

modes/ranking.inc, line 697
Handle ranking votes, e.g. choice A is preferred over choice B, which in turn is preferred over choice C.

Code

function advpoll_voting_ranking_form_submit($form, &$form_state) {
  $votes = array();
  $node = $form['#node'];

  // Do submission specific to writeins.
  if (isset($form_state['values']['writein_key'])) {
    _advpoll_writeins_voting_form_submit($node, $form_state, $votes, $form_state['values']['choice'][$form_state['values']['writein_key']]);
  }
  foreach ($form_state['values']['choice'] as $choice => $rank) {
    $vote = array();

    // Ignore write-in choice that has already been taken care of.
    if (!$node->writeins || !isset($form_state['values']['writein_key']) || $choice != $form_state['values']['writein_key']) {
      $vote['value'] = $rank;

      // A zero value indicates they didn't rank that choice.
      if ($vote['value'] != 0) {
        $vote['value_type'] = 'option';
        $vote['tag'] = $choice;
        $vote['content_type'] = 'advpoll';
        $vote['content_id'] = $node->nid;
        $votes[] = $vote;
      }
    }
  }
  votingapi_set_votes($votes, array());
  _advpoll_vote_response($node, $form_state);
}