diff --git a/system/libs/pot/OTS_Account.php b/system/libs/pot/OTS_Account.php index beed47dd..785dab3a 100644 --- a/system/libs/pot/OTS_Account.php +++ b/system/libs/pot/OTS_Account.php @@ -138,11 +138,32 @@ class OTS_Account extends OTS_Row_DAO implements IteratorAggregate, Countable */ public function create($name = NULL, $id = NULL) { - // saves blank account info - $this->db->exec('INSERT INTO `accounts` (' . (isset($id) ? '`id`,' : '') . (isset($name) ? '`name`,' : '') . '`password`, `email`, `created`) VALUES (' . (isset($id) ? $id . ',' : '') . (isset($name) ? $this->db->quote($name) . ',' : '') . ' \'\', \'\',' . time() . ')'); + if(isset($name)) { + $nameOrNumber = 'name'; + $nameOrNumberValue = $name; + } + else { + if (USE_ACCOUNT_NUMBER) { + $nameOrNumber = 'number'; + $nameOrNumberValue = $id; + $id = null; + } + else { + $nameOrNumber = null; + } + } - if(isset($name)) + // saves blank account info + $this->db->exec('INSERT INTO `accounts` (' . (isset($id) ? '`id`,' : '') . (isset($nameOrNumber) ? '`' . $nameOrNumber . '`,' : '') . '`password`, `email`, `created`) VALUES (' . (isset($id) ? $id . ',' : '') . (isset($nameOrNumber) ? $this->db->quote($nameOrNumberValue) . ',' : '') . ' \'\', \'\',' . time() . ')'); + + if(isset($name)) { $this->data['name'] = $name; + } + else { + if (USE_ACCOUNT_NUMBER) { + $this->data['number'] = $name; + } + } $lastInsertId = $this->db->lastInsertId(); if($lastInsertId != 0) { @@ -179,15 +200,26 @@ class OTS_Account extends OTS_Row_DAO implements IteratorAggregate, Countable * @param int $id Account number. * @throws PDOException On PDO operation error. */ - public function load($id, $fresh = false) + public function load($id, $fresh = false, $searchOnlyById = false) { if(!$fresh && isset(self::$cache[$id])) { $this->data = self::$cache[$id]; return; } + $numberColumn = 'id'; + if (!$searchOnlyById) { + $nameOrNumber = ''; + if (USE_ACCOUNT_NAME) { + $nameOrNumber = '`name`,'; + } else if (USE_ACCOUNT_NUMBER) { + $nameOrNumber = '`number`,'; + $numberColumn = 'number'; + } + } + // SELECT query on database - $this->data = $this->db->query('SELECT `id`, ' . ($this->db->hasColumn('accounts', 'name') ? '`name`,' : '') . '`password`, `email`, `blocked`, `rlname`, `location`, `country`, `web_flags`, ' . ($this->db->hasColumn('accounts', 'premdays') ? '`premdays`, ' : '') . ($this->db->hasColumn('accounts', 'lastday') ? '`lastday`, ' : ($this->db->hasColumn('accounts', 'premend') ? '`premend`,' : ($this->db->hasColumn('accounts', 'premium_ends_at') ? '`premium_ends_at`,' : ''))) . '`created` FROM `accounts` WHERE `id` = ' . (int) $id)->fetch(); + $this->data = $this->db->query('SELECT `id`, ' . $nameOrNumber . '`password`, `email`, `blocked`, `rlname`, `location`, `country`, `web_flags`, ' . ($this->db->hasColumn('accounts', 'premdays') ? '`premdays`, ' : '') . ($this->db->hasColumn('accounts', 'lastday') ? '`lastday`, ' : ($this->db->hasColumn('accounts', 'premend') ? '`premend`,' : ($this->db->hasColumn('accounts', 'premium_ends_at') ? '`premium_ends_at`,' : ''))) . '`created` FROM `accounts` WHERE `' . $numberColumn . '` = ' . (int) $id)->fetch(); self::$cache[$id] = $this->data; } @@ -306,6 +338,15 @@ class OTS_Account extends OTS_Row_DAO implements IteratorAggregate, Countable return $this->data['id']; } + public function getNumber() + { + if (isset($this->data['number'])) { + return $this->data['number']; + } + + return $this->data['id']; + } + public function getRLName() { if( !isset($this->data['rlname']) ) diff --git a/system/libs/pot/OTS_Player.php b/system/libs/pot/OTS_Player.php index 1f6a54c9..a32bed8a 100644 --- a/system/libs/pot/OTS_Player.php +++ b/system/libs/pot/OTS_Player.php @@ -602,7 +602,7 @@ class OTS_Player extends OTS_Row_DAO } $account = new OTS_Account(); - $account->load($this->data['account_id']); + $account->load($this->data['account_id'], false, true); return $account; }