我试图设置具有扩展用户功能的bbpress。
我的目标是用户需要在每个论坛中拥有不同的功能,即:
这些是我到目前为止尝试的插件,但没有成功:
终极会员,官方1.7和新2.0版本
https://ultimatemember.com/
他们声称他们正在为UltimateMember v2进行群组扩展工作,这看起来很有希望,但截至目前还没有发布日期,我仍然不知道这个扩展是否会解决我的问题。
itthinx群组插件
http://docs.itthinx.com/document/groups/
允许我为用户和论坛分配多个组,但仍有一个问题。
由于itthinx Groups插件允许我为UserA分配多个组,这很棒,但它仍然无法解决我的问题。
所以,我试过这样的事情:
ForumX已分配以下群组:ForumX_readers
,ForumX_writers
,ForumX_moderators
UserA分配了以下群组:ForumX_readers
,ForumY_writers
,ForumZ_moderators
但问题是,由于UserA属于具有publish_replies
和moderate
功能的群组,因此他可以完全访问ForumX。
所以我需要的是论坛组和用户组的交集 - 在这个例子中是ForumX_readers
。
我深入研究了插件的代码,找到了基于其指定组处理用户功能的行,并迅速尝试获取当前论坛组,以实现交集。
不幸的是,我无法访问此部分代码中的global $post
,$_GLOBALS['post']
和$_REQUEST[]
变量。既不是直接也不是apply_filters()
函数,我自己实现了代码的一部分。
更新:
我能够获得get_posts()
的ID和当前论坛/主题的slu ..
我的第一次尝试是否有任何解决方案,我可能已经监督过了?
如果没有,是否有任何其他插件可以解决我不知道的问题?
或者在bbpress中甚至不可能这样?
答案 0 :(得分:0)
经过一些进一步的研究和试验&错误,我终于明白了。
要做的第一步是设置功能,在我的例子中看起来像这样。
{{3}}
在plugins目录中,有文件 SELECT bukrs, kunnr, dmbtr, COUNT(*) AS accd_count
INTO TABLE @DATA(git_double)
FROM bsid
WHERE bukrs = '1000' AND
blart = 'WP' AND
budat IN @s_budat AND
gjahr IN @s_gjahr
GROUP BY bukrs, kunnr, dmbtr
HAVING COUNT(*) > 1.
。 core/class-groups-user.php
函数将为用户检索分配的组,并设置相应的功能。
为了不使用core-plugin,我在init_cache()
变量中应用了一个过滤器,可以在 line:415 中找到。
$group_ids
然后我创建了一个新的插件,它挂钩到这个过滤器。
foreach( $user_groups as $user_group ) {
$group_ids[] = Groups_Utility::id( $user_group->group_id );
}
// added this line
$group_ids = apply_filters('filter_user_group_ids', $group_ids);`