]> git.mjollnir.org Git - moodle.git/commitdiff
Added checks for enrolment plugin databases, and also moved some
authormoodler <moodler>
Thu, 19 Aug 2004 09:38:20 +0000 (09:38 +0000)
committermoodler <moodler>
Thu, 19 Aug 2004 09:38:20 +0000 (09:38 +0000)
stuff out to the new lib/adminlib.php

admin/index.php

index bdfeff73a8ab240bbe7a3ecd98ac814fc29e561e..4a189a3c5ea8f0576b3c6bfcd9317db628b3223e 100644 (file)
@@ -7,6 +7,7 @@
     }
 
     require_once("../config.php");
+    include_once("$CFG->dirroot/lib/adminlib.php");  // Contains various admin-only functions
 
 
 /// Check that PHP is of a sufficient version
 
 /// Check all blocks and load (or upgrade them if necessary)
     upgrade_blocks_plugins("$CFG->wwwroot/$CFG->admin/index.php");  // Return here afterwards
-    
-/// 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) {
-
-        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, "&nbsp;", "&nbsp;");
-                }
-                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 "<HR>";
-                    } 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 !");
-            }
+/// Check all enrolment plugins and upgrade if necessary
+    upgrade_enrol_plugins("$CFG->wwwroot/$CFG->admin/index.php");  // Return here afterwards
     
-        } else {    // module not installed yet, so install it
-            if (empty($updated_modules)) {
-                $strmodulesetup    = get_string("modulesetup");
-                print_header($strmodulesetup, $strmodulesetup, $strmodulesetup, "", "", false, "&nbsp;", "&nbsp;");
-            }
-            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 "<HR>";
-                } else {
-                    error("$module->name module could not be added to the module list!");
-                }
-            } else { 
-                error("$module->name tables could NOT be set up successfully!");
-            }
-        }
-    }
+/// Find and check all main modules and load them up or upgrade them if necessary
+    upgrade_activity_modules("$CFG->wwwroot/$CFG->admin/index.php");  // Return here afterwards
 
-    if (!empty($updated_modules)) {
-        print_continue("index.php");
-        die;
-    }
 
 
 /// Set up the overall site name etc.