]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Ticket #2701: old color settings now get reset when changing themes, so you don't...
authorBrion Vibber <brion@pobox.com>
Mon, 13 Sep 2010 20:37:13 +0000 (13:37 -0700)
committerBrion Vibber <brion@pobox.com>
Mon, 13 Sep 2010 20:37:13 +0000 (13:37 -0700)
actions/designadminpanel.php

index 763737175bc73de5703fb2e32d92276592712cf8..e3d772f7d1d18cfbd1fe339176ec5b32698851a9 100644 (file)
@@ -154,9 +154,22 @@ class DesignadminpanelAction extends AdminPanelAction
 
         $config->query('BEGIN');
 
-        // Only update colors if the theme has not changed.
-
-        if (!$themeChanged) {
+        if ($themeChanged) {
+            // If the theme has changed, reset custom colors and let them pick
+            // up the new theme's defaults.
+            $colors = array('background', 'content', 'sidebar', 'text', 'link');
+            foreach ($colors as $colorKey) {
+                // Clear from global config so we see defaults on this page...
+                $GLOBALS['config']['design'][$colorKey . 'color'] = false;
+
+                // And remove old settings from DB...
+                $this->deleteSetting('design', $colorKey . 'color');
+            }
+        } else {
+            // Only save colors from the form if the theme has not changed.
+            //
+            // @fixme a future more ajaxy form should allow theme switch
+            // and color customization in one step.
 
             $bgcolor = new WebColor($this->trimmed('design_background'));
             $ccolor  = new WebColor($this->trimmed('design_content'));