public static function add($member_id, $date, $reason, $comment) { $member = Member::findByMemberId($member_id); $sql = "INSERT INTO " . self::$table . " ( member_id, date_end, reason, comment, game_id ) VALUES ( {$member_id}, '{$date}', '{$reason}', '{$comment}', {$member->game_id} )"; Flight::aod()->sql($sql)->one(); return array('success' => true); }
public function generate() { // header $division_structure = "[table='align:center,width: {$this->info_width}']"; $division_structure .= "[tr][td]"; // banner $division_structure .= "[center][img]http://puu.sh/kGjU9/4f331d1a99.jpg[/img][/center]\r\n"; /** * ------division leaders----- */ $division_structure .= "\r\n\r\n[center][size=5][color={$this->div_name_color}][b][i][u]Division Leaders[/u][/i][/b][/color][/size][/center]\r\n"; $division_structure .= "[center][size=4]"; $division_leaders = Division::findDivisionLeaders($this->game_id); foreach ($division_leaders as $player) { $player_name = Rank::convert($player->rank_id)->abbr . " " . $player->forum_name; $aod_url = Member::createAODlink(array('member_id' => $player->member_id, 'forum_name' => $player_name, 'color' => $this->division_leaders_color)); $division_structure .= "{$aod_url} - {$player->position_desc}\r\n"; } $division_structure .= "[/size][/center]\r\n\r\n"; /** * -----general sergeants----- */ $division_structure .= "[center][size=3][color={$this->platoon_pos_color}]General Sergeants[/color]\r\n"; $general_sergeants = Division::findGeneralSergeants($this->game_id); foreach ($general_sergeants as $player) { $player_name = Rank::convert($player->rank_id)->abbr . " " . $player->forum_name; $aod_url = Member::createAODlink(array('member_id' => $player->member_id, 'forum_name' => $player_name)); $division_structure .= "{$aod_url}\r\n"; } $division_structure .= "[/size][/center]"; $division_structure .= "[/td][/tr][/table]"; /** * ---------platoons---------- */ $division_structure .= "\r\n\r\n[table='align:center,width: {$this->players_width}']"; $platoons = $this->platoons; $i = 1; foreach ($platoons as $platoon) { $countMembers = Platoon::countPlatoon($platoon->id); if ($i == 1) { $division_structure .= "[tr]"; $division_structure .= "[td]"; } else { $division_structure .= "[td]"; } $division_structure .= "[size=5]{$platoon->name}[/size]\r\n\r\n"; // Legion Commander $player = Member::findByMemberId($platoon->leader_id); // is a Legion Commander assigned? if ($platoon->leader_id != 0) { $player_name = Rank::convert($player->rank_id)->abbr . " " . $player->forum_name; $aod_url = Member::createAODlink(array('member_id' => $player->member_id, 'forum_name' => $player_name, 'color' => $this->platoon_leaders_color)); $division_structure .= "[size=3][color={$this->platoon_pos_color}]Legion Commander[/color]\r\n{$aod_url}[/size]\r\n\r\n"; } else { $division_structure .= "[size=3][color={$this->platoon_pos_color}]Legion Commander[/color]\r\n[color={$this->platoon_leaders_color}]TBA[/color][/size]\r\n\r\n"; } // Regimental Leaders $squads = Squad::findAll($this->game_id, $platoon->id); foreach ($squads as $squad) { if ($squad->leader_id != 0) { $squad_leader = Member::findById($squad->leader_id); $player_name = Rank::convert($squad_leader->rank_id)->abbr . " " . $squad_leader->forum_name; $aod_url = Member::createAODlink(array('member_id' => $squad_leader->member_id, 'forum_name' => $player_name, 'color' => $this->squad_leaders_color)); $division_structure .= "[size=3][color={$this->platoon_pos_color}]Regimental Leader[/color]\r\n{$aod_url}[/size]\r\n\r\n"; $division_structure .= "[size=1]"; // direct recruits $recruits = arrayToObject(Member::findRecruits($squad_leader->member_id, $squad_leader->platoon_id, $squad->id, true)); if (count((array) $recruits)) { $division_structure .= "[list=1]"; foreach ($recruits as $player) { $player_name = Rank::convert($player->rank_id)->abbr . " " . $player->forum_name; $aod_url = Member::createAODlink(array('member_id' => $player->member_id, 'forum_name' => $player_name)); $division_structure .= "[*]{$aod_url}\r\n"; } $division_structure .= "[/list]"; } } else { $division_structure .= "[size=3][color={$this->platoon_pos_color}]Regimental Leader[/color]\r\n[color={$this->squad_leaders_color}]TBA[/color][/size]\r\n"; $division_structure .= "[size=1]"; } $division_structure .= "\r\n"; // squad members $squadMembers = arrayToObject(Squad::findSquadMembers($squad->id, true, $squad_leader->member_id)); if (count((array) $squadMembers)) { foreach ($squadMembers as $player) { $player_name = Rank::convert($player->rank_id)->abbr . " " . $player->forum_name; $aod_url = Member::createAODlink(array('member_id' => $player->member_id, 'forum_name' => $player_name)); $division_structure .= "{$aod_url}\r\n"; } } $division_structure .= "[/size]\r\n"; } $division_structure .= "\r\n\r\n"; if ($i % $this->num_columns == 0) { $division_structure .= "[/td][/tr][tr]"; } $division_structure .= "[/td]"; $i++; } // end last platoon $division_structure .= "[/tr][/table]\r\n\r\n"; /** * --------part timers-------- */ $i = 1; // header $division_structure .= "\r\n[table='align:center,width: {$this->info_width}']"; $division_structure .= "[tr][td]\r\n[center][size=3][color={$this->platoon_pos_color}][b]Part Time Members[/b][/color][/size][/center][/td][/tr]"; $division_structure .= "[/table]\r\n\r\n"; // players $division_structure .= "[table='align:center,width: {$this->info_width}']"; $division_structure .= "[tr][td]"; $partTimers = PartTime::find_all($this->game_id); foreach ($partTimers as $player) { if ($i % 20 == 0) { $division_structure .= "[/td][td]"; } $aod_url = Member::createAODlink(array('member_id' => $player->member_id, 'forum_name' => "AOD_" . $player->forum_name)); $division_structure .= "{$aod_url}\r\n"; $i++; } $division_structure .= "[/td]"; $division_structure .= "[/tr][/table]\r\n\r\n"; /** * -----------LOAS------------ */ if (count((array) LeaveOfAbsence::find_all($this->game_id))) { $i = 1; // header $division_structure .= "\r\n[table='align:center,width: {$this->info_width}']"; $division_structure .= "[tr][td]\r\n[center][size=3][color={$this->platoon_pos_color}][b]Leaves of Absence[/b][/color][/size][/center][/td][/tr]"; $division_structure .= "[/table]\r\n\r\n"; // players $division_structure .= "[table='align:center,width: {$this->info_width}']"; $loas = LeaveOfAbsence::find_all($this->game_id); foreach ($loas as $player) { $date_end = strtotime($player->date_end) < strtotime('now') ? "[COLOR='#FF0000']Expired " . formatTime(strtotime($player->date_end)) . "[/COLOR]" : date("M d, Y", strtotime($player->date_end)); $profile = Member::findByMemberId($player->member_id); $aod_url = Member::createAODlink(array('member_id' => $player->member_id, 'forum_name' => "AOD_" . $profile->forum_name)); $division_structure .= "[tr][td]{$aod_url}[/td][td]{$date_end}[/td][td]{$player->reason}[/td][/tr]"; $i++; } $division_structure .= "[/table]"; } $this->content = $division_structure; }
public static function _doUpdateMember() { // user attempting to make changes $respUser = User::find(intval($_SESSION['userid'])); $respMember = Member::find(intval($_SESSION['memberid'])); // member being changed $memberData = $_POST['memberData']; $member = Member::findByMemberId($memberData['member_id']); $user = User::findByMemberId(Member::findId($memberData['member_id'])); // only update values allowed by role if (!User::isDev()) { if ($respUser->role < 2) { unset($memberData['squad_id'], $memberData['position_id'], $memberData['platoon_id']); } if ($respUser->role < 3) { unset($memberData['platoon_id']); } } // only continue if we have permission to edit the user if (User::canEdit($memberData['member_id'], $respUser, $member) == true) { // don't log if user edits their own profile if ($respMember->member_id != $member->member_id) { UserAction::create(array('type_id' => 3, 'date' => date("Y-m-d H:i:s"), 'user_id' => $respMember->member_id, 'target_id' => $member->member_id)); } // validate recruiter if ($memberData['recruiter'] != 0 && !Member::exists($memberData['recruiter'])) { $data = array('success' => false, 'message' => "Recruiter id is invalid."); // validate squad leader / squad_id setting } else { if ($respMember->member_id != $member->member_id && $memberData['position_id'] == 5 && $memberData['squad_id'] != 0) { $data = array('success' => false, 'message' => "Squad leaders cannot be in a squad."); } else { // update member info Member::modify($memberData); } } // update games if (isset($_POST['played_games'])) { $games = $_POST['played_games']; foreach ($games as $game) { $params = new stdClass(); $params->member_id = $member->id; $params->game_id = $game; MemberGame::add($params); } } // update user if (isset($_POST['userData'])) { $userData = $_POST['userData']; // wish I had a better way to do this... yuck $userData['developer'] = isset($userData['developer']) ? $userData['developer'] : 0; if (!User::isDev()) { unset($userData['developer']); } if ($respMember->member_id != $member->member_id && $user->role >= $respUser->role && !User::isDev()) { $data = array('success' => false, 'message' => "You are not authorized to make that change."); } else { User::modify($userData); } } // update aliases if (isset($_POST['userAliases'])) { $aliases = $_POST['userAliases']; foreach ($aliases as $type => $value) { $type = Handle::findByName($type)->id; if ($value != '') { $params = array('member_id' => $memberData['id'], 'handle_type' => $type, 'handle_value' => trim($value), 'handle_account_id' => '0', 'invalid' => '0', 'invalid_date' => '0000-00-00'); $id = MemberHandle::hasAlias($type, $memberData['id']); if ($id) { $params['id'] = $id; MemberHandle::modify($params); } else { MemberHandle::add($params); } } } } } else { $data = array('success' => false, 'message' => 'You do not have permission to modify this player.'); } if (!isset($data['success'])) { $data = array('success' => true, 'message' => "Member information updated!"); } // print out a pretty response echo json_encode($data); }
/** * checks user's editing abilities for a specific member * @param int $mid the member id of the member being edited * @param int $user the user object of the user doing the editing * @param int $member the member object of the user doing the editing * @return boolean self explanatory */ public static function canEdit($mid, $myUser, $myMember) { $player = Member::findByMemberId($mid); $squad = $player->squad_id != 0 ? Squad::find($player->squad_id) : false; // is the user a dev or clan administrator? if (self::isDev()) { return true; // is the user the assigned squad leader? } elseif ($myUser->role == 1 && $squad && $squad->leader_id == $myMember->id) { return true; // is the user the platoon leader of the user? } elseif ($myUser->role == 2 && $myMember->platoon_id == $player->platoon_id) { return true; // is the user the division leader of the user? } elseif ($myUser->role == 3 && $myMember->game_id == $player->game_id) { return true; // is the user editing someone of a lesser role, or himself? } elseif ($mid == $myMember->member_id) { return true; } else { return false; } }
public function generate() { // header $division_structure = "[table='width: {$this->info_width}']"; $division_structure .= "[tr][td]"; // banner $division_structure .= "[center][img]http://i.imgur.com/iWpjGZG.png[/img][/center]\r\n"; /** * ------division leaders----- */ $division_structure .= "\r\n\r\n[center][size=5][color={$this->div_name_color}][b][i][u]Division Leaders[/u][/i][/b][/color][/size][/center]\r\n"; $division_structure .= "[center][size=4]"; $division_leaders = Division::findDivisionLeaders($this->game_id); foreach ($division_leaders as $leader) { $leader_name = Rank::convert($leader->rank_id)->abbr . " " . $leader->forum_name; $memberHandle = MemberHandle::findHandle($leader->id, $this->division->primary_handle); $leader->handle = $memberHandle->handle_value; $aod_url = "[url=" . CLANAOD . $leader->member_id . "]"; $bl_url = "[url=" . $memberHandle->url . $leader->handle . "][BL][/url]"; $division_structure .= "{$aod_url}[color={$this->division_leaders_color}]{$leader_name}[/url] {$bl_url}[/color] - {$leader->position_desc}\r\n"; } $division_structure .= "[/size][/center]\r\n\r\n"; /** * -----general sergeants----- */ $genSgts = Division::findGeneralSergeants($this->game_id); $division_structure .= "[center][size=3][color={$this->platoon_pos_color}]General Sergeants[/color]\r\n"; foreach ($genSgts as $sgt) { $sgt_name = Rank::convert($sgt->rank_id)->abbr . " " . $sgt->forum_name; $memberHandle = MemberHandle::findHandle($sgt->id, $this->division->primary_handle); $sgt->handle = $memberHandle->handle_value; $aod_url = "[url=" . CLANAOD . $sgt->member_id . "]"; $bl_url = "[url=" . $memberHandle->url . $sgt->handle . "][BL][/url]"; $division_structure .= "{$aod_url}{$sgt_name}[/url] {$bl_url}\r\n"; } $division_structure .= "[/size][/center]"; $division_structure .= "[/td][/tr][/table]"; /** * ---------platoons---------- */ $division_structure .= "\r\n\r\n[table='width: {$this->players_width}']"; $platoons = $this->platoons; $i = 1; foreach ($platoons as $platoon) { $countMembers = Platoon::countPlatoon($platoon->id); if ($i == 1) { $division_structure .= "[tr]"; $division_structure .= "[td]"; } else { $division_structure .= "[td]"; } $division_structure .= "[size=5][color={$this->platoon_num_color}]" . ordsuffix($i) . " Platoon[/color][/size] \r\n[i][size=3]{$platoon->name} [/size][/i]\r\n\r\n"; // platoon leaders $leader = Member::findByMemberId($platoon->leader_id); if ($platoon->leader_id != 0) { $memberHandle = MemberHandle::findHandle($leader->id, $this->division->primary_handle); $leader->handle = $memberHandle->handle_value; $aod_url = "[url=" . CLANAOD . $leader->member_id . "]"; $bl_url = "[url=" . $memberHandle->url . $leader->handle . "][BL][/url]"; $leader_name = Rank::convert($leader->rank_id)->abbr . " " . ucwords($leader->forum_name); $division_structure .= "{$aod_url}[size=3][color={$this->platoon_pos_color}]Platoon Leader[/color]\r\n[color={$this->platoon_leaders_color}]{$leader_name}[/color][/url] {$bl_url}[/size]\r\n\r\n"; } else { $division_structure .= "[size=3][color={$this->platoon_pos_color}]Platoon Leader[/color]\r\n[color={$this->platoon_leaders_color}]TBA[/color][/size]\r\n\r\n"; } // squad leaders $squads = Squad::findAll($this->game_id, $platoon->id); foreach ($squads as $squad) { if ($squad->leader_id != 0) { $leader = Member::findById($squad->leader_id); $memberHandle = MemberHandle::findHandle($leader->id, $this->division->primary_handle); $leader->handle = $memberHandle->handle_value; $aod_url = "[url=" . CLANAOD . $leader->member_id . "]"; $bl_url = "[url=" . $memberHandle->url . $leader->handle . "][BL][/url]"; $division_structure .= "[size=3][color={$this->platoon_pos_color}]Squad Leader[/color]\r\n{$aod_url}[color={$this->squad_leaders_color}]" . Rank::convert($leader->rank_id)->abbr . " {$leader->forum_name}[/color][/url] {$bl_url}[/size]\r\n\r\n"; $division_structure .= "[size=1]"; // direct recruits $recruits = arrayToObject(Member::findRecruits($leader->member_id, $leader->platoon_id, $squad->id, true)); if (count((array) $recruits)) { $division_structure .= "[list=1]"; foreach ($recruits as $recruit) { $memberHandle = MemberHandle::findHandle($recruit->id, $this->division->primary_handle); // does member have a member handle? if (count((array) $memberHandle)) { $recruit->handle = $memberHandle->handle_value; $bl_url = "[url=" . $memberHandle->url . $recruit->handle . "][BL][/url]"; $aod_url = "[url=" . CLANAOD . $recruit->member_id . "]"; $division_structure .= "[*]{$aod_url}" . Rank::convert($recruit->rank_id)->abbr . " {$recruit->forum_name}[/url]"; $division_structure .= "{$bl_url}\r\n"; } else { $division_structure .= " [color=red]XX[/color]\r\n"; } } $division_structure .= "[/list]"; } } else { $division_structure .= "[size=3][color={$this->platoon_pos_color}]Squad Leader[/color]\r\n[color={$this->squad_leaders_color}]TBA[/color][/size]\r\n"; $division_structure .= "[size=1]"; } $division_structure .= "\r\n"; // squad members $squadMembers = arrayToObject(Squad::findSquadMembers($squad->id, true, $leader->member_id)); if (count((array) $squadMembers)) { foreach ($squadMembers as $player) { $memberHandle = MemberHandle::findHandle($player->id, $this->division->primary_handle); $player->handle = $memberHandle->handle_value; $aod_url = "[url=" . CLANAOD . $player->member_id . "]"; $bl_url = "[url=" . $memberHandle->url . $player->handle . "][BL][/url]"; $division_structure .= "{$aod_url}" . Rank::convert($player->rank_id)->abbr . " {$player->forum_name}[/url] {$bl_url}\r\n"; } } $division_structure .= "[/size]\r\n"; } $division_structure .= "\r\n\r\n"; if ($i % $this->num_columns == 0) { $division_structure .= "[/td][/tr][tr]"; } $division_structure .= "[/td]"; $i++; } // end last platoon $division_structure .= "[/tr][/table]\r\n\r\n"; /** * --------part timers-------- */ $i = 1; // header $division_structure .= "\r\n[table='width: {$this->info_width}']"; $division_structure .= "[tr][td]\r\n[center][size=3][color={$this->platoon_pos_color}][b]Part Time Members[/b][/color][/size][/center][/td][/tr]"; $division_structure .= "[/table]\r\n\r\n"; // players $division_structure .= "[table='width: {$this->info_width}']"; $division_structure .= "[tr][td]"; $partTimers = PartTime::find_all($this->game_id); foreach ($partTimers as $player) { if ($i % 20 == 0) { $division_structure .= "[/td][td]"; } $bl_url = "[url=" . BATTLELOG . $player->ingame_alias . "][BL][/url]"; $aod_url = "[url=" . CLANAOD . $player->member_id . "]"; $division_structure .= "{$aod_url}AOD_{$player->forum_name}[/url] {$bl_url}\r\n"; $i++; } $division_structure .= "[/td]"; $division_structure .= "[/tr][/table]\r\n\r\n"; /** * -----------LOAS------------ */ $i = 1; // header $division_structure .= "\r\n[table='width: {$this->info_width}']"; $division_structure .= "[tr][td]\r\n[center][size=3][color={$this->platoon_pos_color}][b]Leaves of Absence[/b][/color][/size][/center][/td][/tr]"; $division_structure .= "[/table]\r\n\r\n"; // players $division_structure .= "[table='width: {$this->info_width}']"; $loas = LeaveOfAbsence::find_all($this->game_id); foreach ($loas as $player) { $date_end = strtotime($player->date_end) < strtotime('now') ? "[COLOR='#FF0000']Expired " . formatTime(strtotime($player->date_end)) . "[/COLOR]" : date("M d, Y", strtotime($player->date_end)); $aod_url = "[url=" . CLANAOD . $player->member_id . "]"; $profile = Member::findByMemberId($player->member_id); $division_structure .= "[tr][td]{$aod_url}" . Member::findForumName($profile->member_id) . "[/url][/td][td]{$date_end}[/td][td]{$player->reason}[/td][/tr]"; $i++; } $division_structure .= "[/table]"; $this->content = $division_structure; }
<div class='panel-heading'>Currently Active <?php echo Locality::run('Platoons', $division->id); ?> </div> <div class='list-group'> <?php $platoons = Platoon::find_all($division->id); ?> <?php if (count($platoons)) { ?> <?php foreach ($platoons as $platoon) { ?> <?php $leader = Member::findByMemberId($platoon->leader_id); ?> <a href='divisions/<?php echo $division->short_name; ?> /platoon/<?php echo $platoon->number; ?> ' class='list-group-item platoon' data-platoon-id="<?php echo $platoon->id; ?> "> <div class="platoon-target"><i class="fa fa-arrow-right fa-2x"></i></div> <h5 class='pull-right text-muted big-num count-animated'><?php echo Platoon::countPlatoon($platoon->id);
/** * @param $division_structure * @return string */ private function getLoas($division_structure) { if (count((array) LeaveOfAbsence::find_all($this->game_id))) { $i = 1; // header $division_structure .= "\r\n\r\n\r\n[table='align:center,width: 500']"; $division_structure .= "[tr][td]\r\n[center][size=3][b]Leaves of Absence[/b][/size][/center][/td][/tr]"; $division_structure .= "[/table]\r\n\r\n"; // players $division_structure .= "[table='align:center,width: 500']"; $loas = LeaveOfAbsence::find_all($this->game_id); foreach ($loas as $player) { $date_end = strtotime($player->date_end) < strtotime('now') ? "[COLOR='#FF0000']Expired " . formatTime(strtotime($player->date_end)) . "[/COLOR]" : date("M d, Y", strtotime($player->date_end)); $profile = Member::findByMemberId($player->member_id); $aod_url = Member::createAODlink(array('member_id' => $player->member_id, 'forum_name' => "AOD_" . $profile->forum_name)); $division_structure .= "[tr][td]{$aod_url}[/td][td]{$date_end}[/td][td]{$player->reason}[/td][/tr]"; $i++; } $division_structure .= "[/table]"; return $division_structure; } return $division_structure; }