我想根据评论 ID 在 drupal 中打印单个评论。我怎样才能做到这一点?谷歌和其他来源没有给我任何帮助。谢谢你。
alan
问问题
972 次
3 回答
3
功能打印评论($cid){ $sql = "SELECT * FROM {comments} WHERE cid = %d"; if ($comment = db_fetch_object(db_query($sql, $cid))) { $node = node_load($comment->nid); 返回主题('comment',$comment,$node); } }
于 2009-03-21T00:57:27.803 回答
3
如果您需要像 core 那样显示评论,包括来自节点的信息,伊顿的建议很好(除了它{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 年 2 月更新:请注意,这是 2009 年的问题/答案。在 Drupal 8 中,您只是不想访问假设的底层 SQL 数据库(无论如何也不会这样做,而是使用 DBTNG),而只需使用类似的东西:
if ($comment = entity_load('comment', $cid)) {
return entity_view($comment, $view_mode);
}
于 2009-03-21T13:32:32.683 回答
2
没有理由使用任何 sql 来执行此操作,只需调用两个 drupal api 函数即可。
function print_comment($cid)
{
$comment = _comment_load($cid);
return theme('comment',$comment);
}
于 2010-01-28T22:26:43.380 回答