Index: modules/system/system.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.admin.inc,v
retrieving revision 1.63.2.14
diff -u -p -r1.63.2.14 system.admin.inc
--- modules/system/system.admin.inc 1 Mar 2010 10:20:28 -0000 1.63.2.14
+++ modules/system/system.admin.inc 28 May 2010 20:10:13 -0000
@@ -628,15 +628,23 @@ function system_modules($form_state = ar
// Get current list of modules.
$files = module_rebuild_cache();
- uasort($files, 'system_sort_modules_by_info_name');
+ // Remove hidden modules from display list.
+ $visible_files = $files;
+ foreach ($visible_files as $filename => $file) {
+ if (!empty($file->info['hidden'])) {
+ unset($visible_files[$filename]);
+ }
+ }
+
+ uasort($visible_files, 'system_sort_modules_by_info_name');
if (!empty($form_state['storage'])) {
- return system_modules_confirm_form($files, $form_state['storage']);
+ return system_modules_confirm_form($visible_files, $form_state['storage']);
}
$dependencies = array();
// Store module list for validation callback.
- $form['validation_modules'] = array('#type' => 'value', '#value' => $files);
+ $form['validation_modules'] = array('#type' => 'value', '#value' => $visible_files);
// Create storage for disabled modules as browser will disable checkboxes.
$form['disabled_modules'] = array('#type' => 'value', '#value' => array());
@@ -644,7 +652,7 @@ function system_modules($form_state = ar
// Traverse the files, checking for compatibility
$incompatible_core = array();
$incompatible_php = array();
- foreach ($files as $filename => $file) {
+ foreach ($visible_files as $filename => $file) {
// Ensure this module is compatible with this version of core.
if (!isset($file->info['core']) || $file->info['core'] != DRUPAL_CORE_COMPATIBILITY) {
$incompatible_core[$file->name] = $file->name;
@@ -659,7 +667,7 @@ function system_modules($form_state = ar
$disabled = array();
$throttle = array();
// Traverse the files retrieved and build the form.
- foreach ($files as $filename => $file) {
+ foreach ($visible_files as $filename => $file) {
$form['name'][$filename] = array('#value' => $file->info['name']);
$form['version'][$filename] = array('#value' => $file->info['version']);
$form['description'][$filename] = array('#value' => t($file->info['description']));
@@ -681,19 +689,20 @@ function system_modules($form_state = ar
// Check for missing dependencies.
if (is_array($file->info['dependencies'])) {
foreach ($file->info['dependencies'] as $dependency) {
- if (!isset($files[$dependency]) || !$files[$dependency]->status) {
- if (isset($files[$dependency])) {
- $dependencies[] = t('@module (disabled)', array('@module' => $files[$dependency]->info['name']));
+ if (!isset($files[$dependency])) {
+ $dependencies[] = t('@module (missing)', array('@module' => drupal_ucfirst($dependency)));
+ $disabled[] = $filename;
+ $form['disabled_modules']['#value'][$filename] = FALSE;
+ }
+ // Only display visible modules.
+ elseif (isset($visible_files[$dependency])) {
+ if ($files[$dependency]->status) {
+ $dependencies[] = t('@module (enabled)', array('@module' => $files[$dependency]->info['name']));
}
else {
- $dependencies[] = t('@module (missing)', array('@module' => drupal_ucfirst($dependency)));
- $disabled[] = $filename;
- $form['disabled_modules']['#value'][$filename] = FALSE;
+ $dependencies[] = t('@module (disabled)', array('@module' => $files[$dependency]->info['name']));
}
}
- else {
- $dependencies[] = t('@module (enabled)', array('@module' => $files[$dependency]->info['name']));
- }
}
// Add text for dependencies.
@@ -709,13 +718,16 @@ function system_modules($form_state = ar
// Mark dependents disabled so user can not remove modules being depended on.
$dependents = array();
foreach ($file->info['dependents'] as $dependent) {
- if ($files[$dependent]->status == 1) {
- $dependents[] = t('@module (enabled)', array('@module' => $files[$dependent]->info['name']));
- $disabled[] = $filename;
- $form['disabled_modules']['#value'][$filename] = TRUE;
- }
- else {
- $dependents[] = t('@module (disabled)', array('@module' => $files[$dependent]->info['name']));
+ // Hidden modules are unset already.
+ if (isset($visible_files[$dependent])) {
+ if ($files[$dependent]->status == 1) {
+ $dependents[] = t('@module (enabled)', array('@module' => $files[$dependent]->info['name']));
+ $disabled[] = $filename;
+ $form['disabled_modules']['#value'][$filename] = TRUE;
+ }
+ else {
+ $dependents[] = t('@module (disabled)', array('@module' => $files[$dependent]->info['name']));
+ }
}
}