function execute_action() { $nome_categoria = Params::get("nome_categoria"); $nome_modulo = Params::get("nome_modulo"); $command = Params::get("command"); if ($command != "install" && $command != "uninstall" && $command != null) { $def = AvailableModules::get_available_module_definition($nome_categoria, $nome_modulo); $action_data = $def->get_action_data($command); $plug = ModuleUtils::getModulePlug($nome_categoria, $nome_modulo); $plug->execute($action_data); Flash::ok("Azione '" . $command . "' eseguita con successo."); return Redirect::success(); } else { return Redirect::failure(); } }
static function uninstall($nome_categoria, $nome_modulo) { if (!InstalledModules::is_installed($nome_categoria, $nome_modulo)) { throw new InvalidParametersException(); } $mod_def = InstalledModules::get_installed_module_definition($nome_categoria, $nome_modulo); $uninstall_data = $mod_def->get_action_data("uninstall"); $module_plug = ModuleUtils::getModulePlug($nome_categoria, $nome_modulo); $module_plug->execute($uninstall_data); //deleting module data : properties $prop_storage = self::__get_properties_storage($nome_categoria, $nome_modulo); if ($prop_storage->exists()) { return $prop_storage->delete(); } //definition file $xml_storage = self::__get_xml_storage($nome_categoria, $nome_modulo); if ($xml_storage->exists()) { return $xml_storage->delete(); } return true; }
static function install($nome_categoria, $nome_modulo) { $def = self::get_available_module_definition($nome_categoria, $nome_modulo); //checking for required modules ... $properties_storage = InstalledModules::__get_properties_storage($nome_categoria, $nome_modulo); $properties_storage->create(); $properties_storage->add("global", array("nome_categoria" => $nome_categoria, "nome_modulo" => $nome_modulo)); $version = $def->get_current_version(); $properties_storage->add("properties", $version); //eventualmente altro ... $module_def_storage = InstalledModules::__get_xml_storage($nome_categoria, $nome_modulo); $module_def_storage->saveXML($def->get_data()); $install_data = $def->get_action_data("install"); $module_plug = ModuleUtils::getModulePlug($nome_categoria, $nome_modulo); $module_plug->execute($install_data); }