public static function roles($RoleID = null, $Force = false)
{
if (self::$Roles == null) {
$Key = 'Roles';
$Roles = Gdn::cache()->get($Key);
if ($Roles === Gdn_Cache::CACHEOP_FAILURE) {
$Roles = Gdn::sql()->get('Role', 'Sort')->resultArray();
$Roles = Gdn_DataSet::Index($Roles, array('RoleID'));
Gdn::cache()->store($Key, $Roles, array(Gdn_Cache::FEATURE_EXPIRY => 24 * 3600));
}
} else {
$Roles = self::$Roles;
}
if ($RoleID === null) {
return $Roles;
} elseif (array_key_exists($RoleID, $Roles)) {
return $Roles[$RoleID];
} elseif ($Force) {
return array('RoleID' => $RoleID, 'Name' => '');
} else {
return null;
}
}