function og_subgroups_get_family in Subgroups for Organic groups 5.3
Same name and namespace in other branches
- 5.4 og_subgroups.module \og_subgroups_get_family()
- 5 og_subgroups.module \og_subgroups_get_family()
1 call to og_subgroups_get_family()
File
- ./
og_subgroups.module, line 765 - Maintains a hierarchy of group/subgroup relationships.
Code
function og_subgroups_get_family($node, $relationship_type) {
$func = og_subgroups_get_ . $relationship_type;
$tree = array();
if (is_array($node->parents)) {
$parents = $node->parents;
}
else {
$parents = $node->og_groups;
}
if ($parents) {
foreach ($parents as $key => $value) {
//Build the first level of the tree
$tree[$value]['nid'] = $value;
unset($tree[$value]['title']);
$tree[$value]['title'] = $node->og_groups_names[$key];
//when the node is not already in node og_groups this results in a blank title
//build parents or children (or nothing)
if ($relationship_type != 'none') {
$tree[$value][$relationship_type] = $func($value);
//og_subgroups_get_parents or og_subgroups_get_children
}
if (!empty($tree[$value][$relationship_type])) {
foreach ($tree[$value][$relationship_type] as $this_member) {
//unset the parents from the first level of the tree
if ($this_member['nid'] != $tree[$value]['nid']) {
//Don't unset the parent from the first level -- BUT DO UNSET IT FROM ITS OWN PARENT
unset($tree[$this_member['nid']]);
}
}
}
}
}
return $tree;
}