I'm trying to modify the using the voting.module so that it can display a sortable table listing each node's title along with the number of votes and average vote for that node. But I'm stuck and need some help to continue. Here's what I have so far (it's missing average vote and number of votes):
$header = array(
array('data' => t('title'), 'field' => 'n.title'),
array('data' => t('changed'), 'field' => 'n.changed', 'sort' => 'desc'),
array('data' => t('vote'), 'field' => 'v.vote'),
);
$sql = "SELECT n.nid, n.title,"
. " n.created, n.changed, v.vote"
. " FROM {node} n"
. " LEFT JOIN {votes} v ON n.nid = v.content_id AND v.uid = $user->uid"
. " WHERE n.type = 'contribution'";
$sql .= tablesort_sql($header);
$result = pager_query(db_rewrite_sql($sql), 50);
while ($row = db_fetch_object($result)) {
$rows[] = array(l($row->title, "node/$row->nid"), date("Y-m-d", $row->changed), $row->vote);
}
if ($pager = theme('pager', NULL, 50, 0, tablesort_pager())) {
$rows[] = array(array('data' => $pager, 'colspan' => 3));
}
Here's the table that votes are stored in:
CREATE TABLE votes (
voting_id int(10) unsigned NOT NULL auto_increment,
content_type varchar(20) default NULL,
content_id int(10) unsigned default NULL,
vote tinyint(1) unsigned default NULL,