Esempio n. 1
0
 static function buildActionCache($silent = true)
 {
     if (!is_dir(ActionFactory::$action_directory)) {
         return false;
     }
     // First get a list of all the files in this directory.
     $entries = array();
     $actions = array();
     $javascript = "";
     foreach (SugarAutoLoader::getFilesCustom(ActionFactory::$action_directory) as $path) {
         $entry = basename($path);
         if (strtolower(substr($entry, -4)) != ".php" || in_array($entry, ActionFactory::$exclude_files)) {
             continue;
         }
         require_once $path;
         $className = substr($entry, 0, strlen($entry) - 4);
         $actionName = call_user_func(array($className, "getActionName"));
         $actions[$actionName] = array('class' => $className, 'file' => $path);
         $javascript .= call_user_func(array($className, "getJavascriptClass"));
         if (!$silent) {
             echo "added action {$actionName} <br/>";
         }
     }
     if (empty($actions)) {
         return "";
     }
     create_cache_directory("Expressions/actions_cache.php");
     write_array_to_file('actions', $actions, sugar_cached('Expressions/actions_cache.php'));
     ActionFactory::$loaded_actions = $actions;
     return $javascript;
 }
Esempio n. 2
0
 /**
  * initializes the cache in question
  */
 protected static function _init()
 {
     $lastPriority = 1000;
     $locations = SugarAutoLoader::getFilesCustom('include/SugarCache');
     if (empty($locations)) {
         $locations = array('include/SugarCache/SugarCacheMemory.php');
     }
     foreach ($locations as $location) {
         $cacheClass = basename($location, ".php");
         if ($cacheClass == 'SugarCache') {
             continue;
         }
         require_once $location;
         if (class_exists($cacheClass) && is_subclass_of($cacheClass, 'SugarCacheAbstract')) {
             $GLOBALS['log']->debug("Found cache backend {$cacheClass}");
             $cacheInstance = new $cacheClass();
             if ($cacheInstance->useBackend() && $cacheInstance->getPriority() < $lastPriority) {
                 $GLOBALS['log']->debug("Using cache backend {$cacheClass}, since " . $cacheInstance->getPriority() . " is less than " . $lastPriority);
                 self::$_cacheInstance = $cacheInstance;
                 $lastPriority = $cacheInstance->getPriority();
             }
         }
     }
 }
Esempio n. 3
0
 /**
  * Builds the theme registry
  */
 public static function buildRegistry()
 {
     self::$_themes = array();
     // check for a default themedef file
     $themedefDefault = array();
     if (SugarAutoLoader::existing("custom/themes/default/themedef.php")) {
         $themedef = array();
         require "custom/themes/default/themedef.php";
         $themedefDefault = $themedef;
     }
     foreach (SugarAutoLoader::getFilesCustom("themes", true) as $file) {
         if (SugarAutoLoader::existing("{$file}/themedef.php")) {
             $themedef = array();
             require "{$file}/themedef.php";
             $themedef = array_merge($themedef, $themedefDefault);
             $themedef['dirName'] = basename($file);
             if (self::exists($themedef['dirName'])) {
                 $existingTheme = self::get($themedef['dirName']);
                 foreach (SugarTheme::getThemeDefFields() as $field) {
                     if (!isset($themedef[$field])) {
                         $themedef[$field] = $existingTheme->{$field};
                     }
                 }
                 self::remove($themedef['dirName']);
             }
             if (isset($themedef['name'])) {
                 self::add($themedef);
             }
         }
     }
     // default to setting the default theme as the current theme
     if (!isset($GLOBALS['sugar_config']['default_theme']) || !self::set($GLOBALS['sugar_config']['default_theme'])) {
         if (count(self::availableThemes()) == 0) {
             sugar_die('No valid themes are found on this instance');
         } else {
             self::set(self::getDefaultThemeKey());
         }
     }
 }
Esempio n. 4
0
 /**
  * Finds all the available loggers in the application
  */
 protected function _findAvailableLoggers()
 {
     $locations = SugarAutoLoader::getFilesCustom('include/SugarLogger');
     foreach ($locations as $location) {
         $loggerClass = basename($location, ".php");
         if ($loggerClass == "LoggerTemplate" || $loggerClass == "LoggerManager") {
             continue;
         }
         require_once $location;
         if (class_exists($loggerClass) && class_implements($loggerClass, 'LoggerTemplate')) {
             self::$_loggers[$loggerClass] = new $loggerClass();
         }
     }
 }