Пример #1
0
 /**
  * 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);
     }
 }