private static function doAllInitialization() { /* * Se il core non è installato si installa * */ if (!InstalledModules::is_installed(ModuleUtils::FRAMEWORK_CATEGORY_NAME, ModuleUtils::FRAMEWORK_MODULE_NAME)) { AvailableModules::install(ModuleUtils::FRAMEWORK_CATEGORY_NAME, ModuleUtils::FRAMEWORK_MODULE_NAME); } //il core è sicuramente installato, ora per tutti i moduli eseguo il load ... return; $all_installed_modules = InstalledModules::get_all_installed_modules(); foreach ($all_installed_modules as $module) { extract($module["global"]); if ($nome_categoria != ModuleUtils::FRAMEWORK_CATEGORY_NAME && $nome_modulo != ModuleUtils::FRAMEWORK_MODULE_NAME) { if (AvailableModules::is_module_ok($nome_categoria, $nome_modulo)) { extract($module["properties"]); //$installed_version = $major_version.".".$minor_version.".".$revision; //$filesystem_version = AvailableModules::get_available_module_version($nome_categoria, $nome_modulo); /* if ($installed_version==$filesystem_version) self::initializeModule($nome_categoria,$nome_modulo); else { Log::warn("doAllInitialization", "Module version mismatch ".$nome_categoria."/".$nome_modulo." : installed ($installed_version) - filesystem ($filesystem_version)" ); } */ } else { //attenzione : modulo installato non presente su filesystem : errore!! throw new Exception("Modulo {$nome_categoria}/{$nome_modulo} installato ma non presente su filesystem."); } } } }
function testGetAllInstalledModules() { ModuleUtils::set_modules_path(FRAMEWORK_CORE_PATH . "tests/base/fakeroot/modules/"); Storage::set_storage_root(DS . FRAMEWORK_CORE_PATH . "tests/modules/test_installed_modules_storage/"); $all_installed_modules = InstalledModules::get_all_installed_modules(); $this->assertEqual(count($all_installed_modules), 2, "Il numero di moduli installati non corrisponde!!"); Storage::set_storage_root(Storage::get_default_storage_root()); }
function admin_page($title, $show_forbidden = true) { if (call("admin", "is_logged")) { Html::set_layout("admin"); } else { if ($show_forbidden) { Html::set_title("Pannello di amministrazione - Sessione scaduta"); Html::set_layout("admin_forbidden"); return; } else { Html::set_layout("admin"); } } Html::set_title("Pannello di amministrazione - " . $title); if (call("admin", "is_logged")) { //Carico tutti i moduli andando a includere i file che trovo in /include/plugins/admin/ $plugins = Plugin::list_files("admin"); foreach ($plugins as $p) { @(include_once $p); } } //se non e' stato definito nessun modulo, lascio vuoto. if (!has_sector("/pannello_sinistra")) { set_sector("/pannello_sinistra", ""); } //inizio settore "bottom" start_sector("/bottom"); include_block("common/powered_by"); end_sector(); start_sector("/framework/installed_modules"); $modules = InstalledModules::get_all_installed_modules(); echo "Elenco dei moduli installati : <br /><br />"; echo "<ul>"; foreach ($modules as $mod) { $global = $mod["global"]; $properties = $mod["properties"]; ?> <li><?php echo $global["nome_categoria"]; ?> /<?php echo $global["nome_modulo"]; ?> : <b><?php echo $properties["major_version"]; ?> .<?php echo $properties["minor_version"]; ?> .<?php echo $properties["revision"]; ?> </b></li> <?php } echo "</ul>"; end_sector(); }
function get_installed_modules() { $installed_modules = InstalledModules::get_all_installed_modules(); $all_provided_services = InstalledModules::get_all_provided_services(); foreach ($installed_modules as $mod) { $mod["additional"] = array(); //$mod["additional"]["missing_modules"] = InstalledModules::get_missing_required_modules($installed_modules, $mod["global"]["nome_categoria"], $mod["global"]["nome_modulo"]); //$mod["additional"]["missing_services"] = InstalledModules::get_missing_required_services($all_provided_services, $mod["global"]["nome_categoria"], $mod["global"]["nome_modulo"]); } return $installed_modules; }
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); }
if (!isset($missing_services)) { $missing_services = array(); } if (count($missing_services) == 0) { echo "OK"; } else { foreach ($missing_services as $s) { echo $s . ","; } } ?> </td> <td> <div class="module_command_list"> <?php $commands = InstalledModules::get_all_available_actions($nome_categoria, $nome_modulo); foreach ($commands as $cmd) { if ($cmd != "install" && $cmd != "uninstall") { ?> <form method="post" action="/actions/modules/execute_action.php"> <input type="hidden" name="nome_categoria" value="<?php echo $nome_categoria; ?> " /> <input type="hidden" name="nome_modulo" value="<?php echo $nome_modulo; ?> " /> <input type="hidden" name="command" value="<?php echo $cmd; ?>