アイデアは、新しいユーザーが追加されたときに次のことを達成することです。
- 新しいグループ (OG) を作成する
- それを保存
- ユーザーを保存済みグループ (OG) に追加
- グループの役割 (OG) を割り当てる
オーガニック グループでルールを使用しています。グループの役割を割り当てることを除けば、すべて問題ありません。一般的なシステムの役割を追加できることは知っていますが、グループ (OG) の役割をプログラムで割り当てる方法を知っている人はいますか?
どんな助けでも大歓迎です
アイデアは、新しいユーザーが追加されたときに次のことを達成することです。
オーガニック グループでルールを使用しています。グループの役割を割り当てることを除けば、すべて問題ありません。一般的なシステムの役割を追加できることは知っていますが、グループ (OG) の役割をプログラムで割り当てる方法を知っている人はいますか?
どんな助けでも大歓迎です
ルールで次のカスタム php アクションを使用して、ユーザーをグループに追加し、OG ロールを割り当てます。
OG ロール番号は、admin/config OG エントリから表示されるように、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 ロールです。また、「メンバー」(2) がデフォルトだと思いますが、これを入れたのは、将来必要になった場合に他の OG ロールを割り当てる方法を覚えておくためです。
残念ながら、私はPHPの第一人者ではありません.注文したUbercart製品のノードからpidを取得する方法をまだ考えていないので、そのgidを取得できるため、18のgidをハードコードすることはできません.
上記の抜粋されたコード (主に og_role_grant) がルール アクションのカスタム php コード スニペットとして機能することを願っています (ルールがこれを行うため、上部と下部に php タグを含めないことを忘れないでください)。
上記のように、注文した ubercart 製品の gid を取得するという私の問題について何か考えがある場合は、お気軽に共有してください。:)
幸運をお祈りしています
この機能を Organic Group Rules 統合に追加する Organic Group パッチが提案されています。
パッチはこちらにあります: https://drupal.org/node/1327326
Grant および Revoke ロール アクションを追加します。
og_role_grant ($group_type, $gid, $uid, $rid)を使用して、ロールをユーザーに有機グループにプログラムで割り当てることができます。
これをルールで使用するには、hook_rules_action_info()を使用してカスタム アクションを定義できます。