static function extract_from_archive($filename) { $modules_archive_dir = new Dir(self::MODULES_ARCHIVE_DIR); $modules_archive_dir->touch(); $module_archive = $modules_archive_dir->newFile($filename); $properties = FFArchive::getArchiveProperties($module_archive); $module_dir = new Dir(ModuleUtils::get_modules_path() . "/" . $properties["category_name"] . "/" . $properties["module_name"]); return FFArchive::extract($module_archive, $module_dir); }
static function get_available_module_path($nome_categoria, $nome_modulo) { // framework/core if ($nome_categoria === ModuleUtils::FRAMEWORK_CATEGORY_NAME && $nome_modulo === ModuleUtils::FRAMEWORK_MODULE_NAME) { return DS . ModuleUtils::get_framework_core_path(); } //moduli primari $module_dir = new Dir(DS . ModuleUtils::get_modules_path() . $nome_categoria . DS . $nome_modulo . DS); //ok aggiunto controllo su definizione del modulo $module_def = new File($module_dir->getPath() . self::MODULE_DEFINITION_FILE); if ($module_def->exists()) { return $module_dir->getPath(); } //eccezione, modulo non trovato throw new Exception("Il modulo di categoria {$nome_categoria} di nome {$nome_modulo} non esiste!"); }