在我的网站中,我需要为用户提供删除选项,以便在论坛中删除自己的评论。我想删除注释并更新注释节点统计信息。是否有可用于删除注释的Drupal函数?
答案 0 :(得分:1)
在Drupal 7中有comment_delete_multiple()调用删除注释中涉及的钩子,并通过_comment_update_node_statistics()更新节点统计信息。它需要一系列注释ID。
在Drupal 6中,没有等效的函数,但你写了Drupal 7函数的等价函数,考虑到:
db_delete()
或comment_load_multiple()
答案 1 :(得分:0)
答案 2 :(得分:0)
像...一样的东西。
<?php
// you'll need to include /modules/comment/comment.admin.inc
module_load_include('inc', 'comment', 'comment.admin');
// I'm assuming you have access to the cid, the unique
// identifier for comments stored in the {comments} table
$comment = _comment_load($cid);
_comment_delete_thread($comment);
_comment_update_node_statistics($comment->nid);
?>
此解决方案适用于Drupal 6,但您可以从评论模块借用包含文件,并在其他版本中劫持其功能。
我不确定扩展核心论坛功能的contrib模块(如Advanced Forum)是否提供了一个选项,而无需编写自定义代码,但您可能需要查看它。
答案 3 :(得分:0)
Drupal 7 使用comment_delete()
<?php
//Delete single comment
$cid = 3917; //cid from `comment` table
comment_delete($cid);
//Delete multiple comments
$cids = array(137421,137426,137427,137428,137429,137430,137431,137434,137450,137472);
foreach ($cids as $cid) {
comment_delete($cid);
}