Example #1
0
 /**
  * @param array $get_array
  * @return string
  * @throws ProjectSecurityAccessDeniedException
  * @throws ProjectIDMissingException
  */
 public static function get_project_proceed($get_array)
 {
     global $project_security;
     if ($get_array) {
         $_GET = unserialize($get_array);
     }
     if ($_GET['project_id']) {
         if ($project_security->is_access(3, false) == true) {
             $project = new Project($_GET['project_id']);
             if ($project->is_current_status_fulfilled()) {
                 echo "1::;::";
             } else {
                 echo "0::;::";
             }
             $template = new HTMLTemplate("project/ajax/proceed.html");
             $project_template = new ProjectTemplate($project->get_template_id());
             $current_status_requirements = $project->get_current_status_requirements();
             $result = array();
             $counter = 0;
             if (is_array($current_status_requirements) and count($current_status_requirements) >= 1) {
                 foreach ($current_status_requirements as $key => $value) {
                     switch ($value['element_type']) {
                         case "item":
                             $amount = count($value['fulfilled']);
                             if ($value['display'] == true) {
                                 $result[$counter]['name'] = $value['name'];
                                 $result[$counter]['depends'] = false;
                                 if (is_array($value['fulfilled']) and count($value['fulfilled']) >= 1) {
                                     $result[$counter]['status'] = "ok";
                                 } else {
                                     if ($value['requirement'] != "optional") {
                                         $result[$counter]['status'] = "cancel";
                                     } else {
                                         $result[$counter]['status'] = "notice";
                                     }
                                 }
                                 $counter++;
                             }
                             if (is_array($value['sub_items']) and count($value['sub_items']) >= 1) {
                                 $result[$counter]['status'] = "line";
                                 $counter++;
                                 foreach ($value['sub_items'] as $sub_item_key => $sub_item_value) {
                                     foreach ($sub_item_value as $sub_sub_item_key => $sub_sub_item_value) {
                                         if ($sub_sub_item_value['element_type'] == "item") {
                                             $result[$counter]['depends'] = true;
                                             if ($value['fulfilled'][$sub_item_key]['name']) {
                                                 $result[$counter]['name'] = $sub_sub_item_value['name'] . " (" . $value['fulfilled'][$sub_item_key]['name'] . ")";
                                             } else {
                                                 $result[$counter]['name'] = $sub_sub_item_value['name'];
                                             }
                                             if (is_array($sub_sub_item_value['fulfilled'])) {
                                                 $result[$counter]['status'] = "ok";
                                             } else {
                                                 if ($sub_sub_item_value['requirement'] != "optional") {
                                                     $result[$counter]['status'] = "cancel";
                                                 } else {
                                                     $result[$counter]['status'] = "notice";
                                                 }
                                             }
                                             $counter++;
                                         }
                                     }
                                     $result[$counter]['status'] = "line";
                                     $counter++;
                                 }
                             }
                             break;
                         case "extension":
                             $result[$counter]['name'] = $value['name'];
                             $result[$counter]['depends'] = false;
                             if ($value['fulfilled'] == 1) {
                                 $result[$counter]['status'] = "ok";
                             } else {
                                 if ($value['requirement'] != "optional") {
                                     $result[$counter]['status'] = "cancel";
                                 } else {
                                     $result[$counter]['status'] = "notice";
                                 }
                             }
                             $counter++;
                             break;
                     }
                 }
             } else {
                 $result[$counter]['icon'] = "";
                 $result[$counter]['name'] = "No Requirements";
             }
             $template->set_var("status_action", $result);
             $template->output();
         } else {
             throw new ProjectSecurityAccessDeniedException();
         }
     } else {
         throw new ProjectIDMissingException();
     }
 }