function incoming_fleetstatus() { if (!($fsid = param_num("id")) || !($status = fleetstatus_get($fsid))) { $this->_header(); } if ($status['uid']) { $this->_header("user.php?action=fleet&id=" . $status['uid'] . "&send"); } $page = param_num("page", 1); $form = new formContainer(); $form_params = array(); $form_params[] = array("value" => $this->session['id'], "name" => $this->session['name']); $form_params[] = array("value" => "fleetstatus", "name" => "action"); $form_params[] = array("value" => $page, "name" => "page"); $form_params[] = array("value" => 1, "name" => "send"); $form_params[] = array("value" => $fsid, "name" => "id"); if ($_SESSION['steps']['fleetstatus']) { $this->template->assign("message", $_SESSION['steps']['fleetstatus']); unset($_SESSION['steps']['fleetstatus']); } switch ($page) { // daten ändern case 1: $form->add(new formInput("eta", "Verbleibene Flugzeit (ETA)", "string", true, 255, true, "'^(?:(\\d+?):(\\d+?)|(\\d+?))\$'is")); $list = array(array("title" => "Flotte 1", "value" => 1), array("title" => "Flotte 2", "value" => 2)); $form->add(new formSelectBox("fleetnum", "Flotte", "numeric", $list, false)); $form->add(new formInput("orbit", "Zeit im Orbit", "string", true, 255, true, "'^(?:(\\d+?):(\\d+?)|(\\d+?))\$'is")); if ($_POST['send']) { $form->submit(); $eta = $form->getRegex("eta"); if (strlen($eta[1])) { $eta = $eta[1] * 60 + $eta[2]; } else { $eta = $eta[3]; } if ($eta < 0) { $eta = 0; } $time = $form->getRegex("orbit"); if (strlen($time[1])) { $orbittime = $time[1] * 60 + $time[2]; } else { $orbittime = $time[3]; } if ($orbittime < 0) { $orbittime = 0; } if ($eta == 0) { $orbittime = gnticktime($orbittime); } if (!$form->hasErrors()) { if ($form->get("fleetnum") != $status['fleetnum']) { fleetstatus_change_fleetnum($status['fsid'], $form->get("fleetnum")); } fleetstatus_update($fsid, array("arrival" => gnarrival($eta), "orbittime" => $orbittime)); $_SESSION['steps']['fleetstatus'] = "Taktikdaten geändert"; $this->_header("takscreen.php?action=fleetstatus&id={$fsid}&page={$page}&send"); } } else { if ($status['arrival']) { $eta = $status['arrival'] - time(); if ($eta <= 0) { if (isset($status['orbittime'])) { $orbittime = $status['orbittime'] * 60 + $eta; } $eta = 0; } else { $orbittime = $status['orbittime'] * 60; } $form->set("eta", $this->formattime($eta)); $form->set("orbit", $this->formattime($orbittime)); } if ($status['fleetnum']) { $form->select("fleetnum", $status['fleetnum']); } } break; // scan laden // scan laden case 2: $scan = getScan(array("gala" => $status['gala'], "pos" => $status['pos'])); if ($scan['hasunit'] || $scan['hasmili']) { $scantypes = array(); if ($scan['hasmili']) { $scantypes[] = "mili"; $list = array(array("title" => "Flotte 1", "value" => 1), array("title" => "Flotte 2", "value" => 2)); $form->add(new formSelectBox("fleet", "Flotte", "numeric", $list, false)); } if ($scan['hasunit']) { $scantypes[] = "unit"; } $form->add(new formRadio("scan", "Scan laden", "string", $scantypes)); if ($_POST['send']) { $form->submit(); if (!$form->hasErrors()) { if ($form->get("scan") == "unit") { // unit laden $updatefleetdata = fleet_get($scan['unit_fid']); $updatefleetdata['svs'] = $scan['unit_svs']; $updatefleetdata['prec'] = $scan['unit_prec']; $updatefleetdata['fleetnum'] = $status['fleetnum']; $message = "Einheitenscan"; } else { // mili laden $updatefleetdata = miliscan_fleet_get_bykoords($scan['gala'], $scan['pos'], $form->get("fleet")); $updatefleetdata['svs'] = $scan['mili_svs']; $updatefleetdata['prec'] = $scan['mili_prec']; $updatefleetdata['fleetnum'] = $form->get("fleet"); $message = "Militärscan Flotte " . $form->get("fleet"); } if ($form->get("fleetnum") != $updatefleetdata['fleetnum']) { fleetstatus_change_fleetnum($status['fsid'], $updatefleetdata["fleetnum"]); } fleetstatus_update_fleet($fsid, $updatefleetdata, $updatefleetdata['svs'], $updatefleetdata['prec']); $_SESSION['steps']['fleetstatus'] = $message . " wurde geladen"; $this->_header("takscreen.php?action=fleetstatus&id={$fsid}&page=2&send"); } } else { $form->select("scan", $scantypes[0]); if ($scan['hasmili']) { $form->select("fleet", $status['fleetnum']); } } $this->template->assign("scan", scan_format($scan)); } break; // manuelle flotteneingabe // manuelle flotteneingabe case 3: $checkfleet = array("jaeger" => "Jäger", "bomber" => "Bomber", "fregatten" => "Fregatten", "zerstoerer" => "Zerstörer", "kreuzer" => "Kreuzer", "schlachter" => "Schlachter", "traeger" => "Träger", "kleptoren" => "Kleptoren", "cancris" => "Cancris", "prec" => "Scangenauigkeit", "svs" => "Scanverstärker"); foreach ($checkfleet as $key => $value) { $form->add(new formInput($key, $value, "numeric")); } if ($_POST['send']) { $form->submit(); if (!$form->hasErrors()) { $updatefleetdata = array(); foreach ($checkfleet as $key => $value) { $updatefleetdata[$key] = $form->get($key); } fleetstatus_update_fleet($fsid, $updatefleetdata, $updatefleetdata['svs'], $updatefleetdata['prec']); $_SESSION['steps']['fleetstatus'] = "Flottendaten gespeichert"; $this->_header("takscreen.php?action=fleetstatus&id={$fsid}&page=3&send"); } } else { foreach ($checkfleet as $key => $value) { $form->set($key, $status[$key]); } } break; case 4: $form->add(new formInput("code", "Text", "string")); if ($_POST['send']) { $form->submit(); if (!$form->hasErrors()) { $result = parseWurstFleet($form->get("code")); if ($result !== false) { fleetstatus_update_fleet($fsid, $result, "0", "100"); $_SESSION['steps']['fleetstatus'] = "Flottendaten gespeichert"; $this->_header("takscreen.php?action=fleetstatus&id={$fsid}&page=4&send"); } else { $form->addError("Fehler beim Parsen"); $form->setError("code"); } } } } $form->registerVars($this->template); // baue manuelles flottenupdate formular if ($page == 3) { $formitems = array(); foreach ($checkfleet as $key => $value) { $formitems[] = array("value" => $form->smartyitems[$key]['value'], "title" => $form->smartyitems[$key]['title'], "name" => $key, "class" => $form->smartyitems[$key]['class']); } $this->template->assign("fleetupdateform", $formitems); } $this->template->assign(array("status" => $status, "page" => $page, "form_params" => $form_params)); $this->show('takscreen_fleetstatus', "Flottendaten"); }
function fleetstatus_delete($fsid) { $intern = fleetstatus_get($fsid); if (!$intern['uid'] && $intern['fid']) { fleet_delete($intern['fid']); } return query("delete from fleet_status where fsid = {$fsid}"); }