您在這裡

Poll Random

winderster's 的頭像
winderster 在 2007-11-13 (二) 08:43 發表

因為很多的奇思謬想,又因能力不及達成不了很多事情,想請各位指導一下:
我想將 Poll Block 改成 Random 的方式,讓使用者們可以在 block 看到各個不同的投票選擇;
用 Views 做,不知道為什麼永遠做不出它預設的那種 block 樣式,簡單的呈現"主題"、"投票項目"、"新增回應",而不是像 views 一樣跑出一堆有的沒的。
因此看了4.7版的 random poll patch 改 patch poll/poll.module 的內容,直接刪除 most recent poll 的方式,希望指正一下有沒有錯誤或需要注意的,因為我對這東西完全沒概念:

function poll_block($op = 'list', $delta = 0) {
if (user_access('access content')) {
if ($op == 'list') {
$blocks[0]['info'] = t('Randomly selected poll');
return $blocks;
}
else if ($op == 'view') {
// Retrieve a random poll
$sql = db_rewrite_sql("SELECT p.nid FROM {node} n INNER JOIN {poll} p ON p.nid = n.nid WHERE n.status = 1 AND p.active = 1 AND n.moderate = 0");
$result = db_query($sql);
$nids = Array();
while( $nid = db_fetch_object($result) ) {
$nids[] = $nid->nid;
}
$random_poll = array_rand($nids);
$sql = db_rewrite_sql("SELECT n.created FROM {node} n INNER JOIN {poll} p ON p.nid = n.nid WHERE p.nid = '$nids[$random_poll]'");
$timestamp = db_result(db_query($sql));
if($timestamp) {
$poll = node_load(array('type' => 'poll', 'created' => $timestamp, 'moderate' => 0, 'status' => 1));

if ($poll->nid) {
$poll = poll_view($poll, TRUE, FALSE, TRUE);
}
}
$block['subject'] = t('Poll');
$block['content'] = drupal_render($poll->content);
return $block;
}
}
}

謝謝!