diff options
Diffstat (limited to 'modules/system.module')
-rw-r--r-- | modules/system.module | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/modules/system.module b/modules/system.module index d41f67fa9..bd0b89d82 100644 --- a/modules/system.module +++ b/modules/system.module @@ -787,14 +787,18 @@ function system_themes_execute($form_id, $values) { db_query("UPDATE {system} SET status = 0 WHERE type = 'theme'"); if ($_POST['op'] == t('Save configuration')) { - variable_set('theme_default', $values['theme_default']); if (is_array($values['status'])) { foreach ($values['status'] as $key => $choice) { if ($choice) { + // If theme status is being set to 1 from 0, initialize block data for this theme if necessary. + if (db_num_rows(db_query("SELECT status FROM {system} WHERE type = 'theme' AND name = '%s' AND status = 0", $key))) { + system_initialize_theme_blocks($key); + } db_query("UPDATE {system} SET status = 1 WHERE type = 'theme' and name = '%s'", $key); } } } + variable_set('theme_default', $values['theme_default']); } else { variable_del('theme_default'); |