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 User_fleet_status() { $id = param_num("id"); if ($id) { $this->template->assign("id", $id); } else { $id = $this->userdata['uid']; } if (!($user = getUserByID($id)) || $user['aid'] != $this->userdata['aid']) { $this->_header(); } #information message, step 2 if ($_SESSION['steps']['fleetstatus']) { #unset step unset($_SESSION['steps']['fleetstatus']); $_SESSION['steps'] = $data; $this->forms['information']['url'] = $this->backtracking->backlink(); $this->forms['information']['title'] = "Flottenstatus updaten"; $this->forms['information']['message'] = "Flottenstatus aktualisiert"; $this->forms['information']['style'] = "green"; $this->show('message_information', "Flottenstatus updaten"); } $fleetnum = param_num("fleet"); $fleet = user_fleet_bynum($id, $fleetnum); if (!$fleet) { $this->_header("index.php"); } $form = new formContainer(); $form->add(new formInput("target", "Zielkoordinaten", "string", true, 10, true, "'^\\s*(\\d{1,4}):(\\d{1,2})\\s*\$'is")); $form->add(new formInput("eta", "Flugzeit (ETA)", "string", true, 10, false, "'^\\s*(?:(\\d{1,3})|(\\d{1,2}):(\\d{1,2}))\\s*\$'is")); $status_titles[] = array("title" => "Im Orbit", "value" => 0); $status_titles[] = array("title" => "Angriffsflug", "value" => 1); $status_titles[] = array("title" => "Verteidigung", "value" => 2); if (!$fleet['status']) { $status_titles[] = array("value" => 3, "title" => "Rückflug"); } else { if ($fleet['tgala'] && $fleet['tpos']) { $galastr = " von " . $fleet['tgala'] . ":" . $fleet['tpos']; } if ($fleet['status'] == 1) { $typestr = "Angriff"; } else { $typestr = "Verteidigung"; } $status_titles[] = array("title" => "Rückflug " . $typestr . $galastr, "value" => 3); } $form->add(new formSelectBox("status", "Flottenstatus", "numeric", $status_titles, false)); $orbit = new formInput("orbit", "Zeit im Orbit", "string", true, 10, false, "'^(?:(\\d+):(\\d+)|(\\d+))\$'is"); $defftype = new formSelectBox("defftype", "Verteidigung", "numeric", array(array("title" => "Galaintern (" . $this->formattime(270 * 60, true) . ")", "value" => 270), array("title" => "Allyintern (" . $this->formattime(300 * 60, true) . ")", "value" => 300), array("title" => "Meta (" . $this->formattime(330 * 60, true) . ")", "value" => 330), array("title" => "extern (" . $this->formattime(360 * 60, true) . ")", "value" => 360)), false); if ($_POST['send']) { $form->submit("status"); $data['status'] = $form->get("status"); if ($_POST['next_x']) { switch ($data['status']) { case 1: $form->add(&$orbit); $form->submit(array("target", "orbit", "eta")); $data['returntime'] = 450; break; case 2: $form->add(&$orbit); $form->add(&$defftype); $form->submit(array("target", "orbit", "defftype", "eta")); $data['returntime'] = $form->get("defftype"); break; case 3: $form->submit("eta"); } if (!$form->hasErrors()) { // save step if ($data['status'] == 3) { $eta = $form->getregex("eta"); if ($eta[1]) { $eta = $eta[1]; } else { $eta = $eta[2] * 60 + $eta[3]; } if ($eta < 0) { $eta = 0; } $data['arrival'] = gnarrival($eta); } if ($data['status'] == 1 || $data['status'] == 2) { $eta = $form->getregex("eta"); if ($eta[1]) { $eta = $eta[1]; } else { $eta = $eta[2] * 60 + $eta[3]; } $orbit = $form->getregex("orbit"); if ($orbit[1]) { $orbit = $orbit[1] * 60 + $orbit[2]; } else { $orbit = $orbit[3]; } if ($eta == 0) { $data['orbittime'] = gnticktime($orbit); $data['arrival'] = time(); } else { $data['arrival'] = gnarrival($eta); $data['orbittime'] = $orbit; } $target = $form->getRegex("target"); $data['tgala'] = $target[1]; $data['tpos'] = $target[2]; $data['return_flight'] = 0; } if ($data['status'] == 1 && $data['tgala'] && user_get_bypos($data['tgala'], $data['tpos'])) { $form->setError("target"); $form->addError("Ziel ist Metamuitglied"); } } if (!$form->hasErrors()) { $_SESSION['steps']['fleetstatus'] = 1; if ($data['status'] == 3) { $data['status'] = $fleet['status']; $data['tgala'] = $fleet['tgala']; $data['tpos'] = $fleet['tpos']; $data['return_flight'] = 1; } $data['fleetnum'] = $fleetnum; $data['gala'] = $user['gala']; $data['pos'] = $user['pos']; $data['fid'] = $fleet['fid']; if ($data['status'] || $data['return_flight']) { if ($fleet['fsid']) { fleetstatus_update($fleet['fsid'], $data); } else { #$check = fleetstatus_get_byfleetnum($user['gala'],$user['pos'],true); #if(count($check) >= 2) fleetstatus_delete($check[0]['fsid']); fleetstatus_add($data); } } else { if ($fleet['fsid']) { fleetstatus_delete($fleet['fsid']); } } $this->_header("user.php?action=fleetstatus&send"); } } else { if ($data['status'] == 1) { $form->add(&$orbit); } if ($data['status'] == 2) { $form->add(&$orbit); $form->add(&$defftype); } if ($data['status'] == 1) { if ($data['status'] == $fleet['status'] && !$fleet['return_flight']) { $form->set("orbit", $this->formattime($fleet['orbittime'] * 60)); if ($fleet['tgala']) { $form->set("target", "{$fleet['tgala']}:{$fleet['tpos']}"); } } else { $form->set("orbit", $this->formattime(75 * 60)); } } if ($data['status'] == 2) { if ($data['status'] == $fleet['status'] && !$fleet['return_flight']) { $defftype->select($fleet['returntime']); $form->set("orbit", $this->formattime($fleet['orbittime'] * 60)); if ($fleet['tgala']) { $form->set("target", $fleet['tgala'] . ":" . $fleet['tpos']); } } else { $form->set("orbit", $this->formattime(300 * 60)); $defftype->select(360); } } if (($fleet['status'] == 2 || $fleet['status'] == 1) && $data['status'] == 3 && !$fleet['return_flight']) { $eta = $fleet['arrival'] - time(); if ($eta < 0) { $eta = 0; } $form->set("eta", $this->formattime($fleet['returntime'] * 60 - $eta)); } if ($data['status'] == $fleet['status'] || $data['status'] == 3 && $fleet['return_flight']) { $form->set("eta", $this->formattime($fleet['arrival'] - time())); } } } else { if ($fleet['return_flight']) { $data['status'] = 3; } else { $data['status'] = $fleet['status']; if (($fleet['status'] == 1 || $fleet['status'] == 2) && $fleet['tgala']) { $form->set("target", $fleet['tgala'] . ":" . $fleet['tpos']); } } $form->select("status", $data['status']); #$form->set("status",$data['status']); if ($data['status'] == 1 || $data['status'] == 2) { $form->add(&$orbit); } if ($fleet['arrival']) { $eta = $fleet['arrival'] - time(); if ($eta < 0) { $eta_exact = 0; } else { $eta_exact = $eta; } $form->set("eta", $this->formattime($eta_exact)); } if ($data['status'] == 2) { if ($fleet['orbittime']) { if ($eta < 0) { $orbittime = $fleet['orbittime'] * 60 + $eta; } else { $orbittime = $fleet['orbittime'] * 60; } $form->set("orbit", $this->formattime($orbittime)); } } if ($data['status'] == 1) { #echo "eta: ".($eta/60)."<br>"; if ($fleet['orbittime']) { if ($eta < 0) { $orbittime = $fleet['orbittime'] * 60 + $eta; } else { $orbittime = $fleet['orbittime'] * 60; } $form->set("orbit", $this->formattime($orbittime)); } } if ($data['status'] == 2) { $form->add(&$defftype); $form->select("defftype", $fleet['returntime']); } } $form->registerVars(&$this->template); $this->template->assign("fleet", $fleetnum); $this->show("user_fleetstatus", "Flottenstatus updaten"); }
function Attack_edit() { $attid = param_num("id"); if (!$attid) { $this->_header(); } $attplan = attack_get($attid); if (empty($attplan)) { $this->_header(); } //rightcheck if ($this->userdata['uid'] != $attplan['owner'] && !$this->_checkUserRights("attorga")) { $this->_header(); } if ($_SESSION['steps']['editattack']) { unset($_SESSION['steps']['editattack']); $this->forms['information']['action'] = ""; $this->forms['information']['url'] = $this->backtracking->backlink(); $this->forms['information']['title'] = "Angriffsplan bearbeiten"; $this->forms['information']['message'] = "Daten wurden erfolgreich geändert!"; $this->forms['information']['style'] = "green"; $this->show('message_information', "Angriffsplan bearbeiten"); } $form = new formContainer(); $form->add(new formInput("title", "Titel", "string", true, 255)); $form->add(new formInput("descr", "Beschreibung", "string", true, null, true)); $form->add(new formInput("reserve_date", "Datum für die Reservierung", "date", false, 40, true, "'(\\d{1,2})\\.(\\d{1,2})\\.(\\d{2,4})'is")); $form->add(new formInput("reserve_time", "Startzeit für die Reservierung", "time", false, 40, true, "'(\\d{1,2}):(\\d{2})'is")); $form->add(new formRadio("hidden", "Plan verstecken", "numeric", array(1, 0))); if ($_POST['send']) { $form->submit(); if (!$form->hasErrors()) { if ($form->get("reserve_date")) { $date = $form->getregex("reserve_date"); $time = $form->getregex("reserve_time"); $reserve = mktime($time[1], $time[2], 0, $date[2], $date[1], $date[3]); } attack_edit($attid, $form->get("title"), $form->get("descr"), $reserve, $form->get("hidden")); $_SESSION['steps']['editattack'] = 1; $this->_header("attplan.php?action=edit&id={$attid}&send"); } } else { $form->select("hidden", $attplan['hidden']); $form->set("title", $attplan['title']); $form->set("descr", $attplan['descr']); $form->set("reserve_date", date("d.m.Y", $attplan['access_time'])); $form->set("reserve_time", date("H:i", $attplan['access_time'])); } $form->registerVars(&$this->template); $this->template->assign("attplan", $attplan); $this->show("attplan_edit", "Attplaner"); }
function _listScans($option) { $gala = param_num("gala"); $pos = param_num("pos"); #scandetails if ($gala && $pos) { $this->scan_details($gala, $pos); } #scanlist $page = param_num("page", 1); $rows = 20; $link_options = array(); if ($option == "targets") { $scanlistfilter =& $_SESSION['targetlistfilter']; $this->template->assign("showtargets", 1); $this->template->assign("scantitle", "Ziele suchen"); #zielsuche if ($_REQUEST['subaction'] == 'newsearch' && $scanlistfilter) { unset($_SESSION['targetlistfilter']); unset($scanlistfilter); } /* if ($_REQUEST['subaction'] == "search") { $scanlistfilter['exen'] = param_num("exen"); $scanlistfilter['punkte'] = param_num("punkte"); } */ if (!$scanlistfilter || $_POST['subaction'] == "search") { $form = new formContainer(); $form->add(new formInput("exen", "Exenmindestanzahl", "numeric", true, 10, true)); $form->add(new formInput("macht", "Machtmindestwert", "numeric", true, 10, true)); $form->add(new formCheckbox("hideold", "Alte Scans nicht berücksichtigen", "numeric", array(1), false)); if ($_POST['send']) { $form->submit(); if (!$form->hasErrors()) { if ($form->get("macht")) { $scanlistfilter['macht'] = $form->get("macht"); } if ($form->get("exen")) { $scanlistfilter['exen'] = $form->get("exen"); } $scanlistfilter['sort'] = "exen"; $scanlistfilter['order'] = "desc"; $scanlistfilter['hassektor'] = "1"; $scanlistfilter['hideold'] = $form->get("hideold"); $scanlistfilter['except_galas'] = getGalaList(true); $this->_header("scans.php?action=targets&send"); } } else { $form->select("hideold", 1); } $form->registerVars($this->template); $this->show('scan_target_form', 'Ziele suchen'); } #sortierung if ($_REQUEST['sort'] && $_REQUEST['order'] && $scanlistfilter) { $sort = trim($_REQUEST['sort']); $order = trim($_REQUEST['order']); if ($sort != 'koords' && $sort != 'exen') { $sort = 'koords'; } if ($order != "asc" && $order != "desc") { $order = "asc"; } $scanlistfilter['sort'] = $sort; $scanlistfilter['order'] = $order; } $link_options[] = "action=targets"; $link2 = "?action=targets"; #normale Scananzeige, galaweise } else { $scanlistfilter =& $_SESSION['scanlistfilter']; $this->template->assign("scantitle", "Scans"); if (!$scanlistfilter) { $scanlistfilter['gala'] = 1; $scanlistfilter['sort'] = "koords"; $scanlistfilter['order'] = "asc"; $scanlistfilter['hideold'] = 1; } #alte einblenden/ausblenden if (isset($_REQUEST["hideold"]) && is_numeric($_REQUEST["hideold"])) { $scanlistfilter['hideold'] = $_REQUEST["hideold"]; } $hideold = $scanlistfilter["hideold"]; if ($hideold) { $title = "Alle Anzeigen"; $subtitle = "Zeigt alle Scans an"; $param = 0; } else { $title = "Alte Ausblenden"; $subtitle = "Scans die älter als 1 Tag sind werden nicht angezeigt"; $param = 1; } $this->template->assign("hideoldtitle", $title); $this->template->assign("hideoldparam", $param); $this->template->assign("hideoldsubtitle", $subtitle); #neue gala anzeigen if ($gala = param_num("gala")) { $scanlistfilter['gala'] = $gala; } else { $gala = $scanlistfilter["gala"]; } if ($this->userdata["gid"] == 1) { $hideblock = false; } else { $hideblock = true; } $next = getNextGala($gala, $hideold, $hideblock); $prev = getPrevGala($gala, $hideold, $hideblock); if ($next && $prev) { #gala suche anzeigen $this->template->assign("showform", 1); } #zeigen beide auf die selbe, -> die aktuelle if ($next == $prev && $next == $gala) { unset($prev); unset($next); } $this->template->assign("prev", $prev); $this->template->assign("next", $next); #sortierung if ($_REQUEST['sort'] && $_REQUEST['order'] && $scanlistfilter) { $sort = trim($_REQUEST['sort']); $order = trim($_REQUEST['order']); if ($sort != 'koords' && $sort != 'exen') { $sort = 'koords'; } if ($order != "asc" && $order != "desc") { $order = "asc"; } $scanlistfilter['sort'] = $sort; $scanlistfilter['order'] = $order; } $link_options[] = "gala=" . $scanlistfilter['gala']; } #mili & news ausklappen $expand = param_num("expand"); #scans holen $this->forms['scanlist'][$scanlistfilter['sort']][$scanlistfilter['order']] = '_active'; $scanlist = listScans($scanlistfilter, &$pages, &$page, $rows); for ($i = 0; $i < count($scanlist); $i++) { $scanlist[$i]['backlink'] = "&backlink=" . urlencode("scans.php?" . join("&", $link_options) . "#" . $scanlist[$i]['sid']); $scanlist[$i]['expand_backlink'] = "&backlink=" . urlencode("scans.php?" . join("&", $link_options) . "&expand=" . $scanlist[$i]['sid'] . "#" . $scanlist[$i]['sid']); #mili oder news ausklappen if ($scanlist[$i]['sid'] == $expand) { $scanlist[$i]['expand'] = 1; } if ($scanlist[$i]['uid']) { if ($scanlist[$i]['uid'] == $this->userdata['uid']) { $scanlist[$i]['atter_class'] = "green"; } else { $scanlist[$i]['atter_class'] = "red"; } } $scanlist[$i] = scan_format($scanlist[$i]); } $this->forms['scanlist']['pages'] = showPageBar($page, $pages, "scans.php" . $link2, "page", "menu"); $this->forms['scanlist']['gala'] = $scanlistfilter['gala']; $this->template->assign('scanlist', $scanlist); $this->template->assign('page', $page); $this->show('scan_list', 'Scans'); }