2010-07-22 51 views
0

在drupal塊中,可以使用node_load(arg(1))訪問節點變量。但是如何在塊中獲得註釋變量?加載塊中的註釋變量

+0

您對哪些評論感興趣? – kiamlaluno 2010-07-23 04:50:38

+0

Drupal已經有一個塊列出了最新的評論。爲什麼你需要另一個顯示評論數據的區塊? – kiamlaluno 2010-07-23 04:54:04

回答

0

如果你需要得到的一個節點上的所有評論列表,你可以使用下面的代碼:

$query = 'SELECT c.nid, c.subject, c.cid, c.timestamp FROM {comments} c INNER JOIN {node} n ON n.nid = c.nid WHERE c.nid = %d AND n.status = 1 AND c.status = %d ORDER BY c.cid DESC'; 

$result = db_query(arg(1), COMMENT_PUBLISHED); 
while ($comment = db_fetch_object($result)) { 
    $comments[] = $comment; 
} 

而並非只是使用arg(1),這將不考慮節點修訂像URL /node/<nid>/revision/<rid>,您應該使用menu_get_object();在這種情況下代碼將變爲:

$node = menu_get_object(); 
if (!empty($node) && !empty($node->nid)) { 
    $query = 'SELECT c.nid, c.subject, c.cid, c.timestamp FROM {comments} c INNER JOIN {node} n ON n.nid = c.nid WHERE c.nid = %d AND n.status = 1 AND c.status = %d ORDER BY c.cid DESC'; 
    $result = db_query($query, $node->nid, COMMENT_PUBLISHED); 
    while ($comment = db_fetch_object($result)) { 
    $comments[] = $comment; 
    } 
} 
+0

如果您只對'$ number'註釋感興趣,可以使用'db_query_range($ query,$ node-> nid,COMMENT_PUBLISHED,0,$ number)''。 – kiamlaluno 2010-07-23 05:08:01

+0

我已經在評論區域中放置了一個區域,併爲其指定了一個塊,並且我想訪問$ comment-> cid。 – Toxid 2010-07-23 16:44:29