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 testGetRequiredModules() { ModuleUtils::set_modules_path(FRAMEWORK_CORE_PATH . "tests/base/fakeroot/modules/"); $def = AvailableModules::get_available_module_definition("ecommerce", "cart"); $required_modules = $def->get_required_modules(); $this->assertEqual(2, count($required_modules), "Il numero di moduli richiesti non corrisponde!!"); $k = array_keys($required_modules); $this->assertEqual($k[0], "ecommerce/base", "Il modulo richiesto 0 non corrisponde!!"); $this->assertEqual($k[1], "ecommerce/forms", "Il modulo richiesto 1 non corrisponde!!"); }
function testSaveAsArchive() { $result_file = new File(ModuleArchiver::MODULES_ARCHIVE_DIR . "test__category-1_2_3.ffa"); $this->assertFalse($result_file->exists(), "Il file del modulo non e' stato creato!!"); ModuleUtils::set_modules_path("/" . FRAMEWORK_CORE_PATH . "tests/modules/fakeroot2/modules/"); $this->assertTrue(AvailableModules::is_module_available("test", "category"), "Il modulo test/category non e' disponibile!!"); ModuleArchiver::save_as_archive("test", "category"); $this->assertTrue($result_file->exists(), "Il file del modulo non e' stato creato!!"); $this->assertTrue($result_file->getSize() > 0, "Il file e' vuoto!!"); $result_file->delete(); ModuleUtils::set_modules_path("/framework/modules/"); }
static function validate_module($nome_categoria, $nome_modulo) { $module_file = new File(AvailableModules::get_available_module_path($nome_categoria, $nome_modulo) . AvailableModules::MODULE_DEFINITION_FILE); $schema_url = "http://www.mbcraft.it/schemas/2011/module.rnc"; $validator_url = "http://validator.nu?level=error&out=xml&schema=" . urlencode($schema_url); $ch = curl_init($validator_url); $headers = array("Content-Type: application/xml", "Referer: MBCRAFT - Italy - info@mbcraft.it"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_VERBOSE, 0); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $module_file->getContent()); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); $xml_result = new SimpleXMLElement($result); foreach ($xml_result->error as $error) { //$attribs = $error->attributes(); var_dump($error); //echo $attribs->line_number." : ".$error->message."<br />"; } return count($xml_result->children()) == 0; }
static function save_as_archive($category_name, $module_name) { if (!AvailableModules::is_module_available($category_name, $module_name)) { throw new IllegalStateException("Il modulo " . $category_name . "/" . $module_name . "non risulta disponibile!!"); } $d = new Dir(self::MODULES_ARCHIVE_DIR); $d->touch(); $spec = AvailableModules::get_available_module_definition($category_name, $module_name); $category_name = $spec->get_category_name(); $module_name = $spec->get_module_name(); $version = $spec->get_current_version(); $v = $version["major_version"] . "_" . $version["minor_version"] . "_" . $version["revision"]; $archive_dir = new Dir(self::MODULES_ARCHIVE_DIR); $archive_dir->touch(); $source_dir = new Dir(ModuleUtils::get_modules_path() . "/" . $category_name . "/" . $module_name . "/"); $target_file = $archive_dir->newFile($category_name . "__" . $module_name . "-" . $v . ".ffa"); $properties = array(); $properties["category_name"] = $category_name; $properties["module_name"] = $module_name; $properties["major_version"] = $version["major_version"]; $properties["minor_version"] = $version["minor_version"]; $properties["revision"] = $version["revision"]; return FFArchive::compress($target_file, $source_dir, $properties); }
public function __construct($params = array()) { parent::__construct($params); $this->modules = (include RX_PATH . '/ruxon/config/modules.inc.php'); }
function get_available_modules() { return AvailableModules::get_all_available_modules(); }
static function get_installed_module_definition($nome_categoria, $nome_modulo) { if (!InstalledModules::is_installed($nome_categoria, $nome_modulo)) { throw new InvalidParametersException(); } $mod_def_file = new File(AvailableModules::get_available_module_path($nome_categoria, $nome_modulo) . AvailableModules::MODULE_DEFINITION_FILE); $data = new SimpleXMLElement($mod_def_file->getContent()); return new ModuleDefinition($nome_categoria, $nome_modulo, $data); }
<?php /* This software is released under the BSD license. Full text at project root -> license.txt */ require_once "../init.php"; $modules = AvailableModules::get_all_available_modules(); echo "Validating all available modules ...<br /><br />"; foreach ($modules as $mod) { echo "Modulo : " . $mod["nome_categoria"] . "/" . $mod["nome_modulo"] . "<br />"; $ok = ModuleUtils::validate_module($mod["nome_categoria"], $mod["nome_modulo"]); if ($ok) { echo "Ok.<br />"; } echo "<br /><br />"; }
function testDropView() { ModuleUtils::set_modules_path(FRAMEWORK_CORE_PATH . "tests/base/fakeroot/modules/"); $db_desc = DB::newDatabaseDescription(); $this->assertFalse($db_desc->hasTable("vendite_full"), "La vista vendite_full esiste gia'!!"); DB::newDirectSql($this->create_for_view)->exec(); DB::newDirectSql($this->create_view)->exec(); $db_desc = DB::newDatabaseDescription(); $this->assertTrue($db_desc->hasTable("vendite_full"), "La vista vendite_full non e' stata creata!!"); $plug = new ModulePlug(new Dir("/" . FRAMEWORK_CORE_PATH . "tests/base/fakeroot/modules/ecommerce/cart/")); $def = AvailableModules::get_available_module_definition("ecommerce", "cart"); $drop_view = $def->get_action_data("drop_view"); $plug->execute($drop_view); $db_desc = DB::newDatabaseDescription(); $this->assertFalse($db_desc->hasTable("vendite_full"), "La vista vendite_full non e' stata rimossa!!"); DB::newDirectSql($this->drop_for_view)->exec(); }
static function is_module_available($nome_categoria, $nome_modulo) { $d = new Dir(DS . AvailableModules::get_available_module_path($nome_categoria, $nome_modulo)); $module_data = new File($d->getPath() . "/" . self::MODULE_DEFINITION_FILE); if ($d->exists()) { return true; } else { return false; } }
function testDescription() { ModuleUtils::set_modules_path(FRAMEWORK_CORE_PATH . "tests/base/fakeroot/modules/"); $def = AvailableModules::get_available_module_definition("ecommerce", "cart"); $this->assertEqual($def->get_description(), "Modulo ecommerce cart di test.", "La descrizione del modulo non corrisponde!!"); }