function getByHierarchyControlId($tree_id) { if ($tree_id == '') { return FALSE; } $this->getFastTreeObject()->setTree($tree_id); $children = $this->getFastTreeObject()->getAllChildren(NULL, 'RECURSE'); $ulf = new UserListFactory(); $hslf = new HierarchyShareListFactory(); $hslf->getByHierarchyControlId($tree_id); $shared_user_ids = array(); foreach ($hslf as $hierarchy_share) { $shared_user_ids[] = $hierarchy_share->getUser(); } if ($children !== FALSE) { foreach ($children as $object_id => $level) { if ($object_id !== 0) { $user_obj = $ulf->getById($object_id)->getCurrent(); unset($shared); if (in_array($object_id, $shared_user_ids) === TRUE) { $shared = TRUE; } else { $shared = FALSE; } $nodes[] = array('id' => $object_id, 'name' => $user_obj->getFullName(), 'level' => $level, 'shared' => $shared); } } if (isset($nodes)) { return $nodes; } } return FALSE; }