diff options
Diffstat (limited to 'modules/system/system.admin.inc')
-rw-r--r-- | modules/system/system.admin.inc | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/modules/system/system.admin.inc b/modules/system/system.admin.inc index 834cea968..284d02eec 100644 --- a/modules/system/system.admin.inc +++ b/modules/system/system.admin.inc @@ -598,13 +598,32 @@ function system_modules($form_state = array()) { foreach ($module->requires as $requires => $v) { if (!isset($files[$requires])) { $extra['requires'][$requires] = t('@module (<span class="admin-missing">missing</span>)', array('@module' => drupal_ucfirst($requires))); - $extra['disabled'] = TRUE; + $extra['disabled'] = TRUE; + } + else { + $requires_name = $files[$requires]->info['name']; + if ($v) { + $requires_name .= $v['original_version']; + $current_version = str_replace(DRUPAL_CORE_COMPATIBILITY . '-', '', $files[$requires]->info['version']); + foreach ($v['versions'] as $required_version) { + if ((isset($required_version['op']) && !version_compare($current_version, $required_version['version'], $required_version['op'])) || + (isset($required_version['preg']) && !preg_match($required_version['preg'], $current_version))) { + $extra['requires'][$requires] = t('@module (<span class="admin-missing">incompatible with</span> version @version)', array( + '@module' => $requires_name, + '@version' => $files[$requires]->info['version'], + )); + $extra['disabled'] = TRUE; + } + } } - elseif (!$files[$requires]->status) { - $extra['requires'][$requires] = t('@module (<span class="admin-disabled">disabled</span>)', array('@module' => $files[$requires]->info['name'])); + if (!isset($extra['requires'][$requires])) { + if ($files[$requires]->status) { + $extra['requires'][$requires] = t('@module (<span class="admin-enabled">enabled</span>)', array('@module' => $requires_name)); + } + else { + $extra['requires'][$requires] = t('@module (<span class="admin-disabled">disabled</span>)', array('@module' => $requires_name)); + } } - else { - $extra['requires'][$requires] = t('@module (<span class="admin-enabled">enabled</span>)', array('@module' => $files[$requires]->info['name'])); } } // Generate link for module's help page, if there is one. |