/** * @param int $uID * @param boolean $login * @return User */ public static function getByUserID($uID, $login = false) { $db = Loader::db(); $v = array($uID); $q = "SELECT uID, uName, uIsActive, uLastOnline, uTimezone, uDefaultLanguage FROM Users WHERE uID = ?"; $r = $db->query($q, $v); if ($r) { $row = $r->fetchRow(); $nu = new User(); $nu->uID = $row['uID']; $nu->uName = $row['uName']; $nu->uIsActive = $row['uIsActive']; $nu->uDefaultLanguage = $row['uDefaultLanguage']; $nu->uLastLogin = $row['uLastLogin']; $nu->uTimezone = $row['uTimezone']; $nu->uGroups = $nu->_getUserGroups(true); if ($login) { $_SESSION['uID'] = $row['uID']; $_SESSION['uName'] = $row['uName']; $_SESSION['uBlockTypesSet'] = false; $_SESSION['uGroups'] = $nu->uGroups; $_SESSION['uLastOnline'] = $row['uLastOnline']; $_SESSION['uTimezone'] = $row['uTimezone']; $_SESSION['uDefaultLanguage'] = $row['uDefaultLanguage']; $nu->recordLogin(); } } return $nu; }
/** Return an User instance given its id (or null if it's not found) * @param int $uID The id of the user * @param boolean $login = false Set to true to make the user the current one * @param boolean $cacheItemsOnLogin = false Set to true to cache some items when $login is true * @return User|null */ public static function getByUserID($uID, $login = false, $cacheItemsOnLogin = true) { $db = Loader::db(); $v = array($uID); $q = "SELECT uID, uName, uIsActive, uLastOnline, uTimezone, uDefaultLanguage FROM Users WHERE uID = ? LIMIT 1"; $r = $db->query($q, $v); $row = $r ? $r->FetchRow() : null; $nu = null; if ($row) { $nu = new User(); $nu->uID = $row['uID']; $nu->uName = $row['uName']; $nu->uIsActive = $row['uIsActive']; $nu->uDefaultLanguage = $row['uDefaultLanguage']; $nu->uLastLogin = $row['uLastLogin']; $nu->uTimezone = $row['uTimezone']; $nu->uGroups = $nu->_getUserGroups(true); $nu->superUser = $nu->getUserID() == USER_SUPER_ID; if ($login) { User::regenerateSession(); $_SESSION['uID'] = $row['uID']; $_SESSION['uName'] = $row['uName']; $_SESSION['uBlockTypesSet'] = false; $_SESSION['uGroups'] = $nu->uGroups; $_SESSION['uLastOnline'] = $row['uLastOnline']; $_SESSION['uTimezone'] = $row['uTimezone']; $_SESSION['uDefaultLanguage'] = $row['uDefaultLanguage']; if ($cacheItemsOnLogin) { Loader::helper('concrete/interface')->cacheInterfaceItems(); } $nu->recordLogin(); } } return $nu; }