function poll_votes in Drupal 7
Same name and namespace in other branches
- 5 modules/poll/poll.module \poll_votes()
- 6 modules/poll/poll.pages.inc \poll_votes()
Callback for the 'votes' tab for polls you can see other votes on
3 string references to 'poll_votes'
- drupal-6.filled.database.php in modules/
simpletest/ tests/ upgrade/ drupal-6.filled.database.php - poll_menu in modules/
poll/ poll.module - Implements hook_menu().
- poll_update_7001 in modules/
poll/ poll.install - Use the poll_choice primary key to record votes in poll_votes rather than the choice order. Rename chorder to weight.
File
- modules/
poll/ poll.pages.inc, line 51 - User page callbacks for the poll module.
Code
function poll_votes($node) {
$votes_per_page = 20;
drupal_set_title($node->title);
$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('PagerDefault')
->extend('TableSort');
$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;
}