/** * @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(); } }