0

我有一个安装了 2 个论坛的 phpbb3 留言板 -

  • 公开讨论
  • 私下讨论

每个人都可以看到公共论坛,但只有特定的组才能看到私人论坛。

phpbb 用来区分私人论坛和公共论坛的变量是什么以及存储在哪里?

谢谢!

4

2 回答 2

3

通常,论坛的可见性基于两件事:

  • 属于特定用户组的用户
  • 该组有权查看该论坛。

您将在管理界面中找到此控件。在“论坛权限”中,您会看到具有某种角色的群组列表,这些角色至少可以让他们看到论坛(右上角的框)。在“管理群组”或个人用户管理下,您'将能够看到哪个用户属于哪个组。

尽管必要时可以将事情控制在更精细的粒度上,但这是正常的基本设置。如果用户在一个组中,并且该组有权查看该论坛(该组具有可以查看它的“角色”),则该用户可以查看该论坛。

没有一个变量可以控制这一点。组和论坛权限位于数据库中。

虽然有很多不同的设置方式,但我你正在寻找的“变量”可能是数据库表phpbb_acl_groups,其中一行可以将论坛(由forum_idfrom标识phpbb_forums)与角色(auth_role_idfrom phpbb_acl_roles)和组(group_id来自phpbb_groups。)

我认为这是我能给出的最好答案,除非你能给我们更多细节(例如实际问题是什么......)

于 2011-01-15T00:12:59.083 回答
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_NOACCESS( a.auth_role_id <> 16) 集的论坛。

我考虑过添加f_read选项 ( a.auth_option_id <> 20),但这并没有改变我的情况。

我想知道这是否是一个坏主意:p

于 2017-05-28T14:23:38.623 回答