Предложение Итона является хорошим (за исключением того, что оно {comments}
, а не {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);
}
}
И, конечно, определите это специальное форматирование комментария в реализации hook_theme()
вашего модуля, вдохновленной тем, что делает comment.tpl.php
.
2014-02 ОБНОВЛЕНИЕ: обратите внимание, что это вопрос / ответ 2009 года. В Drupal 8 вы просто не хотите получать доступ к гипотетической базе данных SQL (и в любом случае не делали бы это так, но использовали бы DBTNG), а просто использовали что-то вроде:
if ($comment = entity_load('comment', $cid)) {
return entity_view($comment, $view_mode);
}