0

在我的网站中,我需要为用户提供删除选项以删除他们在论坛中的评论。我想删除评论并更新评论节点统计信息。是否有任何 Drupal 功能可用于删除评论?

4

4 回答 4

1

在 Drupal 7 中有comment_delete_multiple()调用评论删除中涉及的钩子,并通过_comment_update_node_statistics()更新节点统计信息。它需要一组评论 ID。

在 Drupal 6 中,没有等效函数,但您编写了 Drupal 7 函数的等效函数,考虑到:

  • Drupal 6 没有处理事务的函数
  • 在 Drupal 6 中,删除评论时调用的钩子名称不同
  • Drupal 6 没有实体字段
  • Drupal 6 没有任何等价物db_delete()comment_load_multiple()
于 2013-06-04T14:03:03.933 回答
0

http://drupal.org/documentation/modules/trigger

Drupal 触发器。

于 2011-08-02T00:47:46.240 回答
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,但您可以从评论模块中借用包含文件并在其他版本中劫持它们的功能。

我不确定扩展核心论坛功能(如Advanced Forum)的 contrib 模块是否提供了无需编写自定义代码的选项,但您可能想研究一下。

于 2011-08-02T02:30:09.310 回答
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);    
    }
于 2013-02-25T17:56:06.437 回答