static function getHandlers($explicit = false, $use_out_of_office = true) { // HOW! - There has to be a better way that this! $key = 0; if ($explicit) { $key = 1; } if ($use_out_of_office) { $key += 2; } if (empty(self::$all_handlers)) { self::$all_handlers = array(); } if (!array_key_exists($key, self::$all_handlers)) { if ($use_out_of_office) { $users = self::usersWithPerm("support_admin", "fss.handler", $explicit); self::$all_handlers[$key] = array(); foreach ($users as $user) { if (!empty($user->settings) && !empty($user->settings->out_of_office) && $user->settings->out_of_office) { continue; } self::$all_handlers[$key][] = $user; } } else { self::$all_handlers[$key] = self::usersWithPerm("support_admin", "fss.handler", $explicit); } } if (FSS_Settings::get('support_hide_super_users')) { foreach (self::$all_handlers[$key] as $user_id => $user) { $user = JFactory::getUser($user->id); if ($user->get('isRoot')) { unset(self::$all_handlers[$key][$user_id]); } } } return self::$all_handlers[$key]; }