From f42a342a534f8230d78268148fab7a80cf6c91df Mon Sep 17 00:00:00 2001 From: Paul Trotter Date: Wed, 24 Feb 2016 10:47:36 +0000 Subject: [PATCH] adds custom OG subgroup rule so the you can get the members of a subgroup via rules --- .../modules/og_subgroups/og_subgroups.rules.inc | 69 ++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 sites/all/modules/og_subgroups/og_subgroups.rules.inc diff --git a/sites/all/modules/og_subgroups/og_subgroups.rules.inc b/sites/all/modules/og_subgroups/og_subgroups.rules.inc new file mode 100644 index 0000000..827453f --- /dev/null +++ b/sites/all/modules/og_subgroups/og_subgroups.rules.inc @@ -0,0 +1,69 @@ + t('Get subgroup group members from group audience'), + 'group' => t('Custom'), + 'parameter' => array( + 'group_content' => array( + 'type' => 'entity', + 'label' => t('Group content'), + 'description' => t('The group content determining the group audience.'), + ), + ), + 'provides' => array( + 'group_members' => array('type' => 'list', 'label' => t('List of subgroup members')), + ), + 'base' => 'og_subgroups_rules_get_members', + 'access callback' => 'og_subgroups_rules_integration_access', + ); + + return $items; +} + + +/* NEW FUNCTION ************************************************/ + +// This callback creates the hashed string by using the parameters provided through rules' UI +function og_subgroups_rules_get_members($group_content) { + + // get the nid from the passed value of the content being added + $nid = $group_content->nid->value(); + + // trying to manually call the get inherited users function from og_subgroups.common.inc + $inherited_users = _og_subgroups_get_inherited_users("node", $nid); + + $members = array(); + + foreach ($inherited_users as $inherited_uid => $data) { + // Get the group members the group content belongs to. + + $user=user_load($inherited_uid); + + // push the returned user to the array of members + array_push($members, $user); + + } + + // return the users + return array('group_members' => $members); + +} + +/** + * OG Rules integration access callback. + */ +function og_subgroups_rules_integration_access($type, $name) { + // Grant everyone access to conditions. + return $type == 'condition' || user_access('administer group'); +} \ No newline at end of file -- 2.6.2