function get_accessible_sub_branch_by_path($path, $depth = -1, $include_parent = false, $normalize_expanded_parents = false, $class_id = null, $only_parents = false)
  {
    if($normalize_expanded_parents)
      return parent :: get_accessible_sub_branch_by_path($path, $depth, $include_parent, $normalize_expanded_parents, $class_id, $only_parents);

    $user =& user :: instance();

    $key = array('accessible_sub_branch',
                 'path' => rtrim($path, '/'),
                 'depth' => $depth,
                 'include_parent' => $include_parent,
                 'normalize_expanded_parents' => $normalize_expanded_parents,
                 'class_id' => $class_id,
                 'only_parents' => $only_parents,
                 'user_id' => $user->get_id(),
                 'user_groups' => $user->get_groups());

    $this->_use_cache_key($key, CACHE_REGISTRY_TREE_ACCESSIBLE_GROUP);

    return $this->_cache_callback('get_accessible_sub_branch_by_path',
                                  array($path, $depth, $include_parent, $normalize_expanded_parents, $class_id, $only_parents));
  }