/** * Read modules list from cache or collect * from modules directory is not caches yet. * * @return void */ public function readModulesList() { $cachedModulesList = get_option($this->modulesListOptionName); // Cache modules list only if not cached before. // Empty array is another case and it mean // that this method is never called before. if (!is_array($cachedModulesList)) { cssJSToolbox::printDebugMessage("Caching Modules List"); $cachedModulesList = array(); $modulesDirPath = CJTOOLBOX_PATH . "/{$this->directory}"; $modulesIterator = opendir($modulesDirPath); // Get all modules. while ($moduleDir = readdir($modulesIterator)) { // Build module main file path. $moduleFileName = "{$moduleDir}.php"; $modulePath = "{$modulesDirPath}/{$moduleDir}"; if ($moduleDir != '.' && $moduleDir != '..' & is_dir($modulePath)) { $moduleFilePath = "{$modulePath}/{$moduleFileName}"; $module = array('id' => $moduleDir, 'path' => $modulePath, 'url' => CJTOOLBOX_URL . "/modules/{$moduleDir}", 'file' => $moduleFilePath, 'status' => 'active'); $cachedModulesList[$moduleDir] = $module; } } closedir($modulesIterator); // Update database modules list. update_option($this->modulesListOptionName, $cachedModulesList); } $this->modulesList = $cachedModulesList; }