我有一个安装了 2 个论坛的 phpbb3 留言板 -
- 公开讨论
- 私下讨论
每个人都可以看到公共论坛,但只有特定的组才能看到私人论坛。
phpbb 用来区分私人论坛和公共论坛的变量是什么以及存储在哪里?
谢谢!
通常,论坛的可见性基于两件事:
您将在管理界面中找到此控件。在“论坛权限”中,您会看到具有某种角色的群组列表,这些角色至少可以让他们看到论坛(右上角的框)。在“管理群组”或个人用户管理下,您'将能够看到哪个用户属于哪个组。
尽管必要时可以将事情控制在更精细的粒度上,但这是正常的基本设置。如果用户在一个组中,并且该组有权查看该论坛(该组具有可以查看它的“角色”),则该用户可以查看该论坛。
没有一个变量可以控制这一点。组和论坛权限位于数据库中。
虽然有很多不同的设置方式,但我猜你正在寻找的“变量”可能是数据库表phpbb_acl_groups
,其中一行可以将论坛(由forum_id
from标识phpbb_forums
)与角色(auth_role_id
from phpbb_acl_roles
)和组(group_id
来自phpbb_groups
。)
我认为这是我能给出的最好答案,除非你能给我们更多细节(例如实际问题是什么......)
处理马特的答案,我想出了这个查询:
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_NOACCESS
( a.auth_role_id <> 16
) 集的论坛。
我考虑过添加f_read
选项 ( a.auth_option_id <> 20
),但这并没有改变我的情况。
我想知道这是否是一个坏主意:p