コメントモジュールの制御

satoring
投稿日時: 2006-09-08 (金) 02:05
satoring さんのユーザアバター

コメントモジュールの制御

こんにちは。
コメントモジュールの使い方について助言いただきたく。

コメントモジュールのアクセス制御は、
「anonymous」「authenticated」と、ユーザグループ単位で制御しますよね。

anonymousはコメント禁止にしているのですが、
authenticatedなユーザでも、
「ブログやブック」へのコメント:admin承認が必要
「フォーラム」へのコメント:admin承認なしで投稿可能

ってのをやりたいのですがいい方法ありませんか?

Drupal 4.7.3 (クリーンURL 有効)
MySQL 4.0.22 / PHP 4.4.2 (セーフモード有効)
無料レンタルサーバ (XREA)
.htaccess 使用

 
ログイン登録)してコメントを投稿 | 参照(1650)
Takafumi
投稿日時: 2006-09-09 (土) 00:11
Takafumi さんのユーザアバター

コンテンツタイプごとの承認不要のコメント投稿

こんばんは。

なるほど、そういった需要もありますね。
ということで、承認不要のコメント投稿の権限を、コンテンツタイプごとに細分化するよう hack してみました。
対象は modules/comment.module です。

// $Id: comment.module,v 1.455.2.7 2006/07/18 10:46:24 unconed Exp $
152 行目

function comment_perm() {
//  return array('access comments', 'post comments', 'administer comments', 'post comments without approval');
  // ここから
  $arr = array('access comments', 'post comments', 'administer comments');
  $ntype = node_get_types();
  foreach ($ntype as $type => $val) {
    $arr[] = 'post comments without approval ' . "($type)";
  }
  return $arr;
  // ここまでを追加
}

569 行目

        // Add the comment to database.
//        $status = user_access('post comments without approval') ? COMMENT_PUBLISHED : COMMENT_NOT_PUBLISHED;
        // ここから
        $t_node = node_load($edit['nid']);
        $status = user_access('post comments without approval (' . $t_node->type . ')') ? COMMENT_PUBLISHED : COMMENT_NOT_PUBLISHED;
        // ここまでを追加
        $roles = variable_get('comment_roles', array());

上記のように変更すると、アクセスコントロールのページに

post comments without approval (blog)
post comments without approval (forum)

などのように、利用できるコンテンツタイプの数だけ権限が増えますので、任意で設定してください。
なお、仕様上、英語になってしまいますが、すべて「承認不要のコメント投稿 (xxxx)」という意味です。
必要であれば admin/locale/string/searchpost comments without approval を検索し、それぞれを編集すれば日本語表示にもなります。

この件、ブックに入れようと思いますので、動作確認の上、ご報告お願いいたします。
それから、当サイトでは role = ユーザグループ としていますので、勝手ながら当該箇所を修正させていただきました。 悪しからずご了承下さい。

 
ログイン登録)してコメントを投稿
satoring
投稿日時: 2006-09-09 (土) 07:47
satoring さんのユーザアバター

ありがとうございます

素晴らしい。サクサクっとhackありがとうございます。
問題なく動いていますよ。

これで妙なコメントに悩まされずに済みそうです。

 
ログイン登録)してコメントを投稿