/**
  * Load and initialize any modules from a list
  *
  * @param array $ModuleList List of modules. $key is name, $value is path
  */
 public static function loadModules()
 {
     global $NAVBAR;
     global $HTMLHead;
     self::$ModuleList = self::getModulesFromPath(CODON_MODULES_PATH);
     if (empty(self::$ModuleList)) {
         Debug::showCritical('No modules were found in module path! (' . CODON_MODULES_PATH . ')');
         return;
     }
     self::$listSize = sizeof(self::$ModuleList);
     self::$keys = array_keys(self::$ModuleList);
     for ($i = 0; $i < self::$listSize; $i++) {
         $ModuleName = self::$keys[$i];
         $ModuleController = self::$ModuleList[$ModuleName];
         if (file_exists($ModuleController)) {
             include_once $ModuleController;
             if (class_exists($ModuleName)) {
                 $ModuleName = strtoupper($ModuleName);
                 global ${$ModuleName};
                 ${$ModuleName} = new $ModuleName();
                 ${$ModuleName}->init($ModuleName);
                 // Call the parent constructor
                 if (self::$activeModule == $ModuleName) {
                     # Skip it for now, run it last since it's the active
                     #	one, and may overwrite some other parameters
                     continue;
                 } else {
                     ob_start();
                     self::Run($ModuleName, 'NavBar');
                     $NAVBAR .= ob_get_clean();
                     self::Run($ModuleName, 'HTMLHead');
                     $HTMLHead .= ob_get_clean();
                     @ob_end_clean();
                 }
             }
         }
     }
     # Run the init tasks
     ob_start();
     self::Run(self::$activeModule, 'NavBar');
     $NAVBAR .= ob_get_clean();
     self::Run(self::$activeModule, 'HTMLHead');
     $HTMLHead .= ob_get_clean();
     @ob_end_clean();
 }