dirroot/enrol/$mod"; unset($module); if ( is_readable("$fullmod/version.php")) { include_once("$fullmod/version.php"); // defines $module with version etc } else { continue; // Nothing to do. } if ( is_readable("$fullmod/db/$CFG->dbtype.php")) { include_once("$fullmod/db/$CFG->dbtype.php"); // defines upgrading function } else { continue; } if (!isset($module)) { continue; } if (!empty($module->requires)) { if ($module->requires > $CFG->version) { $info->modulename = $mod; $info->moduleversion = $module->version; $info->currentmoodle = $CFG->version; $info->requiremoodle = $module->requires; notify(get_string('modulerequirementsnotmet', 'error', $info)); unset($info); continue; } } $module->name = $mod; // The name MUST match the directory $moduleversion = 'enrol_'.$mod.'_version'; if (!isset($CFG->$moduleversion)) { set_config($moduleversion, 0); } if ($CFG->$moduleversion == $module->version) { // do nothing } else if ($CFG->$moduleversion < $module->version) { if (empty($updated_modules)) { $strmodulesetup = get_string("modulesetup"); print_header($strmodulesetup, $strmodulesetup, $strmodulesetup, "", "", false, " ", " "); } print_heading("$module->name module needs upgrading"); $upgrade_function = $module->name."_upgrade"; if (function_exists($upgrade_function)) { $db->debug=true; if ($upgrade_function($currmodule->version)) { $db->debug=false; // OK so far, now update the modules record set_config($moduleversion, $module->version); notify(get_string("modulesuccess", "", $module->name), "green"); echo "
"; } else { $db->debug=false; notify("Upgrading $module->name from $currmodule->version to $module->version FAILED!"); } } $updated_modules = true; } else { error("Version mismatch: $module->name can't downgrade $currmodule->version -> $module->version !"); } } if (!empty($updated_modules)) { print_continue($return); die; } } function upgrade_activity_modules($return) { /// Find and check all modules and load them up or upgrade them if necessary global $CFG; if (!$mods = get_list_of_plugins("mod") ) { error("No modules installed!"); } foreach ($mods as $mod) { if ($mod == "NEWMODULE") { // Someone has unzipped the template, ignore it continue; } $fullmod = "$CFG->dirroot/mod/$mod"; unset($module); if ( is_readable("$fullmod/version.php")) { include_once("$fullmod/version.php"); # defines $module with version etc } else { notify("Module $mod: $fullmod/version.php was not readable"); continue; } if ( is_readable("$fullmod/db/$CFG->dbtype.php")) { include_once("$fullmod/db/$CFG->dbtype.php"); # defines upgrading function } else { notify("Module $mod: $fullmod/db/$CFG->dbtype.php was not readable"); continue; } if (!isset($module)) { continue; } if (!empty($module->requires)) { if ($module->requires > $CFG->version) { $info->modulename = $mod; $info->moduleversion = $module->version; $info->currentmoodle = $CFG->version; $info->requiremoodle = $module->requires; notify(get_string('modulerequirementsnotmet', 'error', $info)); unset($info); continue; } } $module->name = $mod; // The name MUST match the directory if ($currmodule = get_record("modules", "name", $module->name)) { if ($currmodule->version == $module->version) { // do nothing } else if ($currmodule->version < $module->version) { if (empty($updated_modules)) { $strmodulesetup = get_string("modulesetup"); print_header($strmodulesetup, $strmodulesetup, $strmodulesetup, "", "", false, " ", " "); } print_heading("$module->name module needs upgrading"); $upgrade_function = $module->name."_upgrade"; if (function_exists($upgrade_function)) { $db->debug=true; if ($upgrade_function($currmodule->version, $module)) { $db->debug=false; // OK so far, now update the modules record $module->id = $currmodule->id; if (! update_record("modules", $module)) { error("Could not update $module->name record in modules table!"); } notify(get_string("modulesuccess", "", $module->name), "green"); echo "
"; } else { $db->debug=false; notify("Upgrading $module->name from $currmodule->version to $module->version FAILED!"); } } $updated_modules = true; } else { error("Version mismatch: $module->name can't downgrade $currmodule->version -> $module->version !"); } } else { // module not installed yet, so install it if (empty($updated_modules)) { $strmodulesetup = get_string("modulesetup"); print_header($strmodulesetup, $strmodulesetup, $strmodulesetup, "", "", false, " ", " "); } print_heading($module->name); $updated_modules = true; $db->debug = true; @set_time_limit(0); // To allow slow databases to complete the long SQL if (modify_database("$fullmod/db/$CFG->dbtype.sql")) { $db->debug = false; if ($module->id = insert_record("modules", $module)) { notify(get_string("modulesuccess", "", $module->name), "green"); echo "
"; } else { error("$module->name module could not be added to the module list!"); } } else { error("$module->name tables could NOT be set up successfully!"); } } } if (!empty($updated_modules)) { print_continue($return); die; } } ?>