2009-03-25 4 views
3

Drupalにノードがあり、コメントがいくつかあります。ノード内のすべてのコメントのCIDを取得する簡単な方法はありますか?また、さまざまなパラメータ、年表、コメントのカルマなどでソートする方法はありますかありがとう。Drupalノード内のすべてのComment IDを取得

+2

ビューを試しましたか? http://drupal.org/project/views –

答えて

3

comment_render関数をチェックすることをお勧めします。

しかし、独自のソートパラメータが必要な場合は、SQLコマンドを使用する方が簡単です。

チェック:http://api.drupal.org/api/function/comment_render/6

あなたは、まずあなたが発注する必要があるものは何でも上のすべてのcidのをリストクエリを作ることができます。

$myquery = 'SELECT c.cid, c.pid, c.nid, c.subject, c.comment, c.format, c.timestamp, c.name, c.mail, c.homepage, u.uid, u.name AS registered_name, u.signature, u.picture, u.data, c.status FROM {comments} c INNER JOIN {users} u ON c.uid = u.uid WHERE c.nid 
= %d ORDER BY c.uid ASC'; 

$myresult = db_query($myquery) 

このクエリは、comment_render関数に存在します。しかし私はそれを私の使用のために修正しようとしました。

ここで、ノードIDcidが、私たちが望む順番になっています。

ここでレンダリング作業を行います。

while ($mycomments = mysql_fetch_row($myresult)){ 

foreach ($mycomment as $mycid) 

comment_render($nid, $mycid) 

} 

私はこれをテストしていませんが、それが役に立ちそうです。

0

簡単なソリューション:

$sql = "SELECT cid FROM {comments} WHERE nid=%d ORDER BY timestamp DESC"; 

$resource = db_query($sql, $node->nid); 
while($row = db_fetch_array($resource)) { 
    print comment_render($node->nid, $row['cid']); 
} 

我々の最初のSQLクエリのみcomment_renderの2番目のパラメータはすべて、追加情報を取り出す処理するようコメントID(CID)をフェッチする必要があります。

1

あなたは、関数を使用して、Drupalの7のノードのすべてのコメントを読み込むことができます:

comment_get_thread($node, $mode, $comment_per_page)

をここにドキュメントをチェックアウト:http://api.drupal.org/api/drupal/modules%21comment%21comment.module/function/comment_get_thread/7

をまた、デフォルトのソートパラメータについて説明します。しかし、これはあなたに簡単なコメントを与える方法を提供しません。私はそれのためのビューを使用します。次に、hook_node_viewを使用してデフォルトのコメント表示を無効にし、views_embed_view( 'my_view'、 'my_display')を追加します。

関連する問題