/** * Write the theme metadata file. This method actually does: * - Read contents of base/default theme metadata file * - Override variables (if $resetBaseDefaultTheme is false) * - Save the file as the theme metadata file. * * @param bool $reset True if you want to reset the theme to the base default theme */ public function saveThemeVariables($reset = false) { // take the contents from /themes/clients/base/default/variables.php $baseDefaultTheme = new SidecarTheme('base', 'default'); $baseDefaultThemePaths = $baseDefaultTheme->getPaths(); include $baseDefaultThemePaths['base'] . 'variables.php'; if (is_dir($this->paths['cache'])) { rmdir_recursive($this->paths['cache']); } if ($reset) { //In case of reset we just need to delete the theme files. if (is_dir($this->paths['custom'])) { rmdir_recursive($this->paths['custom']); } } else { //override the base variables with variables passed in arguments foreach ($this->variables as $lessVar => $lessValue) { foreach ($lessdefs as $type => $varset) { if (isset($lessdefs[$type][$lessVar])) { $lessdefs[$type][$lessVar] = $lessValue; } } } // save the theme variables in /themes/clients/$client/$themeName/variables.php sugar_mkdir($this->paths['custom'], null, true); $write = "<?php\n" . '// created: ' . date('Y-m-d H:i:s') . "\n" . '$lessdefs = ' . var_export_helper($lessdefs) . ';'; sugar_file_put_contents($this->paths['custom'] . 'variables.php', $write); } }