Example #1
0
 /**
  *
  *
  *
  *
  **/
 public static function getInstance($driver)
 {
     if (!(strcasecmp(substr($driver, strlen($driver) - strlen('driver')), 'driver') === 0)) {
         $driver .= 'Driver';
     }
     if (!file_exists(dirname(__FILE__) . '/Template/' . $driver . '.php')) {
         $s = new self();
         $s->printFatalError($s->lang->translate('No such template driver: [' . $driver . ']'));
     }
     self::$_driver = $driver;
     if (!isset(self::$_drivers[$driver]) || !is_object(self::$_drivers[$driver])) {
         require dirname(__FILE__) . '/Template/DriverDecorator.php';
         require dirname(__FILE__) . '/Template/' . $driver . '.php';
         $driver = 'CAT_Helper_Template_' . $driver;
         self::$_drivers[$driver] = new CAT_Helper_Template_DriverDecorator(new $driver());
         self::$_drivers[$driver]->setGlobals(array('CAT_ADMIN_URL' => CAT_ADMIN_URL, 'CAT_URL' => CAT_URL, 'CAT_PATH' => CAT_PATH, 'LEPTON_URL' => CAT_URL, 'CAT_PATH' => CAT_PATH, 'CAT_THEME_URL' => CAT_THEME_URL, 'URL_HELP' => URL_HELP));
         $defs = get_defined_constants(true);
         foreach ($defs['user'] as $const => $value) {
             if (preg_match('~^DEFAULT_~', $const)) {
                 // DEFAULT_CHARSET etc.
                 self::$_drivers[$driver]->setGlobals($const, $value);
                 continue;
             }
             if (preg_match('~^WEBSITE_~', $const)) {
                 // WEBSITE_HEADER etc.
                 self::$_drivers[$driver]->setGlobals($const, $value);
                 continue;
             }
             if (preg_match('~^SHOW_~', $const)) {
                 // SHOW_SEARCH etc.
                 self::$_drivers[$driver]->setGlobals($const, $value);
                 continue;
             }
             if (preg_match('~^FRONTEND_~', $const)) {
                 // FRONTEND_LOGIN etc.
                 self::$_drivers[$driver]->setGlobals($const, $value);
                 continue;
             }
             if (preg_match('~_FORMAT$~', $const)) {
                 // DATE_FORMAT etc.
                 self::$_drivers[$driver]->setGlobals($const, $value);
                 continue;
             }
             if (preg_match('~^ENABLE_~', $const)) {
                 // ENABLE_HTMLPURIFIER etc.
                 self::$_drivers[$driver]->setGlobals($const, $value);
                 continue;
             }
         }
         // This is for old language strings
         global $HEADING, $TEXT, $MESSAGE;
         foreach (array('TEXT', 'HEADING', 'MESSAGE') as $global) {
             if (isset(${$global}) && is_array(${$global})) {
                 self::$_drivers[$driver]->setGlobals($global, ${$global});
             }
         }
     }
     return self::$_drivers[$driver];
 }