想法是在添加新用户时完成以下操作:
我正在使用带有机组的规则。除了分配小组角色外,一切都很好。我知道你可以添加一般的系统角色,但有没有人知道如何分配程序组的一个组(OG)角色,所以它会自动发生?
任何帮助非常感谢
答案 0 :(得分:2)
我在规则上使用以下自定义php操作,将用户添加到组并分配OG角色。
OG角色编号似乎按照OG角色的顺序排列,通过admin / config OG条目查看。
global $user;
// Load the user we want to add to the group
$account = user_load($user->uid);
// Add the user to the group - hard code group 18 which is my group as cant
// get PID from Ubercart order, to pull gid from nid. User, current user, active,
// etc., all default in 2nd array() param to og_group.
og_group(18);
// Changes the users role in the group (1 = non-member, 2 = member, 3 = administrator member, 4 = Forum Administrator)
og_role_grant(18, $account->uid, 2);
注意,OG角色4(论坛管理员)是我创建的自定义OG角色。另外,'member'(2)是默认值,我相信,但我把它放进去,所以我记得如果我将来需要的话,如何分配其他OG角色。
不幸的是,我不是一个php专家,我还没有弄清楚如何从订购的Ubercart产品的节点中拉出pid,这样我就可以得到它的gid,因此不会硬编码18的gid。
希望上面的代码剪切(主要是og_role_grant)作为一个规则动作自定义PHP代码片段(记住不要在顶部和底部包含php标签,因为规则为你做了这个)。
如果您对我获取订购的ubercart产品的问题有任何想法,如上所述,请随时分享。 :)
祝福
答案 1 :(得分:1)
答案 2 :(得分:0)
您可以使用 og_role_grant($ group_type,$ gid,$ uid,$ rid)以编程方式将用户角色分配到有机组。
要将其与规则一起使用,您可以使用 hook_rules_action_info()定义自定义操作。