diff options
Diffstat (limited to 'modules/rudi/includes/common.class.php')
-rw-r--r-- | modules/rudi/includes/common.class.php | 392 |
1 files changed, 258 insertions, 134 deletions
diff --git a/modules/rudi/includes/common.class.php b/modules/rudi/includes/common.class.php index 7436863..2880afa 100644 --- a/modules/rudi/includes/common.class.php +++ b/modules/rudi/includes/common.class.php @@ -7,20 +7,61 @@ class Soldier { public function __construct() { - decho("Constructing " . get_class($this)); + decho("Constructing " . get_class($this) . " -> " . $this); } public function __destruct() { decho("Destructing " . get_class($this)); } + + public function __toString() + { + return $this->name; + } +} + +class Role +{ + public function __construct() + { + decho("Constructing " . get_class($this) . " -> " . $this); + } + + public function __destruct() + { + decho("Destructing " . get_class($this)); + } + + public function __toString() + { + return $this->role_name; + } +} + +class UnitInfo +{ + public function __construct() + { + decho("Constructing " . get_class($this) . " -> " . $this); + } + + public function __destruct() + { + decho("Destructing " . get_class($this)); + } + + public function __toString() + { + return $this->name; + } } class Award { public function __construct() { - decho("Constructing " . get_class($this)); + decho("Constructing " . get_class($this) . " -> " . $this); } public function __destruct() @@ -38,7 +79,7 @@ class AwardClass { public function __construct() { - decho("Constructing " . get_class($this)); + decho("Constructing " . get_class($this) . " -> " . $this); } public function __destruct() @@ -56,7 +97,7 @@ class Rank { public function __construct() { - decho("Constructing " . get_class($this)); + decho("Constructing " . get_class($this) . " -> " . $this); } public function __destruct() @@ -74,7 +115,7 @@ class Drill { public function __construct() { - decho("Constructing " . get_class($this)); + decho("Constructing " . get_class($this) . " -> " . $this); } public function __destruct() @@ -88,6 +129,60 @@ class Drill } } +class ServiceRecord +{ + public function __construct() + { + decho("Constructing " . get_class($this) . " -> " . $this); + } + + public function __destruct() + { + decho("Destructing " . get_class($this)); + } + + public function __toString() + { + return $this->name; + } +} + +class AwardRecord +{ + public function __construct() + { + decho("Constructing " . get_class($this) . " -> " . $this); + } + + public function __destruct() + { + decho("Destructing " . get_class($this)); + } + + public function __toString() + { + return $this->name; + } +} + +class CombatRecord +{ + public function __construct() + { + decho("Constructing " . get_class($this) . " -> " . $this); + } + + public function __destruct() + { + decho("Destructing " . get_class($this)); + } + + public function __toString() + { + return $this->name; + } +} + /** * does Stat actually need to exist? */ @@ -104,10 +199,12 @@ class RUDI_Common public function __construct() { - global $config; + global $config, $db; + $this->images_path = $config['rudi']['images_path']; - $this->db = new Bayonet_SQL(); - $this->link = $this->db->Connect($config['sql']['hostname'], $config['sql']['username'], $config['sql']['password']); + //$this->db = new RUDI_SQL(); + //$this->link = $this->db->Connect($config['sql']['hostname'], $config['sql']['username'], $config['sql']['password']); + $this->db = $db; $this->db->Select_db('thirdid_oc'); } @@ -192,37 +289,39 @@ class RUDI_Common protected function evalData($data) { - return $data ? $data : "N/A"; + if(is_array($data)) + return (count($data) < 1) ? true : false; + else + return $data ? $data : "N/A"; } protected function getCumulativeStats() { //$stats = array(); $result = $this->db->Query("SELECT platoon_id AS id, name FROM rudi_platoons"); - $stats['platoon'] = mysql_num_rows($result); + $stats['platoon'] = $this->db->Rows($result); $result = $this->db->Query("SELECT squad_id AS id, name FROM rudi_squads"); - $stats['squad'] = mysql_num_rows($result); + $stats['squad'] = $this->db->Rows($result); decho($stats['platoon']); decho($stats['squad']); - $this->db->Free($result); - + return $stats; } protected function getMembersOfPlatoon($id) { - $id = mysql_escape_string($id); - $result = $this->db->Query("SELECT platoon_id AS id FROM rudi_unit_members WHERE platoon_id = '$id'"); - $members = mysql_num_rows($result); - + $query = sprintf("SELECT platoon_id AS id FROM rudi_unit_members WHERE platoon_id = %d", (int)$id); + $result = $this->db->Query($query); + $members = $this->db->Rows($result); + return (int)$members; } protected function getMembersOfSquad($id) { - $id = mysql_escape_string($id); - $result = $this->db->Query("SELECT squad_id AS id FROM rudi_unit_members WHERE squad_id = '$id'"); + $query = sprintf("SELECT squad_id AS id FROM rudi_unit_members WHERE squad_id = %d", (int)$id); + $result = $this->db->Query($query); $members = mysql_num_rows($result); return (int)$members; @@ -230,20 +329,17 @@ class RUDI_Common protected function getSquadMembers($squad_id) { - //$squad_id = addslashes($squad_id); - $squad_id = mysql_escape_string($id); - $result = $this->db->Query("SELECT m.last_name, + $query = sprintf("SELECT m.last_name, m.first_name, r.shortname AS rank_short FROM rudi_unit_members AS m - LEFT OUTER JOIN rudi_ranks AS r ON r.rank_id = m.rank_id WHERE m.squad_id = '$squad_id' ORDER BY m.rank_id "); - while(($row = $this->db->FetchObject($result,'Soldier'))!=false) - { - $data[] = $row; - } - $this->db->Free($result); - - return $data; + LEFT OUTER JOIN rudi_ranks AS r ON r.rank_id = m.rank_id WHERE m.squad_id = %d ORDER BY m.rank_id ", + (int)$squad_id); + + $result = $this->db->Query($query); + $row = $this->db->FetchObject($result,'Soldier'); + + return $row; } /** @@ -255,21 +351,12 @@ class RUDI_Common */ protected function getRoles($member_id, $rank_id) { - $member_id = mysql_escape_string($member_id); - $query = - "SELECT r.role_id, " - ."r.name AS role_name " - ."FROM rudi_roles AS r " - ."LEFT OUTER JOIN rudi_roles_container AS rl ON rl.role_id = r.role_id " - ."RIGHT OUTER JOIN rudi_unit_members AS m ON m.member_id = rl.member_id " - ."WHERE m.member_id = '$member_id' ORDER BY r.name ASC"; + $data = NULL; + $query = sprintf("SELECT r.role_id, r.name AS role_name FROM rudi_roles AS r LEFT OUTER JOIN rudi_roles_container AS rl USING(role_id) INNER JOIN rudi_unit_members AS rm USING(member_id) WHERE rm.member_id = %d AND r.name IS NOT NULL ORDER BY r.role_id ASC", + (int)$member_id); $result = $this->db->Query($query); - while(($row = $this->db->FetchObject($result,'Soldier'))!=false) - { - $data[] = $row; - } - $this->db->Free($result); + $data = $this->db->FetchObject($result,'Role'); return $data; } @@ -316,16 +403,12 @@ class RUDI_Common "SELECT r.record_id, r.date_added, r.record_note " ."FROM rudi_service_record AS r " ."LEFT OUTER JOIN rudi_unit_members AS m ON m.member_id = r.member_id " - ."WHERE r.member_id = '%d' ORDER BY r.date_added DESC", - mysql_real_escape_string($member_id)); + ."WHERE r.member_id = %d ORDER BY r.date_added DESC", + (int)$member_id); $result = $this->db->Query($query); - while(($row = $this->db->FetchObject($result,'Soldier'))!=false) - { - $data[] = $row; - } - $this->db->Free($result); - + $data = $this->db->FetchObject($result,'ServiceRecord'); + return $data; } @@ -343,15 +426,12 @@ class RUDI_Common ."FROM rudi_award_record AS r " ."RIGHT OUTER JOIN rudi_awards AS a ON a.award_id = r.award_id " ."LEFT OUTER JOIN rudi_unit_members AS m ON m.member_id = r.member_id " - ."WHERE r.member_id = '%d' ORDER BY r.date_added DESC ", - mysql_real_escape_string($member_id)); + ."WHERE r.member_id = %d ORDER BY r.date_added DESC ", + (int)$member_id); $result = $this->db->Query($query); - while(($row = $this->db->FetchObject($result,'Soldier'))!=false) - { - $data[] = $row; - } - $this->db->Free($result); + $data = $this->db->FetchObject($result,'AwardRecord'); + return $data; } @@ -371,16 +451,12 @@ class RUDI_Common ."RIGHT OUTER JOIN rudi_war_stats AS u ON u.visit_unit_id = c.visitor_id " ."RIGHT OUTER JOIN rudi_war_units AS u1 ON u1.name " ."LEFT OUTER JOIN rudi_unit_members AS m ON m.member_id = c.member_id " - ."WHERE c.member_id = '%d' ORDER BY c.date DESC ", - mysql_real_escape_string($member_id)); + ."WHERE c.member_id = %d ORDER BY c.date DESC ", + (int)$member_id); $result = $this->db->Query($query); - while(($row = $this->db->FetchObject($result,'Soldier'))!=false) - { - $data[] = $row; - } - $this->db->Free($result); - + $data = $this->db->FetchObject($result,'CombatRecord'); + return $data; } @@ -397,12 +473,11 @@ class RUDI_Common ."CONCAT(m.last_name, \", \", m.first_name) AS name " ."FROM rudi_units AS u " ."RIGHT OUTER JOIN rudi_unit_members AS m ON m.member_id = u.leader_id " - ."WHERE u.unit_id = '%d' ", - mysql_real_escape_string($id)); + ."WHERE u.unit_id = %d ", + (int)$id); $result = $this->db->Query($query); $data = $this->db->FetchObject($result,'Soldier'); - $this->db->Free($result); return $data; } @@ -420,12 +495,11 @@ class RUDI_Common ."CONCAT(m.last_name, \", \", m.first_name) AS name " ."FROM rudi_platoons AS p " ."RIGHT OUTER JOIN rudi_unit_members AS m ON m.member_id = p.leader_id " - ."WHERE p.platoon_id = '%d' ", - mysql_real_escape_string($id)); + ."WHERE p.platoon_id = %d ", + (int)$id); $result = $this->db->Query($query); $data = $this->db->FetchObject($result,'Soldier'); - $this->db->Free($result); return $data; } @@ -443,12 +517,11 @@ class RUDI_Common ."CONCAT(m.last_name, \", \", m.first_name) AS name " ."FROM rudi_squads AS s " ."RIGHT OUTER JOIN rudi_unit_members AS m ON m.member_id = s.leader_id " - ."WHERE s.squad_id = '%d' ", - mysql_real_escape_string($id)); + ."WHERE s.squad_id = %d ", + (int)$id); $result = $this->db->Query($query); $data = $this->db->FetchObject($result,'Soldier'); - $this->db->Free($result); return $data; } @@ -466,12 +539,11 @@ class RUDI_Common ."CONCAT(m.last_name, \", \", m.first_name) AS name " ."FROM rudi_teams AS t " ."RIGHT OUTER JOIN rudi_unit_members AS m ON m.member_id = t.leader_id " - ."WHERE t.team_id = '%d' ", - mysql_real_escape_string($id)); + ."WHERE t.team_id = %d ", + (int)$id); $result = $this->db->Query($query); $data = $this->db->FetchObject($result,'Soldier'); - $this->db->Free($result); return $data; } @@ -517,8 +589,8 @@ class RUDI_Common "SELECT name " ."FROM rudi_units AS u " ."LEFT OUTER JOIN rudi_unit_members AS m ON m.unit_id = u.unit_id " - ."WHERE m.member_id = '%d' ", - mysql_real_escape_string($id)); + ."WHERE m.member_id = %d ", + (int)$id); $result = $this->db->Query($query); $data = $this->db->FetchObject($result,'Soldier'); @@ -538,11 +610,12 @@ class RUDI_Common "SELECT name " ."FROM rudi_platoons AS p " ."LEFT OUTER JOIN rudi_unit_members AS m ON m.platoon_id = p.platoon_id " - ."WHERE m.member_id = '%d' ", - mysql_real_escape_string($id)); + ."WHERE m.member_id = %d ", + (int)$id); $result = $this->db->Query($query); $data = $this->db->FetchObject($result,'Soldier'); + return $data; } @@ -557,8 +630,8 @@ class RUDI_Common $query = sprintf( "SELECT last_name " ."FROM rudi_unit_members AS m " - ."WHERE m.squad_id = '%d' ", - mysql_real_escape_string($id)); + ."WHERE m.squad_id = %d ", + (int)$id); $result = $this->db->Query($query); $data = $this->db->FetchObject($result,'Soldier'); @@ -579,17 +652,74 @@ class RUDI_Common ."CONCAT(m.last_name, \", \", m.first_name) AS name " ."FROM rudi_teams AS t " ."RIGHT OUTER JOIN rudi_unit_members AS m ON m.member_id = t.leader_id " - ."WHERE t.team_id = '%d' ", - mysql_real_escape_string($id)); + ."WHERE t.team_id = %d ", + (int)$id); $result = $this->db->Query($query); $data = $this->db->FetchObject($result,'Soldier'); return $data; } - + /** + * RUDI_Core::printRoster() + * + * @param int $unit_id + * @param int $leader_id + */ + public function printRoster($unit_id, $leader_id){ + foreach($this->data as $member){ + if($member->unit_id == $unit_id && $member->status_id < 4){ +?> + <tr> + <!-- Rank --> + <td class="roster"><img src="<?php echo "modules/rudi/images/ranks/small/{$member->rank_short}.png"; ?>" alt="<?php echo $member->rank_short; ?>" /></td> + <!-- Name --> + <td class="roster"><a href="?load=rudi&profile=<?php echo $member->member_id ?>"><?php echo $member->last_name . ', ' . $member->first_name; ?></a></td> + <!-- Roles --> + <td class="roster"> + <?php + decho(count($member->Roles) . ' roles attached to: ' . $member->last_name); + for($role = 0; $role < count($member->Roles); ++$role) + { + if($member->Roles[$role]->role_name) + { + //decho($role . " = (" . $member->Roles[$role]->role_name . ")"); + + echo $member->Roles[$role]->role_name; + if($role < count($member->Roles) - 1) echo ', '; + + echo ' '; + } + } + ?> + </td> + <!-- Weapon --> + <td class="roster"><?php echo $member->weapon_manufacturer . ' ' . $member->weapon_model; ?></td> + <!-- Status --> + <td class="roster"><?php echo $member->status; ?></td> + </tr> +<?php + } + } + } + /** + * RUDI_Core::displayUnitsRec() + * + * @param int $unit_id + */ + public function displayUnitsRec($unit_id){ + $result = $this->db->Query("SELECT * FROM `rudi_combat_units` WHERE `detachment` = '$unit_id'"); + $row = $this->db->FetchObject($result,'UnitInfo'); + foreach($row as $unit){ + echo "<tr><th colspan=\"5\">{$unit->name}</th></tr>"; + $this->printRoster($unit->unit_id, $unit->leader_id); + $this->displayUnitsRec($unit->unit_id); + } + } + public function Update($query_t = RUDI_PROFILE_BIG) { + decho(get_class($this) . "::" . __FUNCTION__ . "($query_t)"); $id = NULL; if(isset($_GET['profile'])) { @@ -611,6 +741,7 @@ class RUDI_Common ."m.image AS member_image, " ."m.location_city, " ."m.location_province, " + ."m.primary_mos, " ."r.rank_id, " ."r.image AS rank_image, " ."r.longname AS rank_long, " @@ -666,10 +797,14 @@ class RUDI_Common ."m.last_name, " ."m.member_id, " ."m.status_id, " + ."m.date_promotion, " + ."m.date_enlisted, " + ."m.primary_mos, " ."r.rank_id, " ."r.image AS rank_image, " ."r.longname AS rank_long, " ."r.shortname AS rank_short, " + ."r.weight AS rank_weight, " ."u.unit_id, " ."u.name AS unit_name, " ."p.platoon_id, " @@ -690,7 +825,7 @@ class RUDI_Common ."FROM rudi_unit_members AS m " ."LEFT OUTER JOIN rudi_weapons AS w ON w.weapon_id = m.weapon_id " - ."LEFT OUTER JOIN rudi_units AS u ON u.unit_id = m.unit_id " + ."LEFT OUTER JOIN rudi_combat_units AS u ON u.unit_id = m.cunit_id " ."LEFT OUTER JOIN rudi_squads AS s ON s.squad_id = m.squad_id " ."LEFT OUTER JOIN rudi_teams AS t ON t.team_id = m.team_id " ."LEFT OUTER JOIN rudi_platoons AS p ON p.platoon_id = m.platoon_id " @@ -700,33 +835,39 @@ class RUDI_Common if(!is_null($id)) { - $sql .= "WHERE m.member_id = '" . (int)$id . "' "; + $sql .= "WHERE m.member_id = " . (int)$id . " "; } - $sql .= "ORDER BY p.platoon_id,s.squad_id,t.team_id,r.rank_id DESC "; + $sql .= "ORDER BY r.weight DESC , m.date_promotion ASC, m.date_enlisted ASC"; $result = $this->db->Query($sql); $count = 0; - while(($row = $this->db->FetchObject($result,'Soldier'))!=false) + $row = $this->db->FetchObject($result,'Soldier'); + + foreach($row as $member) { - $count = $row->member_id; - $this->data[$row->member_id] = $row; - $this->data[$count]->Roles = $this->getRoles($row->member_id,$row->rank_id); + $count = $member->member_id; + $this->data[$member->member_id] = $member; + $this->data[$count]->Roles = $this->getRoles($member->member_id,$member->rank_id); + if(is_object($this->data[$count]->Roles)) + { + $this->data[$count]->Roles = array((object)$nothing); + } + if($query_t != RUDI_PROFILE_SMALL) { - $this->data[$count]->service_record = $this->getServiceRecord($row->member_id); - $this->data[$count]->award_record = $this->getAwardRecord($row->member_id); - $this->data[$count]->combat_record = $this->getCombatRecord($row->member_id); - $this->data[$count]->superior->unit = $this->getSuperiorUnit($row->unit_id); - $this->data[$count]->superior->platoon = $this->getSuperiorPlatoon($row->platoon_id); - $this->data[$count]->superior->squad = $this->getSuperiorSquad($row->squad_id); - $this->data[$count]->superior->team = $this->getSuperiorTeam($row->team_id); - $this->data[$count]->superior_next = $this->getSuperiorTrue($row->member_id); + $this->data[$count]->service_record = $this->getServiceRecord($member->member_id); + $this->data[$count]->award_record = $this->getAwardRecord($member->member_id); + $this->data[$count]->combat_record = $this->getCombatRecord($member->member_id); + $this->data[$count]->superior->unit = $this->getSuperiorUnit($member->unit_id); + $this->data[$count]->superior->platoon = $this->getSuperiorPlatoon($member->platoon_id); + $this->data[$count]->superior->squad = $this->getSuperiorSquad($member->squad_id); + $this->data[$count]->superior->team = $this->getSuperiorTeam($member->team_id); + $this->data[$count]->superior_next = $this->getSuperiorTrue($member->member_id); } - //++$count; - } - $this->db->Free($result); - + $count++; + } + return $this->data; } @@ -737,50 +878,37 @@ class RUDI_Common ."LEFT OUTER JOIN rudi_award_classes AS c ON c.class_id = a.class_id " ."ORDER BY c.class_id, a.award_id ASC"; $result = $this->db->Query($query); - while(($row = $this->db->FetchObject($result,'Award'))!=false) - { - $data[] = $row; - } - $this->db->Free($result); - - return $data; + $row = $this->db->FetchObject($result,'Award'); + return $row; } protected function getAwardClasses() { $query = "SELECT class_id, name FROM rudi_award_classes"; $result = $this->db->Query($query); - while(($row = $this->db->FetchObject($result,'AwardClass'))!=false) - { - $data[] = $row; - } - $this->db->Free($result); - - return $data; + $row = $this->db->FetchObject($result,'AwardClass'); + return $row; } protected function getRanks() { $query = "SELECT rank_id, shortname, longname, image FROM rudi_ranks ORDER BY weight DESC"; $result = $this->db->Query($query); - while(($row = $this->db->FetchObject($result,'Rank'))!=false) - { - $data[] = $row; - } - $this->db->Free($result); + $row = $this->db->FetchObject($result,'Rank'); - return $data; + return $row; } protected function getDrills($id = NULL) { if(!is_null($id)) { - $query = "SELECT * FROM rudi_drills + $query = sprintf("SELECT * FROM rudi_drills LEFT OUTER JOIN rudi_drills_record AS dr ON dr.drill_id = rudi_drills.drill_id RIGHT OUTER JOIN rudi_unit_members AS m ON m.member_id = dr.member_id LEFT OUTER JOIN rudi_statuses AS st ON st.status_id = m.status_i - WHERE rudi_drills.drill_id = '$id' ORDER BY date DESC"; + WHERE rudi_drills.drill_id = %d ORDER BY date DESC", + (int)$id); } else { @@ -788,13 +916,9 @@ class RUDI_Common } $result = $this->db->Query($query); - while(($row = $this->db->FetchObject($result,'Drill'))!=false) - { - $data[] = $row; - } - $this->db->Free($result); + $row = $this->db->FetchObject($result,'Drill'); - return $data; + return $row; } } |