public static function read_manifest() { global $base_path; $informations = array(); @ini_set("zend.ze1_compatibility_mode", "0"); $manifest = new domDocument(); $module_path = realpath(dirname($base_path . "/cms/modules/" . str_replace("cms_module_", "", get_called_class()) . "/" . get_called_class() . ".class.php")); $manifest->load($module_path . "/manifest.xml"); //on récupère le nom $name = $manifest->getElementsByTagName("name")->item(0); $informations['informations']['name'] = cms_module_root::charset_normalize($name->nodeValue, "utf-8"); //on récupère le(les) auteur(s) $informations['informations']['author'] = array(); $authors = $manifest->getElementsByTagName("author"); for ($i = 0; $i < $authors->length; $i++) { $author = array(); //on récupère son nom $author['name'] = cms_module_root::charset_normalize($authors->item($i)->getElementsByTagName('name')->item(0)->nodeValue, "utf-8"); //on récupère son organisation $organisation = $authors->item($i)->getElementsByTagName("organisation"); if ($organisation->length > 0) { $author['organisation'] = cms_module_root::charset_normalize($organisation->item(0)->nodeValue, "utf-8"); } $informations['informations']['author'][] = $author; } //on récupère les dates $created_date = $manifest->getElementsByTagName("created_date")->item(0); $informations['informations']['created_date'] = cms_module_root::charset_normalize($created_date->nodeValue, "utf-8"); $updated_date = $manifest->getElementsByTagName("updated_date"); if ($updated_date->length > 0) { $informations['informations']['updated_date'] = cms_module_root::charset_normalize($updated_date->item(0)->nodeValue, "utf-8"); } //on récupère la version $version = $manifest->getElementsByTagName("version")->item(0); $informations['informations']['version'] = cms_module_root::charset_normalize($version->nodeValue, "utf-8"); // on récupère la langue par défaut du module... $informations['informations']['default_language'] = self::get_module_default_language($manifest); // administrable? $informations['informations']['managed'] = $manifest->getElementsByTagName("managed") && $manifest->getElementsByTagName("managed")->item(0)->nodeValue == "true" ? true : false; //fournisseur de liens? $informations['informations']['extension_form'] = $manifest->getElementsByTagName("extension_form") && $manifest->getElementsByTagName("extension_form")->item(0)->nodeValue == "true" ? true : false; @ini_set("zend.ze1_compatibility_mode", "0"); //on récupère la listes des éléments utilisés par le module... $use = $manifest->getElementsbyTagName("use")->item(0); $informations['elements_used'] = self::read_elements_used($use); @ini_set("zend.ze1_compatibility_mode", "1"); return $informations; }