2009-03-25 5 views
3

Ich habe einen Knoten in Drupal mit ein paar Kommentaren. Gibt es eine einfache Möglichkeit, die CID jedes Kommentars innerhalb des Knotens zu erhalten? Gibt es auch eine Möglichkeit, sie nach verschiedenen Parametern, Chronologie, Karma des Kommentars etc. zu sortieren. Danke.Erhalten Sie alle Kommentar-IDs in einem Drupal-Knoten

+2

Haben Sie versucht, Ansichten? http://drupal.org/project/views –

Antwort

3

Ich nehme an, Sie sollten die Funktion comment_render überprüfen.

Aber wenn Sie Ihren eigenen Sortierparameter benötigen, wäre es einfacher, dies mit sql-Befehlen zu tun;

Check: http://api.drupal.org/api/function/comment_render/6

Sie zuerst eine Abfrage, um die cid ist alles auf, was Sie bestellen müssen Auflistung machen können;

$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) 

Diese Abfrage existiert für die Funktion comment_render. Aber ich habe versucht, es für meinen Gebrauch zu modifizieren.

Jetzt haben wir die Knoten-ID und die cid s in der Reihenfolge wir wollten.

Hier ist die Rendering-Arbeit;

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

foreach ($mycomment as $mycid) 

comment_render($nid, $mycid) 

} 

Ich habe dieses nicht getestet, aber ich hoffe es hilft.

0

Einfachere Lösung:

$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']); 
} 

Unsere erste SQL-Abfrage muss nur den Kommentar-ID (cid) als comment_render zweiten Parameter holen behandeln alle die zusätzliche Informationen abgerufen werden.

1

Sie können alle Kommentare zu einem Knoten in Drupal 7 mit der Funktion laden:

comment_get_thread($node, $mode, $comment_per_page)

Überprüfen Sie die Dokumentation hier aus: http://api.drupal.org/api/drupal/modules%21comment%21comment.module/function/comment_get_thread/7

Es behandelt auch die Standard-Sortierparameter. Dies gibt Ihnen jedoch keine einfache Möglichkeit, die Kommentare zurückzugreifen. Ich würde nur Ansichten dafür verwenden. Dann können Sie hook_node_view verwenden, um die Standardkommentaranzeige zu deaktivieren und views_embed_view ('my_view', 'my_display');