wwwroot == "http://example.com/moodle") { error("Moodle has not been configured yet. You need to to edit config.php first."); } /// Check databases and modules and install as needed. if (! $db->Metatables() ) { if (!$agreelicence) { $strlicense = get_string("license"); print_header($strlicense, $strlicense, $strlicense); print_heading("Moodle - Modular Object-Oriented Dynamic Learning Environment"); print_heading(get_string("copyrightnotice")); print_simple_box_start("CENTER"); echo text_to_html(get_string("gpl")); print_simple_box_end(); echo "
"; notice_yesno(get_string("doyouagree"), "index.php?agreelicence=true", "http://www.gnu.org/copyleft/gpl.html"); exit; } $strdatabasesetup = get_string("databasesetup"); $strdatabasesuccess = get_string("databasesuccess"); print_header($strdatabasesetup, $strdatabasesetup, $strdatabasesetup); if (file_exists("$CFG->libdir/db/$CFG->dbtype.sql")) { $db->debug = true; if (modify_database("$CFG->libdir/db/$CFG->dbtype.sql")) { $db->debug = false; notify($strdatabasesuccess); } else { $db->debug = false; error("Error: Main databases NOT set up successfully"); } } else { error("Error: Your database ($CFG->dbtype) is not yet fully supported by Moodle. See the lib/db directory."); } print_continue("index.php"); die; } /// Check version of Moodle code on disk compared with database /// and upgrade if possible. include_once("$CFG->dirroot/version.php"); # defines $version and upgrades if ($CFG->version) { if ($version > $CFG->version) { // upgrade $a->oldversion = $CFG->version; $a->newversion = $version; $strdatabasechecking = get_string("databasechecking", "", $a); $strdatabasesuccess = get_string("databasesuccess"); print_header($strdatabasechecking, $strdatabasechecking, $strdatabasechecking); notify($strdatabasechecking); $db->debug=true; if (upgrade_moodle($CFG->version)) { $db->debug=false; if (set_config("version", $version)) { notify($strdatabasesuccess); print_continue("index.php"); die; } else { notify("Upgrade failed! (Could not update version in config table)"); } } else { $db->debug=false; notify("Upgrade failed! See /version.php"); } } else if ($version < $CFG->version) { notify("WARNING!!! The code you are using is OLDER than the version that made these databases!"); } } else { $strdatabaseupgrades = get_string("databaseupgrades"); print_header($strdatabaseupgrades, $strdatabaseupgrades, $strdatabaseupgrades); if (set_config("version", $version)) { notify("You are currently using Moodle version $version (Release $release)"); print_continue("index.php"); die; } else { $db->debug=true; if (upgrade_moodle(0)) { print_continue("index.php"); } else { error("A problem occurred inserting current version into databases"); } $db->debug=false; } } /// Updated human-readable release version if necessary if ($release <> $CFG->release) { // Update the release version $strdatabaseupgrades = get_string("databaseupgrades"); print_header($strdatabaseupgrades, $strdatabaseupgrades, $strdatabaseupgrades); print_heading($release); if (!set_config("release", $release)) { notify("ERROR: Could not update release version in database!!"); } print_continue("index.php"); print_simple_box_start("CENTER"); include("$CFG->dirroot/RELEASE.html"); print_simple_box_end(); print_continue("index.php"); exit; } /// Find and check all modules and load them up or upgrade them if necessary if (!$mods = get_list_of_plugins("mod") ) { error("No modules installed!"); } foreach ($mods as $mod) { $fullmod = "$CFG->dirroot/mod/$mod"; unset($module); include_once("$fullmod/version.php"); # defines $module with version etc if (!isset($module)) { 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) { notify("$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)); } 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 (!$updated_modules) { $strmodulesetup = get_string("modulesetup"); print_header($strmodulesetup, $strmodulesetup, $strmodulesetup); } $updated_modules = true; $db->debug = true; if (modify_database("$fullmod/db/$CFG->dbtype.sql")) { $db->debug = false; if ($module->id = insert_record("modules", $module)) { notify(get_string("modulesuccess", "", $module->name)); } 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 ($updated_modules) { print_continue("index.php"); die; } /// Insert default values for any important configuration variables include_once("$CFG->dirroot/lib/defaults.php"); $CFG = (array)$CFG; foreach ($defaults as $name => $value) { if (!isset($CFG[$name])) { $config->name = $name; $config->value = $CFG[$name] = $value; insert_record("config", $config); $configchange = true; } } $CFG = (object)$CFG; /// If any new configurations were found then send to the config page to check if ($configchange) { redirect("$CFG->wwwroot/admin/config.php"); } /// Set up the overall site name etc. if (! $site = get_site()) { redirect("$CFG->wwwroot/admin/site.php"); } /// Set up the admin user if (!isadmin()) { if (! record_exists_sql("SELECT * FROM user_admins")) { // No admin user yet redirect("$CFG->wwwroot/admin/user.php"); } error("You need to be an admin user to use this page.", "$CFG->wwwroot/login/index.php"); } /// At this point everything is set up and the user is an admin, so print menu $stradministration = get_string("administration"); print_header("$site->shortname: $stradministration","$site->fullname: $stradministration", "$stradministration"); $table->head = array (get_string("site"), get_string("courses"), get_string("users")); $table->align = array ("CENTER", "CENTER", "CENTER"); $table->data[0][0] = "

".get_string("configvariables")."

". "

".get_string("sitesettings")."

". "

id\">".get_string("sitelogs")."

". "

".get_string("choosetheme")."

". "

".get_string("checklanguage")."

"; if (file_exists("$CFG->dirroot/admin/$CFG->dbtype")) { $table->data[0][0] .= "

dbtype/\">".get_string("managedatabase")."

"; } $table->data[0][1] = "

".get_string("addnewcourse")."

". "

".get_string("assignteachers")."

". "

".get_string("deletecourse")."

". "

".get_string("categories")."

"; $table->data[0][2] = "

".get_string("addnewuser")."

". "

".get_string("edituser")."

"; print_table($table); print_heading("Moodle $CFG->release ($CFG->version)", "CENTER", 1); print_footer(); ?>