예제 #1
0
 /**
  *  Scanansicht von einem Att
  **/
 function Attack_view()
 {
     if (!($attid = param_num("id")) || !($attplan = attack_get($attid))) {
         $this->_header();
     }
     $form = new formContainer();
     $attplan['isadmin'] = $this->userdata['uid'] == $attplan['owner'] || $this->_checkUserRights("attorga");
     if (!$attplan['isopen'] && !$attplan['isadmin']) {
         $this->_header();
     }
     $galalist = attack_gala_list($attid);
     // ziele vorhanden ?
     if ($galalist) {
         $list = array();
         foreach ($galalist as $item) {
             $list[] = array("value" => $item['gala'], "title" => $item['gala']);
         }
         $form->add(new formSelectBox("gala", "Galaxie", "numeric", $list, false));
         if ($_POST['send'] && $_POST['subaction'] == "changegala") {
             $form->submit();
             if (!$form->hasErrors()) {
                 $_SESSION['attplanfilter'][$attid]['gala'] = $form->get("gala");
             }
             $gala = $form->get("gala");
         } else {
             if ($_SESSION['attplanfilter'][$attid]['gala']) {
                 $form->select("gala", $_SESSION['attplanfilter'][$attid]['gala']);
                 $gala = $_SESSION['attplanfilter'][$attid]['gala'];
             } else {
                 $gala = $galalist[0]['gala'];
             }
         }
         $sids = target_list(array("gala" => $gala), "sid");
         $scanlist = listScans(array("sids" => $sids, "order" => "asc", "sort" => "koords", "hassektor" => true, "showattackscans" => true), &$pages, 1, 15);
         for ($i = 0; $i < count($scanlist); $i++) {
             $scanlist[$i]['backlink'] = "&backlink=" . urlencode("attplan.php?action=view&id=" . $attid . "#" . $scanlist[$i]['sid']);
             $scanlist[$i]['expand_backlink'] = "&backlink=" . urlencode("attplan.php?action=view&id=" . $attid . "&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 ($this->userdata['uid'] == $scanlist[$i]['uid'] || $this->_checkUserRights("attorga")) {
                     $scanlist[$i]['candelete'] = true;
                 }
                 if ($this->userdata['uid'] == $scanlist[$i]['uid']) {
                     $scanlist[$i]['reserveclass'] = "green";
                 } else {
                     $scanlist[$i]['reserveclass'] = "red";
                 }
             } else {
                 $scanlist[$i]['canreserve'] = true;
             }
             $scanlist[$i] = scan_format($scanlist[$i]);
         }
         $this->template->assign("scanlist", $scanlist);
         $this->template->assign("hastargets", true);
         $this->template->assign("selectedgala", $gala);
     }
     $form->registerVars($this->template);
     $this->template->assign("attplan", $attplan);
     $this->template->assign("type", "ziele");
     $this->show("attplan_view", "Angriffsplan");
 }
예제 #2
0
 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");
 }
예제 #3
0
 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');
 }