Files
moodle/admin/index.php
T
martin 501cdbd8bb OK, some massive changes with many files removed or changed.
Basically the changes are:

 - I've merged the 'discuss' module into the forum module
   which makes the interface MUCH clearer for everyone
 - I've added a new 'single' forum type that replicates
   what the old discuss course modules used to look like.
 - I've got rid of the "discussion" forum type - it will
   still exist in upgraded courses but as a normal forum.
 - the 'discuss' module is completely deleted - gone.
 - the 'chat' module is completely deleted - gone.
 - The upgrading system has been improved, and all code
   is stored in version.php.
 - I've put in upgrading commands to do the best I can
   (right now) to upgrade courses that used the discuss
   module.  It should mostly work, just leaving some
   "orphan" coursemodules on you course front page.  You
   can easily delete these using the little 'x'.
   I may have forgotten something  - I've only tested on
   my testing server and I'm about to test on my production
   server to see how it goes.
 - Forums have a lot of little new features and fixes.  The
   main one is the subscription process.  Teachers can 'force'
   subscriptions on any forum.  This disallows everyone from
   choosing their own mail subscription - it's just on.
 - The assignment module is half-finished and not working yet

I've still some massive changes to do, mostly involving making
all the lib.php function names more standardised, so consider
this is an interim checkin to do some tests.
2002-07-31 14:19:35 +00:00

175 lines
6.5 KiB
PHP

<?PHP // $Id$
require("../config.php");
if ($CFG->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() ) {
print_header("Setting up database", "Setting up database", "Setting up databases for the first time", "");
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("Main databases set up successfully");
} else {
$db->debug = false;
error("Error: Main databases NOT set up successfully");
}
} else {
error("Error: Your database ($CFG->dbtype) is not yet supported by Moodle. See the lib/db directory.");
}
print_heading("<A HREF=\"index.php\">Continue</A>");
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 ($dversion = get_field("config", "value", "name", "version")) {
if ($version > $dversion) { // upgrade
notify("Upgrading databases from version $dversion to $version...");
$db->debug=true;
if (upgrade_moodle($dversion)) {
$db->debug=false;
if (set_field("config", "value", "$version", "name", "version")) {
notify("Databases were successfully upgraded");
print_heading("<A HREF=\"index.php\">Continue</A>");
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 < $dversion) {
notify("WARNING!!! The code you are using is OLDER than the version that made these databases!");
}
} else {
$dversion->name = "version";
$dversion->value = $version;
if (insert_record("config", $dversion)) {
notify("You are currently using Moodle version $version");
print_heading("<A HREF=\"index.php\">Continue</A>");
die;
} else {
$db->debug=true;
if (upgrade_moodle(0)) {
print_heading("<A HREF=\"index.php\">Continue</A>");
} else {
error("A problem occurred inserting current version into databases");
}
$db->debug=false;
}
}
// Find and check all modules and load them up.
$dir = opendir("$CFG->dirroot/mod");
while ($mod = readdir($dir)) {
if ($mod == "." || $mod == ".." || $mod == "CVS") {
continue;
}
$fullmod = "$CFG->dirroot/mod/$mod";
if (filetype($fullmod) != "dir") {
continue;
}
unset($module);
include_once("$CFG->dirroot/mod/$mod/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("$module->name module was successfully upgraded");
} 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) {
print_header("Setting up database", "Setting up database", "Setting up module tables", "");
}
$updated_modules = true;
if (modify_database("$fullmod/db/$CFG->dbtype.sql")) {
if ($module->id = insert_record("modules", $module)) {
notify("$module->name tables have been set up correctly");
} 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_heading("<A HREF=\"index.php\">Continue</A>");
die;
}
// Set up the overall site name etc.
if (! $site = get_site()) {
redirect("site.php");
}
if (!isadmin()) {
if (! record_exists_sql("SELECT * FROM user_admins")) {
redirect("user.php");
}
error("You need to be an admin user to use this page.", "$CFG->wwwroot/login/");
}
// At this point, the databases exist, and the user is an admin
print_header("$site->fullname: Administration Page","$site->fullname: Administration Page", "Admin");
echo "<UL>";
echo "<LI><B><A HREF=\"site.php\">Site settings</A></B>";
echo "<LI><B><A HREF=\"../course/edit.php\">Create a new course</A></B>";
echo "<LI><B><A HREF=\"user.php\">Edit a user's account</A></B>";
echo "<LI><B><A HREF=\"teacher.php\">Assign teachers to courses</A></B>";
echo "<LI><B>Delete a course</B>";
echo "<LI><B><A HREF=\"../course/log.php?id=$site->id\">Site Logs</A></B>";
echo "</UL>";
print_footer();
?>