2011-01-14 14 views
0

私は2つのフォーラムでインストールphpBB3のメッセージボードを持っている -フォーラムがプライベートであるかどうかphpbb3はどのように知っていますか?

  • 公開討論
  • プライベートディスカッション

誰もが公共のフォーラムを見ることができますが、唯一の特定のグループは、プライベートフォーラムを見ることができます。

あるとはどこphpbbのは、プライベートとパブリックフォーラムを区別するために使用する変数を格納していますか?

ありがとうございます!

+3

を見つけるために、この記事を読んでみhttp://www.phpbb.com/kb/article/create-a-private-forum/ –

答えて

3

一般的に、フォーラムの視認性は二つのことに基づいています。

  • グループがそのフォーラムを参照する権限を有する特定のユーザグループ
  • にいるユーザー。

管理者インターフェイスでは、このコントロールを見つけることができます。 「フォーラムの権限」には、少なくともフォーラム(右上のボックス)を表示できるような役割を果たすグループのリストが表示されます。「グループの管理」または個々のユーザー管理の下で、どのユーザーがどのグループに属しているかを見ることができます。

必要に応じてより細かい粒度で制御できますが、それは通常の基本設定です。ユーザがグループに属していて、そのグループがフォーラムを見る許可を得ている場合(グループにはそれを見ることができる「ロール」がある)、ユーザはフォーラムを見ることができます。

これを制御する変数はありません。グループとフォーラムの権限はデータベースに保存されます。物事を設定するためのさまざまな方法がたくさんありますしながら

、私はは「変数」あなたが探しているが、おそらくforum_idphpbb_forumsからで識別される行がフォーラムを関連付けることができ、データベーステーブルphpbb_acl_groups、(あるを推測しています)役割(phpbb_acl_rolesからauth_role_id)とphpbb_groupsからグループ(group_idと。)

私はそれはあなたが(私たちにいくつかの詳細を与えることができない限り、私が与えることができる最善の答えだと思う例えば、実際の問題が何でありますか...)

+0

マット、偉大な答えをありがとう! –

0

作業中マットの答えは、私はこのクエリを作ってみた:

SELECT f.forum_id, f.forum_name 
FROM forums f 
WHERE f.forum_type = 1 AND f.forum_id IN (
    SELECT a.forum_id 
    FROM acl_groups a 
    WHERE a.group_id = 1 AND (a.auth_role_id <> 16) 
) 

このカテゴリ(f.forum_type = 1)ではなく、訪問者がROLE_FORUM_NOACCESSa.auth_role_id <> 16)設定されていないフォーラムを選択します。

私はf_readオプション(a.auth_option_id <> 20)を追加すると考えましたが、私の場合はこれが変更されませんでした。

私は、これは悪い考えであるかどうかを知りたいのです:P

関連する問題