? drupaldown
? modules/syndication
Index: includes/module.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/module.inc,v
retrieving revision 1.132
diff -u -p -r1.132 module.inc
--- includes/module.inc	31 Oct 2008 02:18:22 -0000	1.132
+++ includes/module.inc	11 Nov 2008 01:12:07 -0000
@@ -102,6 +102,7 @@ function module_rebuild_cache() {
   $defaults = array(
     'dependencies' => array(),
     'dependents' => array(),
+    'supports' => array(),
     'description' => '',
     'package' => 'Other',
     'version' => NULL,
Index: modules/system/system.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.admin.inc,v
retrieving revision 1.103
diff -u -p -r1.103 system.admin.inc
--- modules/system/system.admin.inc	10 Nov 2008 05:23:00 -0000	1.103
+++ modules/system/system.admin.inc	11 Nov 2008 01:12:09 -0000
@@ -630,8 +630,6 @@ function system_modules($form_state = ar
     // form.
     return system_modules_confirm_form($files, $form_state['storage']);
   }
-  $dependencies = array();
-  $modules = array();
   $form['modules'] = array('#tree' => TRUE);
 
   // Used when checking if module implements a help page.
@@ -642,18 +640,16 @@ function system_modules($form_state = ar
     $extra = array();
     $extra['enabled'] = (bool) $module->status;
     // If this module has dependencies, add them to the array.
-    if (is_array($module->info['dependencies'])) {
-      foreach ($module->info['dependencies'] as $dependency) {
-        if (!isset($files[$dependency])) {
-          $extra['dependencies'][$dependency] = t('@module (<span class="admin-missing">missing</span>)', array('@module' => drupal_ucfirst($dependency)));
-          $extra['disabled'] = TRUE;
-        }
-        elseif (!$files[$dependency]->status) {
-          $extra['dependencies'][$dependency] = t('@module (<span class="admin-disabled">disabled</span>)', array('@module' => $files[$dependency]->info['name']));
-        }
-        else {
-          $extra['dependencies'][$dependency] = t('@module (<span class="admin-enabled">enabled</span>)', array('@module' => $files[$dependency]->info['name']));
-        }
+    foreach ($module->info['dependencies'] as $dependency) {
+      if (!isset($files[$dependency])) {
+        $extra['dependencies'][$dependency] = t('@module (<span class="admin-missing">missing</span>)', array('@module' => drupal_ucfirst($dependency)));
+        $extra['disabled'] = TRUE;
+      }
+      elseif (!$files[$dependency]->status) {
+        $extra['dependencies'][$dependency] = t('@module (<span class="admin-disabled">disabled</span>)', array('@module' => $files[$dependency]->info['name']));
+      }
+      else {
+        $extra['dependencies'][$dependency] = t('@module (<span class="admin-enabled">enabled</span>)', array('@module' => $files[$dependency]->info['name']));
       }
     }
     // Generate link for module's help page, if there is one.
@@ -664,7 +660,6 @@ function system_modules($form_state = ar
       }
     }
     // Mark dependents disabled so user can not remove modules being depended on.
-    $dependents = array();
     foreach ($module->info['dependents'] as $dependent) {
       if ($files[$dependent]->status == 1) {
         $extra['dependents'][] = t('@module (<span class="admin-enabled">enabled</span>)', array('@module' => $files[$dependent]->info['name']));
@@ -674,6 +669,18 @@ function system_modules($form_state = ar
         $extra['dependents'][] = t('@module (<span class="admin-disabled">disabled</span>)', array('@module' => $files[$dependent]->info['name']));
       }
     }
+    // Show modules enhanced by other modules.
+    foreach ($module->info['supports'] as $supports) {
+      if (!isset($files[$supports])) {
+        $extra['supports'][] = t('@module (<span class="admin-missing">missing</span>)', array('@module' => drupal_ucfirst($supports)));
+      }
+      elseif (!$files[$supports]->status) {
+        $extra['supports'][] = t('@module (<span class="admin-disabled">disabled</span>)', array('@module' => $files[$supports]->info['name']));
+      }
+      else {
+        $extra['supports'][] = t('@module (<span class="admin-enabled">disabled</span>)', array('@module' => $files[$supports]->info['name']));
+      }
+    }
     $form['modules'][$module->info['package']][$filename] = _system_modules_build_row($module->info, $extra);
   }
   // Add basic information to the fieldsets.
@@ -716,6 +723,7 @@ function _system_modules_build_row($info
   $extra += array(
     'dependencies' => array(),
     'dependents' => array(),
+    'supports' => array(),
     'disabled' => FALSE,
     'enabled' => FALSE,
     'help' => '',
@@ -735,6 +743,7 @@ function _system_modules_build_row($info
   );
   $form['#dependencies'] = $extra['dependencies'];
   $form['#dependents'] = $extra['dependents'];
+  $form['#supports'] = $extra['supports'];
 
   // Check the compatibilities.
   $compatible = TRUE;
@@ -2102,6 +2111,9 @@ function theme_system_modules_fieldset($
     if ($module['#dependents']) {
      $description .= '<div class="admin-dependencies">' . t('Required by: ') . implode(', ', $module['#dependents']) . '</div>';
     }
+    if ($module['#supports']) {
+     $description .= '<div class="admin-dependencies">' . t('Enhanced by: ') . implode(', ', $module['#supports']) . '</div>';
+    }
     $row[] = array('data' => $description, 'class' => 'description');
     $rows[] = $row;
   }
