protected static function _load()
 {
     self::$_loaded = true;
     // load core configurations
     self::load('default.php');
     // load extensions' configurations
     SlExtensions::getInstance();
     if (!self::load('site.php')) {
         self::load('site.sample.php');
         $isHtml = isset($_GET['url']) && !preg_match('!(^|/)(js|css|img)/|\\.(rss|xml|atom)|/isAjax:1$!', '/' . $_GET['url']);
         if (!Configure::read() && $isHtml && env('HTTP_X_REQUESTED_WITH') !== "XMLHttpRequest") {
             self::write('Message.noConfig', '<b>Site configuration file not found!</b><br />Please create <em>/app/config/site.php</em>. You may use <em>/app/config/site.sample.php</em> as a template.');
         }
     }
     self::$_persistentData = self::load(TMP . 'sl_configuration.php');
     if (SlSession::started()) {
         self::$_data['session'] =& SlSession::$data;
     }
     SlCookie::ready();
     self::setCollections();
     Sl::setLocale();
     // If you are on PHP 5.3 correct your server timezone to fix the date & time related errors.
     $tz = self::read('I18n.options.timeZone');
     if ($tz) {
         date_default_timezone_set($tz);
     }
 }
 /**
  * Loads Components and prepares them for initialization.
  * Models will be lazy loaded by default
  *
  * @return mixed true if models found and instance created, or cakeError if models not found.
  * @access public
  * @see Controller::loadModel()
  * @link http://book.cakephp.org/view/977/Controller-Methods#constructClasses-986
  */
 function constructClasses()
 {
     if (SlExtensions::getInstance()->dependencyError) {
         $params = SlExtensions::getInstance()->dependencyError;
         SlExtensions::getInstance()->dependencyError = false;
         $this->cakeError('missingDependence', $params);
     }
     SlExtensions::trigger('constructClasses', $this);
     $this->__mergeVars();
     // Component class sets components by reference, hence triggering an uneeded read operation
     // Avoid magic __get() method calls by setting null values
     $this->components = Set::normalize($this->components);
     foreach ($this->components as $component => $settings) {
         if (strpos($component, '.') !== false) {
             list($plugin, $component) = explode('.', $component);
         }
         $this->{$component} = null;
     }
     if (!SlConfigure::read('Sl.options.lazyLoadModels')) {
         return parent::constructClasses();
     }
     $this->Component->init($this);
     if ($this->uses !== null || $this->uses !== array()) {
         if ($this->uses) {
             $uses = is_array($this->uses) ? $this->uses : array($this->uses);
             $modelClassName = $uses[0];
             if (strpos($uses[0], '.') !== false) {
                 list($plugin, $modelClassName) = explode('.', $uses[0]);
             }
             $this->modelClass = $modelClassName;
         }
     }
     return true;
 }
 public static function trigger($hook, $params = null, $options = array())
 {
     return SlExtensions::getInstance()->_trigger($hook, $params, $options);
 }