grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026 'XTemplate/xtpl.php', 'ListView' => 'include/ListView/ListView.php', 'Sugar_Smarty' => 'include/Sugar_Smarty.php', 'Javascript' => 'include/javascript/javascript.php', ); public static $noAutoLoad = array( 'Tracker' => true, ); public static $moduleMap = array(); /** * @param $class * @return bool */ public static function autoload($class) { $uclass = ucfirst($class); if (!empty(self::$noAutoLoad[$class])) { return false; } if (!empty(self::$map[$uclass])) { require_once self::$map[$uclass]; return true; } if (empty(self::$moduleMap)) { if (isset($GLOBALS['beanFiles'])) { self::$moduleMap = $GLOBALS['beanFiles']; } else { include 'include/modules.php'; self::$moduleMap = $beanFiles; } } if (!empty(self::$moduleMap[$class]) && file_exists(self::$moduleMap[$class])) { require_once self::$moduleMap[$class]; return true; } $viewPath = self::getFilenameForViewClass($class); if (!empty($viewPath)) { require_once $viewPath; return true; } $reportWidget = self::getFilenameForSugarWidget($class); if (!empty($reportWidget)) { require_once $reportWidget; return true; } return false; } /** * @param $class * @return bool|string */ protected static function getFilenameForViewClass($class) { $module = false; if (!empty($_REQUEST['module']) && substr($class, 0, strlen($_REQUEST['module'])) == $_REQUEST['module']) { //This is a module view $module = $_REQUEST['module']; $class = substr($class, strlen($module)); } if (substr($class, 0, 4) == 'View') { $view = strtolower(substr($class, 4)); if ($module) { $modulepath = "modules/$module/views/view.$view.php"; if (file_exists("custom/$modulepath")) { return "custom/$modulepath"; } if (file_exists($modulepath)) { return $modulepath; } } else { $basepath = "include/MVC/View/views/view.$view.php"; if (file_exists("custom/$basepath")) { return "custom/$basepath"; } if (file_exists($basepath)) { return $basepath; } } } return false; } /** * getFilenameForSugarWidget * This method attempts to autoload classes starting with name "SugarWidget". It first checks for the file * in custom/include/generic/SugarWidgets directory and if not found defaults to include/generic/SugarWidgets. * This method is used so that we can easily customize and extend these SugarWidget classes. * * @static * * @param $class String name of the class to load * * @return string file of the SugarWidget class; false if none found */ protected static function getFilenameForSugarWidget($class) { //Only bother to check if the class name starts with SugarWidget if (strpos($class, 'SugarWidget') !== false) { if (strpos($class, 'SugarWidgetField') !== false) { //We need to lowercase the portion after SugarWidgetField $name = substr($class, 16); if (!empty($name)) { $class = 'SugarWidgetField'.strtolower($name); } } $file = get_custom_file_if_exists("include/generic/SugarWidgets/{$class}.php"); if (file_exists($file)) { return $file; } } return false; } public static function loadAll() { foreach (self::$map as $class => $file) { require_once $file; } if (isset($GLOBALS['beanFiles'])) { $files = $GLOBALS['beanFiles']; } else { include 'include/modules.php'; $files = $beanFiles; } foreach ($files as $class => $file) { require_once $file; } } }