public function getID($ID, $DatasetType = false, $Options = [])
{
if (!$ID) {
return false;
}
$DatasetType = $DatasetType ?: DATASET_TYPE_OBJECT;
// Check page cache, then memcached
$User = $this->getUserFromCache($ID, 'userid');
// If not, query DB
if ($User === Gdn_Cache::CACHEOP_FAILURE) {
$User = parent::getID($ID, DATASET_TYPE_ARRAY);
// We want to cache a non-existent user no-matter what.
if (!$User) {
$User = null;
}
$this->userCache($User, $ID);
} elseif (!$User) {
return false;
}
// Apply calculated fields
$this->setCalculatedFields($User);
// Allow FALSE returns
if ($User === false || is_null($User)) {
return false;
}
if (is_array($User) && $DatasetType == DATASET_TYPE_OBJECT) {
$User = (object) $User;
}
if (is_object($User) && $DatasetType == DATASET_TYPE_ARRAY) {
$User = (array) $User;
}
$this->EventArguments['LoadedUser'] =& $User;
$this->fireEvent('AfterGetID');
return $User;
}