summaryrefslogtreecommitdiff
path: root/modules/system/system.admin.inc
diff options
context:
space:
mode:
Diffstat (limited to 'modules/system/system.admin.inc')
-rw-r--r--modules/system/system.admin.inc29
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.