Example #1
0
 /**
  * @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();
     }
 }