管理者以外のユーザーがコメントを承認できるようにする方法を探しています。フラグとルールの組み合わせが解決策になるかもしれないと思っていましたが、わかりません。
コンテンツモデレーターの役割を追加し、モデレート待ちのコメントをリストするビューを作成しました。その後、フラグを設定してコメントを承認し、フラグリンクをビュー内に追加しました。ただし、フラグをクリックするとコメントを承認するルールアクションはありません。
何か考えはありますか?
「コメントとコメント設定の管理」権限をロールに付与する必要があります。そうすると、ロールがコメントを承認できるようになります。
小さなモジュールを作成してこのルールアクションを追加することもできます。そのためには、 。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();
}