diff options
Diffstat (limited to 'includes/module.inc')
-rw-r--r-- | includes/module.inc | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/includes/module.inc b/includes/module.inc index e80384343..787f072f2 100644 --- a/includes/module.inc +++ b/includes/module.inc @@ -40,8 +40,8 @@ function module_invoke_all($hook, $a1 = NULL, $a2 = NULL, $a3 = NULL, $a4 = NULL return $return; } -// return array of module names (includes lazy module loading): -function module_list($refresh = 0) { +// return array of module names (includes lazy module loading if not in bootstrap mode) +function module_list($refresh = 0, $bootstrap = 0) { static $list; if ($refresh) { @@ -50,16 +50,20 @@ function module_list($refresh = 0) { if (!$list) { $list = array("admin" => "admin", "system" => "system", "user" => "user", "watchdog" => "watchdog"); - $result = db_query("SELECT name, filename FROM {system} WHERE type = 'module' AND status = '1' ORDER BY name"); + $result = db_query("SELECT name, filename, bootstrap FROM {system} WHERE type = 'module' AND status = '1' ORDER BY name"); while ($module = db_fetch_object($result)) { if (file_exists($module->filename)) { - $list[$module->name] = $module->name; - include_once $module->filename; + if ($bootstrap) { + $list[$module->name] = array("name"=> $module->name, "bootstrap" => $module->bootstrap, "filename" => $module->filename); + } + else { + $list[$module->name] = $module->name; + include_once $module->filename; + } } } natcasesort($list); } - return $list; } |