/** * @throws ProjectIDMissingException * @throws ProjectSecuriyAccessDeniedException */ public static function structure() { global $project_security; if ($_GET['project_id']) { if ($project_security->is_access(1, false) == true) { $project = new Project($_GET['project_id']); $project_structure_array = $project->get_project_tree(); $template = new HTMLTemplate("project/structure.html"); if (is_array($project_structure_array) and count($project_structure_array) >= 1) { $result = array(); $counter = 0; foreach ($project_structure_array as $key => $value) { $project = new Project($value['id']); $project_security = new ProjectSecurity($value['id']); $project_owner = new User($project->get_owner_id()); $paramquery['username'] = $_GET['username']; $paramquery['session_id'] = $_GET['session_id']; $paramquery['nav'] = "project"; $paramquery['run'] = "detail"; $paramquery['project_id'] = $value['id']; $params = http_build_query($paramquery, '', '&'); $result[$counter]['link'] = $params; $result[$counter]['name'] = $project->get_name(); $result[$counter]['status'] = $project->get_current_status_name(); $result[$counter]['template'] = $project->get_template_name(); $result[$counter]['owner'] = $project_owner->get_full_name(false); $involved_array = $project_security->list_involved_users(); if (is_array($involved_array) and count($involved_array) >= 1) { foreach ($involved_array as $involved_key => $involved_value) { $involved_user = new User($involved_value); if ($result[$counter]['involved'] == "") { $result[$counter]['involved'] = $involved_user->get_full_name(false); } else { $result[$counter]['involved'] .= ", " . $involved_user->get_full_name(false); } } } else { $result[$counter]['involved'] = ""; } $subproject_paramquery = $_GET; $subproject_paramquery['run'] = "new_subproject"; $subproject_paramquery['id'] = $value['id']; unset($subproject_paramquery['nextpage']); $subproject_params = http_build_query($subproject_paramquery, '', '&'); $result[$counter]['add_subproject'] = $subproject_params; $result[$counter]['padding'] = $value['layer']; $counter++; } $template->set_var("structure", $result); } $template->output(); } else { throw new ProjectSecurityAccessDeniedException(); } } else { throw new ProjectIDMissingException(); } }