这个想法是在添加新用户时完成以下操作:
- 创建一个新组 (OG)
- 保存
- 将用户添加到保存的组 (OG)
- 分配组角色 (OG)
我正在使用有机组的规则。除了分配组角色之外,一切都很好。我知道您可以添加一般系统角色,但有人知道如何以编程方式分配组(OG)角色,以便自动发生吗?
非常感谢任何帮助
这个想法是在添加新用户时完成以下操作:
我正在使用有机组的规则。除了分配组角色之外,一切都很好。我知道您可以添加一般系统角色,但有人知道如何以编程方式分配组(OG)角色,以便自动发生吗?
非常感谢任何帮助
我在规则上使用以下自定义 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 产品的 gid 的问题有任何想法,如上所述,请随时分享。:)
最好的祝愿
有一个提议的 Organic Group 补丁可以将此功能添加到 Organic Group Rules 集成中。
你可以在这里找到补丁:https ://drupal.org/node/1327326
它添加了授予和撤销角色操作。
您可以使用 og_role_grant($group_type, $gid, $uid, $rid)以编程方式将角色分配给用户到有机组中。
要将其与规则一起使用,您可以使用hook_rules_action_info()定义自定义操作。