system_module_listing
- Versions
- 4.6
system_module_listing()
Generate a list of all the available modules, as well as update the system list.
Code
modules/system.module, line 457
<?php
function system_module_listing() {
// Get current list of modules
$files = system_listing('\.module$', 'modules', 'name', 0);
// Extract current files from database.
system_get_files_database($files, 'module');
ksort($files);
$required = array('block', 'filter', 'system', 'user', 'watchdog');
$throttle_required = array_merge($required, array('throttle'));
$header = array(t('Name'), t('Description'), t('Enabled'));
if (module_exist('throttle')) {
$header[] = t('Throttle');
}
foreach ($files as $filename => $file) {
drupal_get_filename('module', $file->name, $file->filename);
drupal_load('module', $file->name);
$file->description = module_invoke($file->name, 'help', 'admin/modules#description');
// log the critical hooks implemented by this module
$bootstrap = 0;
foreach (bootstrap_hooks() as $hook) {
if (module_hook($file->name, $hook)) {
$bootstrap = 1;
break;
}
}
// Update the contents of the system table:
db_query("DELETE FROM {system} WHERE name = '%s' AND type = '%s'", $file->name, 'module');
db_query("INSERT INTO {system} (name, description, type, filename, status, throttle, bootstrap) VALUES ('%s', '%s', '%s', '%s', %d, %d, %d)", $file->name, $file->description, 'module', $file->filename, $file->status, $file->throttle, $bootstrap);
$row = array($file->name, $file->description, array('data' => (in_array($file->name, $required) ? form_hidden("status][$file->name", 1) . t('required') : form_checkbox('', "status][$file->name", 1, $file->status)), 'align' => 'center'));
if (module_exist('throttle')) {
$row[] = array('data' => (in_array($file->name, $throttle_required) ? form_hidden("throttle][$file->name", 0) . t('required') : form_checkbox(NULL, "throttle][$file->name", 1, $file->throttle, NULL)), 'align' => 'center');
}
$rows[] = $row;
}
$output = theme('table', $header, $rows);
$output .= form_hidden('type', 'module');
return $output;
}
?>Login or register to post comments 