function og_subgroups_group_tree_json in Subgroups for Organic groups 6
Generate a group hierarchy tree in JSON format
This is used by jQuery Treeview to load the tree via AJAX
Parameters
$node: The group node
1 string reference to 'og_subgroups_group_tree_json'
- og_subgroups_menu in ./
og_subgroups.module - Implementation of hook_menu().
File
- includes/
json.inc, line 16 - JSON callback functions for og subgroups
Code
function og_subgroups_group_tree_json($group) {
$json = new stdClass();
og_subgroups_include('tree');
// Make sure this is a group node
if (!og_is_group_type($group->type)) {
return drupal_json();
}
// Fetch the group tree
if (!($tree = og_subgroups_get_group_tree($group))) {
// If no tree, then no menu
return drupal_json();
}
// Generate a list of the groups parents
$parents = og_subgroups_get_group_parents($group);
// Iterate the tree to begin generating nested links
foreach ($tree as $branch) {
// If the branch has no children, end here
if (empty($branch->children)) {
return drupal_json();
}
$json->text = theme('og_subgroups_menu_tree_link', $group, $branch);
$json->expanded = TRUE;
// Recursively add the rest of the tree
if (!empty($branch->children)) {
$json->children = _og_subgroups_group_tree_branch_json($group, $branch->children, $parents);
}
}
return drupal_json(array(
$json,
));
}