AddSubBlock($oOption); $aValidClasses = []; $aClassCategories = ['bizmodel', 'addon/authentication']; if ($bAdvanced) { $aClassCategories[] = 'grant_by_profile'; } if (UserRights::IsAdministrator()) { $aClassCategories[] = 'application'; } foreach ($aClassCategories as $sClassCategory) { foreach (MetaModel::GetClasses($sClassCategory) as $sClassName) { if ((is_null($iActionCode) || UserRights::IsActionAllowed($sClassName, $iActionCode)) && (!MetaModel::IsAbstract($sClassName))) { $sDisplayName = ($bAdvanced) ? MetaModel::GetName($sClassName)." ($sClassName)" : MetaModel::GetName($sClassName); $aValidClasses[$sDisplayName] = SelectOptionUIBlockFactory::MakeForSelectOption($sClassName, $sDisplayName, ($sClassName == $sDefaultValue)); } } } ksort($aValidClasses); foreach ($aValidClasses as $sValue => $oBlock) { $oSelectBlock->AddSubBlock($oBlock); } return $oSelectBlock; } }