예제 #1
0
 function load()
 {
     parent::load();
     $allianceId = intval($this->data['alliance_id']);
     if ($allianceId == 0 || !$this->hasAllianceSetRoles() || !isset($_GET['uid'])) {
         exit(0);
         return null;
     }
     $uid = intval($_GET['uid']);
     $m = new AllianceModel();
     $this->allianceData = $m->getAllianceData($allianceId);
     if (!$this->isMemberOfAlliance($uid)) {
         exit(0);
         return null;
     }
     if ($this->isPost()) {
         $roleName = isset($_POST['a_titel']) ? $_POST['a_titel'] : '';
         if (trim($roleName) == '') {
             $roleName = '.';
         }
         $roleNumber = 0;
         if (isset($_POST['e1'])) {
             $roleNumber |= ALLIANCE_ROLE_SETROLES;
         }
         if (isset($_POST['e2'])) {
             $roleNumber |= ALLIANCE_ROLE_REMOVEPLAYER;
         }
         if (isset($_POST['e3'])) {
             $roleNumber |= ALLIANCE_ROLE_EDITNAMES;
         }
         if (isset($_POST['e4'])) {
             $roleNumber |= ALLIANCE_ROLE_EDITCONTRACTS;
         }
         if (isset($_POST['e5'])) {
             $roleNumber |= ALLIANCE_ROLE_SENDMESSAGE;
         }
         if (isset($_POST['e6'])) {
             $roleNumber |= ALLIANCE_ROLE_INVITEPLAYERS;
         }
         $m->setPlayerAllianceRole($uid, $roleName, $roleNumber);
     }
     $row = $m->getPlayerAllianceRole($uid);
     if ($row == NULL) {
         exit(0);
         return null;
     }
     $this->playerName = $row['name'];
     $alliance_roles = trim($row['alliance_roles']);
     if ($alliance_roles == '') {
         $this->playerRoles = array('name' => '', 'roles' => 0);
     } else {
         list($rolesNumber, $roleName) = explode(' ', $alliance_roles, 2);
         $this->playerRoles = array('name' => $roleName == '.' ? '' : $roleName, 'roles' => $rolesNumber);
     }
     $m->dispose();
 }
예제 #2
0
 function load()
 {
     parent::load();
     $m = new AllianceModel();
     $allianceId = 0;
     $this->allianceData = NULL;
     if (isset($_GET['id']) && 0 < intval($_GET['id'])) {
         $allianceId = intval($_GET['id']);
         $this->allianceData = $m->getAllianceData($allianceId);
     }
     if ($this->allianceData == NULL) {
         $allianceId = intval($this->data['alliance_id']);
         if ($allianceId <= 0) {
             $this->hasAlliance = FALSE;
             return null;
         }
         $this->allianceData = $m->getAllianceData($allianceId);
     }
     $this->hasAlliance = TRUE;
     $this->fullView = $allianceId == intval($this->data['alliance_id']);
     $this->selectedTabIndex = 0;
     if ($this->fullView) {
         $this->selectedTabIndex = isset($_GET['t']) && is_numeric($_GET['t']) && 0 <= intval($_GET['t']) && intval($_GET['t']) <= 3 ? intval($_GET['t']) : 0;
         if ($this->selectedTabIndex == 1 && !$this->hasAllianceEditRole()) {
             $this->selectedTabIndex = 0;
         }
     }
     if ($this->isPost()) {
         if ($this->fullView && $this->selectedTabIndex == 1 && $this->hasAllianceEditRole()) {
             $newData = array('name' => isset($_POST['aname1']) && trim($_POST['aname1']) != '' ? $_POST['aname1'] : $this->allianceData['name'], 'name2' => isset($_POST['aname2']) && trim($_POST['aname2']) != '' ? $_POST['aname2'] : $this->allianceData['name2'], 'description1' => htmlspecialchars($_POST['be1']), 'description2' => htmlspecialchars($_POST['be2']));
             $m->editAllianceData(intval($this->data['alliance_id']), $newData, $this->allianceData['players_ids']);
             $m->dispose();
             $this->redirect('alliance.php');
             return null;
         }
     }
     if ($this->selectedTabIndex == 0 && isset($_GET['d']) && 0 < intval($_GET['d']) && $this->hasAllianceRemovePlayerRole() && $this->player->playerId != intval($_GET['d']) && $this->isMemberOfAlliance(intval($_GET['d']))) {
         $this->allianceData['players_ids'] = $m->removeFromAlliance(intval($_GET['d']), $allianceId, $this->allianceData['players_ids'], $this->allianceData['player_count']);
         --$this->allianceData['player_count'];
     } else {
         if ($this->selectedTabIndex == 2) {
             $lastReportsType = 0;
             if (isset($_GET['ac'])) {
                 if ($_GET['ac'] == 1) {
                     $lastReportsType = 1;
                 } else {
                     if ($_GET['ac'] == 2) {
                         $lastReportsType = 2;
                     }
                 }
             }
             $this->lastReports = $m->getLatestReports($this->allianceData['players_ids'], $lastReportsType);
         } else {
             if ($this->selectedTabIndex == 3) {
                 if (isset($_GET['a'])) {
                     switch ($_GET['a']) {
                         case 1:
                             if (!$this->hasAllianceInviteRoles()) {
                                 unset($_GET['a']);
                                 break;
                             }
                             $this->allianceData['players_invites'] = array();
                             if (trim($this->allianceData['invites_player_ids']) != '') {
                                 $invites = explode('', trim($this->allianceData['invites_player_ids']));
                                 foreach ($invites as $invite) {
                                     list($pid, $pname) = explode(' ', $invite, 2);
                                     $this->allianceData['players_invites'][$pid] = $pname;
                                 }
                             }
                             if ($this->isPost() && isset($_POST['a_name'])) {
                                 $pid = intval($m->getPlayerId($_POST['a_name']));
                                 if (0 < $pid) {
                                     if (!isset($this->allianceData['players_invites'][$pid])) {
                                         $this->invitesResult = 2;
                                         $this->allianceData['players_invites'][$pid] = $_POST['a_name'];
                                         $m->addAllianceInvites($pid, $allianceId);
                                     }
                                 } else {
                                     $this->invitesResult = 1;
                                 }
                             }
                             if (isset($_GET['d']) && 0 < intval($_GET['d']) && isset($this->allianceData['players_invites'][intval($_GET['d'])])) {
                                 unset($this->allianceData['players_invites'][intval($_GET['d'])]);
                                 $m->removeAllianceInvites(intval($_GET['d']), $allianceId);
                             }
                             break;
                         case 2:
                             if (!$this->hasAllianceEditContractRole()) {
                                 unset($_GET['a']);
                                 break;
                             }
                             $contracts_alliance_id = trim($this->allianceData['contracts_alliance_id']);
                             $contracts = array();
                             if ($contracts_alliance_id != '') {
                                 $contracts_alliance_idArr = explode(',', $contracts_alliance_id);
                                 foreach ($contracts_alliance_idArr as $item) {
                                     list($aid, $pendingStatus) = explode(' ', $item);
                                     $contracts[$aid] = $pendingStatus;
                                 }
                             }
                             $this->hasErrors = TRUE;
                             if (!$this->isPost()) {
                                 if (isset($_GET['d']) && 0 < intval($_GET['d']) && isset($contracts[$_GET['d']])) {
                                     unset($contracts[$_GET['d']]);
                                     $m->removeAllianceContracts($allianceId, intval($_GET['d']));
                                 }
                                 if (isset($_GET['c']) && 0 < intval($_GET['c']) && isset($contracts[$_GET['c']])) {
                                     $contracts[$_GET['c']] = 0;
                                     $m->acceptAllianceContracts($allianceId, intval($_GET['c']));
                                 }
                             } else {
                                 if (isset($_POST['a_name']) && trim($_POST['a_name']) != '') {
                                     $caid = intval($m->getAllianceId(trim($_POST['a_name'])));
                                     if (0 < $caid && !isset($contracts[$caid])) {
                                         $m->addAllianceContracts($allianceId, $caid);
                                         $contracts[$caid] = 1;
                                         $this->hasErrors = FALSE;
                                     }
                                 }
                             }
                             $this->contracts = $contracts;
                             break;
                         case 3:
                             if ($this->isPost()) {
                                 if (isset($_POST['pw']) && strtolower($this->data['pwd']) == strtolower(md5($_POST['pw']))) {
                                     $this->allianceData['players_ids'] = $m->removeFromAlliance($this->player->playerId, $allianceId, $this->allianceData['players_ids'], $this->allianceData['player_count']);
                                     --$this->allianceData['player_count'];
                                     $m->dispose();
                                     $this->redirect('alliance.php');
                                     return null;
                                 }
                                 $this->hasErrors = TRUE;
                             }
                     }
                 }
             }
         }
     }
     if ($this->selectedTabIndex == 0) {
         $contracts_alliance_id = trim($this->allianceData['contracts_alliance_id']);
         $this->contracts = array();
         if ($contracts_alliance_id != '') {
             $contracts_alliance_idArr = explode(',', $contracts_alliance_id);
             foreach ($contracts_alliance_idArr as $item) {
                 list($aid, $pendingStatus) = explode(' ', $item);
                 if ($pendingStatus == 0) {
                     $this->contracts[$aid] = $m->getAllianceName($aid);
                 }
             }
         }
         $this->allianceData['rank'] = $m->getAllianceRank($allianceId, $this->allianceData['score']);
         $result = $m->getAlliancePlayers($this->allianceData['players_ids']);
         $this->allianceData['players'] = array();
         while ($result != NULL && $result->next()) {
             $this->allianceData['players'][] = array('id' => $result->row['id'], 'name' => $result->row['name'], 'total_people_count' => $result->row['total_people_count'], 'alliance_roles' => $result->row['alliance_roles'], 'villages_count' => $result->row['villages_count'], 'lastLoginFromHours' => $result->row['lastLoginFromHours']);
         }
     }
     $m->dispose();
 }