module_list
includes/module.inc, строка 46
- Версии
- 5 – 6
module_list($refresh = FALSE, $bootstrap = TRUE, $sort = FALSE, $fixed_list = NULL)
Генерирует список всех загруженных модулей. В ходе инициализации (бутстрапа), возвращает только жизненно важные модули. Смотри bootstrap.inc
Параметры
$refresh
Вызывать ли обновление списка модулей (например после того, как администратор изменит настройки системы).
$bootstrap
Возвращать ли укороченный список модулей, загружаемых в режиме 'bootstrap mode'
для скэшированных страниц. Смотри bootstrap.inc.
$sort
По умолчанию модули сортируются по весу и имени файла. Устанавливая этот параметр в TRUE
, модули будут отсортированы по имени модуля.
$fixed_list
(Дополнительно) Заменяет список модулей указанными модулями. Остается. пока не будет следующего вызова с $refresh
= TRUE
.
Возвращаемое значение
Ассоциативный массив, ключи и значения которого - имена всех загруженных модулей
Код
<?php
function module_list($refresh = FALSE, $bootstrap = TRUE, $sort = FALSE, $fixed_list = NULL) {
static $list, $sorted_list;
if ($refresh || $fixed_list) {
unset($sorted_list);
$list = array();
if ($fixed_list) {
foreach ($fixed_list as $name => $module) {
drupal_get_filename('module', $name, $module['filename']);
$list[$name] = $name;
}
}
else {
if ($bootstrap) {
$result = db_query("SELECT name, filename, throttle FROM {system} WHERE type = 'module' AND status = 1 AND bootstrap = 1 ORDER BY weight ASC, filename ASC");
}
else {
$result = db_query("SELECT name, filename, throttle FROM {system} WHERE type = 'module' AND status = 1 ORDER BY weight ASC, filename ASC");
}
while ($module = db_fetch_object($result)) {
if (file_exists($module->filename)) {
// Determine the current throttle status and see if the module should be
// loaded based on server load. We have to directly access the throttle
// variables, since throttle.module may not be loaded yet.
$throttle = ($module->throttle && variable_get('throttle_level', 0) > 0);
if (!$throttle) {
drupal_get_filename('module', $module->name, $module->filename);
$list[$module->name] = $module->name;
}
}
}
}
}
if ($sort) {
if (!isset($sorted_list)) {
$sorted_list = $list;
ksort($sorted_list);
}
return $sorted_list;
}
return $list;
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии