/**
* Method to get the options to populate list
*
* @return array The field option objects.
*
* @since 3.2
*/
protected function getOptions()
{
$options = parent::getOptions();
$checkSuperUser = (int) $this->getAttribute('checksuperusergroup', 0);
// Cache user groups base on checksuperusergroup attribute value
if (!isset(static::$options[$checkSuperUser])) {
$groups = UserGroupsHelper::getInstance()->getAll();
$cacheOptions = array();
foreach ($groups as $group) {
// Don't list super user groups.
if ($checkSuperUser && Access::checkGroup($group->id, 'core.admin')) {
continue;
}
$cacheOptions[] = (object) array('text' => str_repeat('- ', $group->level) . $group->title, 'value' => $group->id, 'level' => $group->level);
}
static::$options[$checkSuperUser] = $cacheOptions;
}
return array_merge($options, static::$options[$checkSuperUser]);
}