Example #1
0
 function Incoming_adddeffer()
 {
     $id = param_num("id");
     if ($id && !($inc = getUserByID($id))) {
         $this->_header();
     }
     if ($_SESSION['steps']['adddeffer']) {
         #save step
         unset($_SESSION['steps']['adddeffer']);
         $_SESSION['steps'] = $data;
         $this->forms['information']['action'] = "";
         $this->forms['information']['url'] = $this->backtracking->backlink();
         $this->forms['information']['title'] = "Deffer hinzufügen";
         $this->forms['information']['message'] = "Deffer eingetragen";
         $this->forms['information']['style'] = "green";
         $this->show('message_information', "Deffer hinzufügen");
     }
     $form = new formContainer();
     $form->add(new formInput("tgala", "Zielgala", "numeric", true, 4));
     $form->add(new formInput("tpos", "Zielposition", "numeric", true, 2));
     $form->add(new formInput("gala", "Gala vom Deffer", "numeric", true, 4));
     $form->add(new formInput("pos", "Position vom Deffer", "numeric", true, 2));
     $list = array(array("title" => "Flotte 1", "value" => 1), array("title" => "Flotte 2", "value" => 2));
     $form->add(new formSelectBox("fleet", "Flotte", "numeric", $list, false));
     $form->add(new formInput("time", "Flugzeit", "string", true, 20, false, "'^(?:(\\d+?):(\\d+?)|(\\d+?))\$'is"));
     $list = array(array("title" => "extern (360)", "value" => 360), array("title" => "Meta intern (330)", "value" => 330), array("title" => "Allianz intern (300)", "value" => 300), array("title" => "Galaxie intern (270)", "value" => 270));
     $form->add(new formSelectBox("defftype", "Verteidigung", "numeric", $list, false));
     $form->add(new formInput("orbit", "Zeit im Orbit", "string", true, 20, false, "'^(?:(\\d+):(\\d+)|(\\d+))\$'is"));
     if ($_POST['send']) {
         $form->submit();
         $tgala = $form->get("tgala");
         $tpos = $form->get("tpos");
         $gala = $form->get("gala");
         $pos = $form->get("pos");
         #opfer existiert nicht
         if (!$form->hasErrors() && !($deffer = getUserByPos($tgala, $tpos))) {
             $form->addError("Member existiert nicht im System");
             $form->setError(array("tpos", "tgala"));
         }
         #kann sich net selber deff0rn
         if (!$form->hasErrors() && $tgala == $gala && $tpos == $pos) {
             $form->addError("Man kann sich nicht selber deffen");
             $form->setError(array("tgala", "tpos", "gala", "pos"));
         }
         #flotte schon eingetragen
         if (!$form->hasErrors() && $form->get("fleet") && ($data = fleetstatus_get_bykoords($gala, $pos, $fleet))) {
             $form->addError("Flotte ist bereits eingetragen");
             $form->setError(array("gala", "pos", "fleet"));
         }
         if (!$form->hasErrors() && ($check = fleetstatus_get_bykoords($gala, $pos)) && count($check) >= 2) {
             $form->addError("Es sind bereits 2 Einträge zu ({$gala}:{$pos}) vorhanden");
             $form->setError(array("gala", "pos", "fleet"));
         }
         if (!$form->hasErrors()) {
             $_SESSION['steps']['adddeffer'] = 1;
             $time = $form->getRegex("time");
             if (strlen($time[1])) {
                 $eta = $time[1] * 60 + $time[2];
             } else {
                 $eta = $time[3];
             }
             $time = $form->getRegex("orbit");
             if (strlen($time[1])) {
                 $orbit = $time[1] * 60 + $time[2];
             } else {
                 $orbit = $time[3];
             }
             if ($eta == 0) {
                 $orbit = gnticktime($orbit);
             }
             deffer_add($gala, $pos, $tgala, $tpos, $form->get("fleet"), $form->get("defftype"), $orbit, $eta);
             $this->_header("takscreen.php?action=adddeffer&send");
         }
         $this->template->assign("errors", $errors);
         $this->template->assign("defftype" . $items['defftype']['value'], "selected");
         $this->template->assign("tick" . $ticks, "selected");
     } else {
         if ($inc) {
             $form->set("gala", $this->userdata['gala']);
             $form->set("pos", $this->userdata['pos']);
             $form->set("tgala", $inc['gala']);
             $form->set("tpos", $inc['pos']);
             if ($inc['gala'] == $this->userdata['gala']) {
                 $form->select("defftype", 270);
                 $form->set("time", $this->formattime(270 * 60));
             } elseif ($inc['aid'] == $this->userdata['aid']) {
                 $form->select("defftype", 300);
                 $form->set("time", $this->formattime(300 * 60));
             } else {
                 $form->select("defftype", 330);
                 $form->set("time", $this->formattime(330 * 60));
             }
             if ($this->userdata['fleettype'] == 1 || $this->userdata['fleettype'] == 3 || $this->userdata['fleettype'] == 0) {
                 $form->select("fleet", 1);
             } else {
                 $status = fleetstatus_get_byfleetnum($this->userdata['gala'], $this->userdata['pos']);
                 if (!$status || count($status) == 2 || $status[0]['fleetnum'] == 1) {
                     $form->select("fleet", 2);
                 } else {
                     $form->select("fleet", 1);
                 }
             }
         } else {
             $form->select("defftype", 330);
             $form->set("time", $this->formattime(330 * 60));
         }
         $form->set("orbit", $this->formattime(300 * 60));
     }
     $form->registerVars($this->template);
     $this->show('takscreen_deffer_add', "Deffer hinzufügen");
 }
Example #2
0
 /**
  \brief User hinzufügen
 
  Fügt eines User hinzu.
 */
 function User_add()
 {
     #check rights
     $rank = $this->userdata['rights']['useredit']['rank'];
     if (!$rank) {
         #no permission
         $this->_header("", "no permission");
     }
     $page = param_num("page", 1);
     $id = param_num("id");
     $data = $_SESSION['steps'];
     #information message, step 2
     if ($data['adduser']) {
         if ($id) {
             $return = getUserByID($id);
         }
         if ($return) {
             $this->forms['information']['url'] = "admin.php?action=showdetails&id=" . $return['uid'] . "&force";
         } else {
             $this->forms['information']['url'] = $this->backtracking->backlink();
         }
         #save step
         unset($data['adduser']);
         $_SESSION['steps'] = $data;
         $this->forms['information']['action'] = "userdetails";
         $this->forms['information']['title'] = "Benutzer hinzufügen";
         $this->forms['information']['message'] = "Erfolgreich hinzugefügt";
         $this->forms['information']['style'] = "green";
         $this->show('message_information', "Benutzer hinzufügen");
     }
     #formular send
     if ($this->userdata['rights']['changegroup']) {
         $grouplist = getGroupList($this->userdata['rights']['changegroup']['rank']);
         $this->template->assign("changegroup", 1);
     }
     if ($rank == 1) {
         $allylist = getAllyList();
     } else {
         $this->template->assign("ally", $this->userdata['tag']);
     }
     $this->template->assign("rank", $rank);
     $galalist = array();
     if ($_REQUEST['send']) {
         $items['nickname']['value'] = param_str("nickname", true);
         $items['password']['value'] = param_str("password", true);
         $items['ircauth']['value'] = param_str("ircauth", true);
         $items['login']['value'] = param_str("login", true);
         $items['gala']['value'] = param_num("gala", null, true);
         $items['pos']['value'] = param_num("pos", null, true);
         $items['gala']['value'] = param_num("gala", 0, true);
         if ($rank == 1) {
             $items['aid']['value'] = param_num("ally", 0, true);
             #check allyid
             if ($items['aid']['value']) {
                 $ally = 0;
                 for ($i = 0; $i < count($allylist); $i++) {
                     if ($items['aid']['value'] == $allylist[$i]['aid']) {
                         $ally =& $allylist[$i];
                         $ally['selected'] = "selected";
                         break;
                     }
                 }
             }
             if (!$ally) {
                 $this->_header("", "Ungültige Allianzid!");
             }
         } else {
             $items['aid']['value'] = $this->userdata['aid'];
         }
         if ($rank < 3) {
             $galalist = getGalaListbyAlly($items['aid']['value']);
             if (!$galalist) {
                 $errors[] = "Die Allianz hat keine Galaxien!";
                 $galalist[] = array("gala" => "keine");
             }
         } else {
             $items['gala']['value'] = $this->userdata['gala'];
             $this->template->assign("gala", $this->userdata['gala']);
         }
         #auf weiter geklickt
         if ($_REQUEST['next_x']) {
             if (!$items['login']['value']) {
                 $items['login']['bgrd'] = '_error';
                 $errors[] = "Login darf nicht leer sein!";
             }
             if (!$items['nickname']['value']) {
                 $items['nickname']['bgrd'] = '_error';
                 $errors[] = "Nickname darf nicht leer sein!";
             }
             if (!$items['password']['value']) {
                 $items['password']['bgrd'] = '_error';
                 $errors[] = "Password darf nicht leer sein!";
             }
             if (!$items['pos']['value']) {
                 $items['pos']['bgrd'] = '_error';
                 $errors[] = "Position leer oder ungültig!";
             }
             if ($items['nickname']['value'] && getUserByNick($items['nickname']['value'])) {
                 $items['nickname']['bgrd'] = '_error';
                 $errors[] = "User existiert bereits!";
             }
             if ($items['login']['value'] && getUserByLogin($items['login']['value'])) {
                 $items['login']['bgrd'] = '_error';
                 $errors[] = "Login existiert bereits!";
             }
             if ($this->userdata['rights']['changegroup']) {
                 #check gid
                 $items['gid']['value'] = param_num("group", 0, true);
                 if ($items['gid']['value']) {
                     $group = 0;
                     for ($i = 0; $i < count($grouplist); $i++) {
                         if ($items['gid']['value'] == $grouplist[$i]['gid']) {
                             $group =& $grouplist[$i];
                             $group['selected'] = "selected";
                             break;
                         }
                     }
                     if (!$group) {
                         $this->_header("", "Ungültige Gruppe, gid!");
                     }
                 }
             } else {
                 $items['gid']['value'] = 0;
             }
             #check galaid
             if ($items['gala']['value'] && $rank < 3) {
                 $galaxy = 0;
                 for ($i = 0; $i < count($galalist); $i++) {
                     if ($items['gala']['value'] == $galalist[$i]['gala']) {
                         $galaxy =& $galalist[$i];
                         $galaxy['selected'] = "selected";
                         break;
                     }
                 }
                 if (!$galaxy) {
                     $this->_header("", "Ungültige Galaid!");
                 }
             }
             if (!$errors) {
                 $chkuser = getUserByPos($items['gala']['value'], $items['pos']['value']);
                 if ($chkuser) {
                     $errors[] = "User existiert bereits, <a href=\"admin.php?action=userdetails&id=" . $chkuser['uid'] . "\">" . $chkuser['nick'] . " (" . $chkuser['gala'] . ":" . $chkuser['pos'] . ")</a>";
                     $items['pos']['bgrd'] = '_error';
                 }
             }
             if (!$errors) {
                 #save step
                 $data['adduser'] = 1;
                 $_SESSION['steps'] = $data;
                 $id = addUser($items['nickname']['value'], $items['login']['value'], $items['password']['value'], $items['gid']['value'], $items['gala']['value'], $items['pos']['value'], $items['ircauth']['value']);
                 addToLogfile("User " . $items['nickname']['value'] . " hinzugefügt", "Admin", $this->userdata['uid']);
                 $this->_header("admin.php?action=adduser&id={$id}&send");
             }
         }
         $this->template->assign("errors", $errors);
     } else {
         if ($rank == 1) {
             $galalist = getGalaListbyAlly($allylist[0]['aid']);
             if (!$galalist) {
                 $errors[] = "Die Allianz hat keine Galaxien!";
                 $this->template->assign("errors", $errors);
                 $galalist[] = array("gala" => "keine");
             }
         } elseif ($rank == 2) {
             $galalist = getGalaListbyAlly($this->userdata['aid']);
             if (!$galalist) {
                 $errors[] = "Die Allianz hat keine Galaxien!";
                 $this->template->assign("errors", $errors);
                 $galalist[] = array("gala" => "keine");
             }
         } elseif ($rank == 3) {
             $this->template->assign("gala", $this->userdata['gala']);
         }
     }
     if (!$items['ircauth']['value']) {
         $items['ircauth']['bgrd'] = "_optional";
     }
     $this->template->assign("items", $items);
     $this->template->assign("galalist", $galalist);
     $this->template->assign("allylist", $allylist);
     $this->template->assign("grouplist", $grouplist);
     $this->show('user_add_form', "Benutzer hinzufügen");
 }
Example #3
0
function fleetstatus_recall($fsid)
{
    $status = fleetstatus_get($fsid);
    if ($status['uid']) {
        // interne flotte
        if ($status['fleetnum'] && $status['arrival']) {
            $eta = $status['arrival'] - time();
            if ($eta < 0) {
                $eta = 0;
            }
            $eta = floor($eta / 60);
            $data = array();
            $data['orbittime'] = "";
            $data['returntime'] = "";
            $data['arrival'] = gnarrival($status['returntime'] - $eta);
            $data['return_flight'] = 1;
            fleetstatus_update($fsid, $data);
        } else {
            fleetstatus_delete($fsid);
        }
    } else {
        // externe flotte
        fleetstatus_delete($fsid);
        if ($status['fid']) {
            fleet_delete($status['fid']);
        }
    }
    //letzter atter recallt ?
    if ($status['status'] == 1 && !fleetstatus_get_bytarget($status['tgala'], $status['tpos'], 1)) {
        $user = getUserByPos($status['tgala'], $status['tpos']);
        user_set_safe($user['uid'], 0);
    }
}