function poll_votes

Page callback: Displays the 'votes' tab for polls.

This page displays a table containing each vote that has been cast.

Parameters

$node: The poll node object.

Return value

Render array containing table with votes.

See also

poll_menu()

1 string reference to 'poll_votes'
poll_menu in drupal/core/modules/poll/poll.module
Implements hook_menu().

File

drupal/core/modules/poll/poll.pages.inc, line 67
Page callbacks for the Poll module.

Code

function poll_votes($node) {
  $votes_per_page = 20;
  drupal_set_title($node
    ->label());
  $header[] = array(
    'data' => t('Visitor'),
    'field' => 'u.name',
  );
  $header[] = array(
    'data' => t('Vote'),
    'field' => 'pc.chtext',
  );
  $header[] = array(
    'data' => t('Timestamp'),
    'field' => 'pv.timestamp',
    'sort' => 'desc',
  );
  $select = db_select('poll_vote', 'pv')
    ->extend('Drupal\\Core\\Database\\Query\\PagerSelectExtender')
    ->extend('Drupal\\Core\\Database\\Query\\TableSortExtender');
  $select
    ->join('poll_choice', 'pc', 'pv.chid = pc.chid');
  $select
    ->join('users', 'u', 'pv.uid = u.uid');
  $queried_votes = $select
    ->addTag('translatable')
    ->fields('pv', array(
    'chid',
    'uid',
    'hostname',
    'timestamp',
    'nid',
  ))
    ->fields('pc', array(
    'chtext',
  ))
    ->fields('u', array(
    'name',
  ))
    ->condition('pv.nid', $node->nid)
    ->limit($votes_per_page)
    ->orderByHeader($header)
    ->execute();
  $rows = array();
  foreach ($queried_votes as $vote) {
    $rows[] = array(
      $vote->name ? theme('username', array(
        'account' => $vote,
      )) : check_plain($vote->hostname),
      check_plain($vote->chtext),
      format_date($vote->timestamp),
    );
  }
  $build['poll_votes_table'] = array(
    '#theme' => 'table',
    '#header' => $header,
    '#rows' => $rows,
    '#prefix' => t('This table lists all the recorded votes for this poll. If anonymous users are allowed to vote, they will be identified by the IP address of the computer they used when they voted.'),
  );
  $build['poll_votes_pager'] = array(
    '#theme' => 'pager',
  );
  return $build;
}