public static function install_module($module_meta, $is_upgrade = FALSE) { // get the module xml to a temporary location $mod = cms_utils::get_module('ModuleManager'); $xml_filename = modulerep_client::get_repository_xml($module_meta['filename'], $module_meta['size']); if (!$xml_filename) { return array(FALSE, $mod->Lang('error_downloadxml', $module_meta['filename'])); } // get the md5sum of the data from the server. $server_md5 = modulerep_client::get_module_md5($module_meta['filename']); // verify the md5 $dl_md5 = md5_file($xml_filename); if ($server_md5 != $dl_md5) { @unlink($xml_filename); return array(FALSE, $mod->Lang('error_checksum', array($server_md5, $dl_md5))); } // expand the xml $ops = cmsms()->GetModuleOperations(); if (!$ops->ExpandXMLPackage($xml_filename, 1)) { debug_display('error:'); die($ops->GetLastError()); return array(FALSE, $ops->GetLastError()); } @unlink($xml_filename); // update the database. ModuleOperations::get_instance()->QueueForInstall($module_meta['name']); return array(true, ''); }