Как напечатать один комментарий в drupal?

Я хочу напечатать отдельный комментарий в drupal на основе его идентификатора комментария. Как я могу это сделать? Google и другие источники ничего мне не дали. Спасибо.

Предложение Eaton хорошее (за исключением {comments} , not {comment} ), если вам нужно отобразить комментарий, как это делает ядро, включая информацию, поступающую с узла. Кроме реализации по умолчанию theme_comment в modules/comment/comment.tpl.php не используется $ node.

Однако я бы сделал это несколько иначе, потому что, если вам нужно извлечь один комментарий, его отображение с нормальным форматированием содержимого, предоставляемое comment.tpl.php , скорее всего, будет неуместным.

 function print_comment($cid) { $sql = "SELECT * FROM {comment} c WHERE c.cid = %d"; if ($comment = db_fetch_object(db_rewrite_sql(db_query($sql, $cid), 'c'))) { return theme('my_special_comment_formatting', $comment); } } 

И, конечно, определите это специальное форматирование Commment в реализации hook_theme() вашего модуля, вдохновленное тем, что делает comment.tpl.php .

2014-02 ОБНОВЛЕНИЕ: обратите внимание, что это вопрос / ответ 2009 года. В Drupal 8 вы просто не хотите получать доступ к гипотетической базовой базе данных SQL (и в любом случае этого не делать, но использовать DBTNG), но просто используйте что-то вроде:

 if ($comment = entity_load('comment', $cid)) { return entity_view($comment, $view_mode); } 
 function print_comment ($ cid) {
   $ sql = "SELECT * FROM {comments} WHERE cid =% d";
   if ($ comment = db_fetch_object (db_query ($ sql, $ cid))) {
     $ node = node_load ($ comment-> nid);
     return theme ('comment', $ comment, $ node);
   }
 }

Нет причин использовать какой-либо sql для этого, два вызова функции drupal api – все, что требуется.

 function print_comment($cid) { $comment = _comment_load($cid); return theme('comment',$comment); }