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