isModuleInstalled($module) ) return 0; // Check if the module should be installed or not. if ( $install_if_optional == FALSE && $module_required == FALSE ) return 2; echo "
".get_lang_f('adding_module',$module_title)."
"; $module_id = $db->addModule($module_title, $module, $module_version, $db_version); if ( isset( $install_queries ) ) { foreach ( $install_queries as $key_db_version => $querys ) { foreach ( $querys as $query ) { if ( $db->query($query) ) continue; print_failure("".get_lang("query_failed")." (".$query.") ".get_lang("query_failed_2")." ERROR: ".$db->getError().""); return -2; } } } if ( isset($module_menus) && is_array($module_menus) ) { foreach( $module_menus as $menu ) { $db->addModuleMenu($module_id,$menu['subpage'],$menu['group'],$menu['name']); } } return 1; } function uninstall_module($db, $module_id, $module) { // Don't allow users to uninstall core IMPORTANT MODULES if(!isCoreModule($module)){ if ( !is_file("modules/".$module."/module.php") ) { print_failure("modules/".$module." ".get_lang("module_file_missing").""); return FALSE; } if ( $db->delModule($module_id) === FALSE ) { print_failure(get_lang("failed_del_db")); return FALSE; } include("modules/".$module."/module.php"); if ( isset( $uninstall_queries ) ) { foreach ( $uninstall_queries as $query ) { if ( !$db->query($query) ) { print_failure("".get_lang("query_failed")." (".$query.") ".get_lang("query_failed_2")." ERROR: ".$db->getError().""); return FALSE; } } } return TRUE; } return false; } function update_module($db, $module_id, $module) { if ( !is_file("modules/".$module."/module.php") ) { print_failure("modules/".$module." ".get_lang("module_file_missing").""); return FALSE; } include("modules/".$module."/module.php"); $module_info = $db->getModule($module_id); if ( $module_info['version'] != $module_version) { if(method_exists($db, "getModuleMenu")){ // Added this check for successful updates // Get position of module so that users don't need to reorder them after updating $currentModuleMenuInfo = $db->getModuleMenu($module_id); if($currentModuleMenuInfo !== false && is_array($currentModuleMenuInfo)){ $pos = $currentModuleMenuInfo["pos"]; if(!isset($pos) || empty($pos)){ $pos = 0; } }else{ $pos = 0; } }else{ $pos = 0; } echo "Module position is " . $pos . " for module " . $currentModuleMenuInfo["menu_name"] . " with ID of " . $module_id . "
"; $db->delModuleMenu($module_id); if ( isset($module_menus) && is_array($module_menus) ) { foreach( $module_menus as $menu ) { $db->addModuleMenu($module_id,$menu['subpage'],$menu['group'],$menu['name'],$pos); } } } if ( $module_info['db_version'] < $db_version) { $i = $module_info['db_version']; while ($i < $db_version) { if(isset($install_queries)) { foreach ( $install_queries[$i+1] as $query ) { if ( $db->query($query) ) continue; print_failure("".get_lang("query_failed")." (".$query.") ".get_lang("query_failed_2")." ERROR: ".$db->getError().""); return -2; } } ++$i; } } $db->updateModule($module_id, $module_version, $db_version); echo "".get_lang_f('updated_module',$module_title)." - ".$module_info['db_version'] ." to ". $db_version."
"; } ?>