2011-01-14 7 views
0

Ich habe eine phpbb3 Message Board mit 2 Foren installiert -Wie weiß phpbb3, ob ein Forum privat ist?

  • öffentliche Diskussion
  • Privat Diskussion

Jeder kann das öffentliche Forum sehen, aber nur eine bestimmte Gruppe das private Forum sehen.

Was ist und wo die Variable gespeichert, dass phpbb zwischen dem privaten und dem öffentlichen Forum zu unterscheiden nutzt?

Danke!

+3

Versuchen Sie diesen Artikel lesen http://www.phpbb.com/kb/article/create-a-private-forum/, um herauszufinden, –

Antwort

3

Im Allgemeinen wird Forum Sichtbarkeit auf zwei Dinge basiert:

  • Ein Benutzer in einer bestimmten Benutzergruppe sein
  • Diese Gruppe Berechtigung dieses Forum zu sehen ist.

Sie finden die Steuerelemente dafür in der Admin-Oberfläche. Unter "Forum Permissions" sehen Sie eine Liste der Gruppen, die eine Rolle haben, die es ihnen erlaubt, das Forum zumindest zu sehen (oben rechts). In "Gruppen verwalten" oder unter der individuellen Benutzerverwaltung, Sie kann sehen, welcher Benutzer zu welcher Gruppe gehört.

Obwohl Dinge bei Bedarf viel feinkörniger gesteuert werden können, ist das die normale Grundeinstellung. Wenn ein Benutzer in einer Gruppe ist und diese Gruppe die Berechtigung zum Anzeigen des Forums hat (die Gruppe hat eine "Rolle", die sie sehen kann), kann der Benutzer das Forum sehen.

Es gibt keine Variable, um dies zu kontrollieren. Die Gruppen- und Forenberechtigungen befinden sich in der Datenbank.

Zwar gibt es viele verschiedene Möglichkeiten, die Dinge der Einrichtung, ich bin raten, die „Variable“ Sie suchen ist wahrscheinlich die Datenbanktabelle phpbb_acl_groups, wo eine Reihe ein Forum zuordnen kann (durch einen forum_id von phpbb_forums mit einer Rolle) (auth_role_id von phpbb_acl_roles) und eine Gruppe (group_id von phpbb_groups.)

ich denke, dass die beste Antwort, das ich geben kann, wenn Sie uns etwas ausführlicher geben können (zB was das eigentliche Problem ist ...)

+0

Matt, danke für die tolle Antwort! –

0

Arbeiten an Matts Antwort, ich habe mit dieser Abfrage kommen:

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) 
) 

Dadurch wird die Foren wählen, die nicht Kategorien (f.forum_type = 1) und einen Besucher nicht hat ROLE_FORUM_NOACCESS (a.auth_role_id <> 16) gesetzt.

Ich habe erwogen, die f_read Option (a.auth_option_id <> 20) hinzuzufügen, aber das hat nichts in meinem Fall geändert.

Ich mag gerne wissen, ob dies eine schlechte Idee ist: p

Verwandte Themen