0

私の Web サイトでは、ユーザーがフォーラムで自分のコメントを削除するための削除オプションを提供する必要があります。コメントを削除し、コメント ノードの統計を更新したいと考えています。コメントを削除するための 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 にはエンティティ フィールドがありません
  • db_delete()Drupal 6 には、またはに相当するものはありません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 用ですが、コメント モジュールからインクルード ファイルを借りて、他のバージョンでもそれらの機能をハイジャックすることができます。

コア フォーラム機能を拡張する contrib モジュール ( Advanced Forumなど) が、カスタム コードを記述せずにオプションを提供するかどうかはわかりませんが、調べてみることをお勧めします。

于 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 に答える