web-dev-qa-db-ja.com

管理者以外のユーザーにコメントを承認させるにはどうすればよいですか?

管理者以外のユーザーがコメントを承認できるようにする方法を探しています。フラグとルールの組み合わせが解決策になるかもしれないと思っていましたが、わかりません。

コンテンツモデレーターの役割を追加し、モデレート待ちのコメントをリストするビューを作成しました。その後、フラグを設定してコメントを承認し、フラグリンクをビュー内に追加しました。ただし、フラグをクリックするとコメントを承認するルールアクションはありません。

何か考えはありますか?

1
NSTK

「コメントとコメント設定の管理」権限をロールに付与する必要があります。そうすると、ロールがコメントを承認できるようになります。

2

小さなモジュールを作成してこのルールアクションを追加することもできます。そのためには、 。info ファイル、空の.moduleファイル、および 。rules.inc ファイルが必要です。 、このファイルに hook_rules_action_info を実装して、カスタムアクションについてdrupalを通知する必要があります。最後に、ジョブを実行するための関数が必要になります。

ここにあなたのために仕事をする簡単なコードがあります:

/**
 * @file MODULE_NAME.rules.inc
 * Contains custom code for Rules module.
 */
/**
 * Implements hook_rules_action_info().
 */
function MODULE_NAME_rules_action_info() {
  return array(
    'MODULE_NAME_action_approve_comment' => array(
      'label' => t('Approve Comment'),
      'group' => t('Comment'),
      'parameter' => array(
        'account' => array(
          'type' => 'integer',//cid of comment will be passed to function
          'label' => t('Comment ID'),
        ),
      ),
    ),
  );
}
/**
 * Rule action comment approve.
 */
function MODULE_NAME_action_approve_comment($cid) {
  $comment->status = COMMENT_PUBLISHED;
  db_update('comment')
    ->fields(array(
      'status' => $comment->status,
    ))
    ->condition('cid', $cid)
    ->execute();
}