summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/module.inc4
-rw-r--r--modules/system/system.module5
2 files changed, 9 insertions, 0 deletions
diff --git a/includes/module.inc b/includes/module.inc
index 7cd13ec3d..f8a565746 100644
--- a/includes/module.inc
+++ b/includes/module.inc
@@ -123,6 +123,10 @@ function module_rebuild_cache() {
// Merge in defaults and save.
$files[$filename]->info = $file->info + $defaults;
+ // Invoke hook_system_info_alter() to give installed modules a chance to
+ // modify the data in the .info files if necessary.
+ drupal_alter('system_info', $files[$filename]->info, $files[$filename]);
+
// Log the critical hooks implemented by this module.
$bootstrap = 0;
foreach (bootstrap_hooks() as $hook) {
diff --git a/modules/system/system.module b/modules/system/system.module
index dbb40ef93..e2d73b360 100644
--- a/modules/system/system.module
+++ b/modules/system/system.module
@@ -1091,6 +1091,11 @@ function system_theme_data() {
// Read info files for each theme
foreach ($themes as $key => $theme) {
$themes[$key]->info = drupal_parse_info_file($theme->filename) + $defaults;
+
+ // Invoke hook_system_info_alter() to give installed modules a chance to
+ // modify the data in the .info files if necessary.
+ drupal_alter('system_info', $themes[$key]->info, $themes[$key]);
+
if (!empty($themes[$key]->info['base theme'])) {
$sub_themes[] = $key;
}