You are here

function og_subgroups_views_handler_argument_gid::get_subgroup_tree in Subgroups for Organic groups 6

2 calls to og_subgroups_views_handler_argument_gid::get_subgroup_tree()
og_subgroups_views_handler_argument_content::query in modules/og_subgroups_views/includes/og_subgroups_views_handler_argument_content.inc
og_subgroups_views_handler_argument_gid::query in modules/og_subgroups_views/includes/og_subgroups_views_handler_argument_gid.inc

File

modules/og_subgroups_views/includes/og_subgroups_views_handler_argument_gid.inc, line 38

Class

og_subgroups_views_handler_argument_gid

Code

function get_subgroup_tree() {
  og_subgroups_include('tree');
  $tree = array();
  $directions = array_filter($this->options['build_directions']);
  $arguments = explode(',', $this->argument);

  // Get all group IDs that are in the argument's family
  foreach ($arguments as $argument) {
    foreach ($directions as $direction) {

      // Build a group object to pass along
      $group = new stdClass();
      $group->nid = $argument;

      // Decide the function to use based on the direction
      $func = "og_subgroups_get_group_{$direction}";

      // Fetch the groups
      $groups = $func($group, $direction == 'children' ? FALSE : NULL);

      // Add the groups to an array
      foreach ($groups as $group) {
        $tree[] = $group->nid;
      }
    }
  }
  return !empty($tree) ? $tree : array(
    -1,
  );
}