--- og_subgroups_old.module 2008-08-26 18:00:52.000000000 +0530 +++ og_subgroups.module 2008-08-26 18:00:39.000000000 +0530 @@ -261,7 +261,27 @@ function og_subgroups_get_family($gid, $ * The operation */ function og_subgroups_get_eligable_groups($op) { - $eligable_groups = og_node_groups_distinguish(og_all_groups_options(), FALSE); + + //$eligable_groups = og_node_groups_distinguish(og_all_groups_options(), FALSE); + $group_options = og_all_groups_options(); + $eligable_groups = array('accessible' => array(), 'inaccessible' => array()); + if (empty($group_options)) { + // Do nothing. + } + else { + $placeholders = array_fill(0, count($group_options), '%d'); + $sql = 'SELECT n.nid FROM {node} n WHERE n.nid IN ('. implode(', ', $placeholders). ')'; + $result = db_query(db_rewrite_sql($sql), array_keys($group_options)); + while ($row = db_fetch_object($result)) { + $eligable_groups['accessible'][$row->nid]['title'] = $group_options[$row->nid]; + } + foreach ($group_options as $gid => $title) { + if (!in_array($gid, array_keys($eligable_groups['accessible']))) { + $eligable_groups['inaccessible'][$gid] = $gid; + } + } + } + $return = array(); switch ($op) { case 'accessibale':