aboutsummaryrefslogtreecommitdiff
path: root/modules/rudi/includes/common.class.php
diff options
context:
space:
mode:
Diffstat (limited to 'modules/rudi/includes/common.class.php')
-rw-r--r--modules/rudi/includes/common.class.php392
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&amp;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 '&nbsp;';
+ }
+ }
+ ?>
+ </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;
}
}