/** * The modules for the backend navigation * @return Returns an array with bundle names as keys and backend modules as list */ static function BackendNavModules() { $result = array(); $allBundles = PathUtil::Bundles(); //force Core to appear first $coreKey = array_search('Core', $allBundles); unset($allBundles[$coreKey]); array_unshift($allBundles, 'Core'); $bundles = array_values($allBundles); foreach ($bundles as $bundle) { $modules = PathUtil::BackendModules($bundle); foreach ($modules as $module) { $type = self::CalcModuleType($bundle, $module); $instance = self::CreateBackendModule($type); if (!$instance instanceof BackendModule) { continue; } if ($instance->SideNavIndex() >= 0 && BackendModule::Guard()->Allow(BackendAction::Read(), $instance)) { self::AddBackendNavModule($result, $instance); } } } return self::SortByNavIndex($result); }
/** * Gets all backend module names for a bundle * @param string $bundle The bundle name * @return string Returns the module names */ protected function Modules($bundle) { $modules = PathUtil::BackendModules($bundle); $result = array(); foreach ($modules as $module) { $instance = ClassFinder::CreateBackendModule(ClassFinder::CalcModuleType($bundle, $module)); if ($instance instanceof BackendModule) { $result[] = $module; } } return $result; }