You are here

function og_subgroups_tree in Subgroups for Organic groups 5.3

Same name and namespace in other branches
  1. 5.4 og_subgroups.module \og_subgroups_tree()
  2. 5 og_subgroups.module \og_subgroups_tree()
1 call to og_subgroups_tree()
og_subgroups_page in ./og_subgroups.module

File

./og_subgroups.module, line 682
Maintains a hierarchy of group/subgroup relationships.

Code

function og_subgroups_tree($children, $depth = 0) {
  global $user;
  if ($depth == 0) {
    drupal_add_js(drupal_get_path('module', 'og_subgroups') . '/og_subgroups.js');
    $togo = "<ul class=collapsible>";
  }
  else {
    $togo = "<ul>";
  }
  foreach ($children as $cid => $cname) {
    $show_members = _og_subgroups_can_view_members($cid);
    if ($depth == 0) {
      $link = '<span><a href="#">' . $cname . '</a></span>';
      if ($show_members) {
        $link .= ' ' . l('[' . t('list all members') . ']', 'node/' . $cid . '/view/members');
      }
      $togo .= '<li>' . $link;
      $togo .= og_subgroups_tree(og_subgroups_get_children($cid), $depth + 1);
      if ($show_members) {
        $togo .= og_subgroups_make_list(og_subgroups_get_users('links', $cid, 0));
      }
      $togo .= '</li>';
    }
    else {
      $link = '<span><a href="#">' . $cname . '</a></span>';
      $link .= ' ' . l('[' . t('view this group') . ']', 'node/' . $cid);
      $togo .= '<li>' . $link;
      $togo .= og_subgroups_tree(og_subgroups_get_children($cid), $depth + 1);
      if ($show_members) {
        $togo .= og_subgroups_make_list(og_subgroups_get_users('links', $cid, 0), $depth);
      }
      $togo .= '</li>';
    }
  }
  $togo .= "</ul>";
  return $togo;
}