Php 如何在drupal中打印单个注释?
我想根据drupal的注释ID在drupal中打印一条单独的注释。我该怎么做?谷歌和其他来源没有给我任何信息。多谢各位 伊顿的建议很好,除了{comments},而不是{comment},如果您需要像core那样显示注释,包括来自节点的信息。除了modules/comment/comment.tpl.php中的默认主题注释实现没有使用$node之外 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); } } 但是,我的做法略有不同,因为如果需要提取单个注释,则使用comment.tpl.php提供的正常内容格式显示它可能是不合适的Php 如何在drupal中打印单个注释?,php,drupal,drupal-comments,Php,Drupal,Drupal Comments,我想根据drupal的注释ID在drupal中打印一条单独的注释。我该怎么做?谷歌和其他来源没有给我任何信息。多谢各位 伊顿的建议很好,除了{comments},而不是{comment},如果您需要像core那样显示注释,包括来自节点的信息。除了modules/comment/comment.tpl.php中的默认主题注释实现没有使用$node之外 function print_comment($cid) { $sql = "SELECT * FROM {comments} WHERE ci
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);
}
}
当然,受comment.tpl.php的启发,在模块的hook_主题实现中定义这种特殊的comment格式
2014-02更新:请注意,这是一个2009年的问题/答案。在Drupal 8中,您只是不想访问假设的底层SQL数据库,而且无论如何也不会这样做,而是使用DBTNG,而只是使用如下内容:
if ($comment = entity_load('comment', $cid)) {
return entity_view($comment, $view_mode);
}
没有理由使用任何sql来实现这一点,只需要两个drupal api函数调用
function print_comment($cid)
{
$comment = _comment_load($cid);
return theme('comment',$comment);
}
哈。感谢您注意到评论/评论的区别。我打开了api.drupal.org,没有注意到我正在查看D7版本的代码-在新的开发版本中,表名已更改为单数,如果没有传入node对象,您将收到一些PHP通知-$node->type用于在默认phptemplate_preprocess_comment函数中构造可能的模板选项,如comment-story.tpl.PHP。不过,在调用主题“my_special_comment_formatting”时不会使用phptemplate_preprocess_comment。但对于主题“评论”来说,这是一个很好的捕捉!我只检查了模板,没有检查预处理函数。这是什么上下文?你想要一个只是评论的页面吗?一个街区?是否将其作为页面模板的一部分?是否在节点模板中打印单个注释?