Example #1
0
 /**
  * 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);
 }
Example #2
0
 /**
  * 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;
 }