Advertisement
Guest User

Untitled

a guest
Dec 18th, 2014
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.72 KB | None | 0 0
  1. <?php
  2. // Version
  3. define('VERSION', '1.5.5.1.1');
  4.  
  5. // Configuration
  6. if (file_exists('config.php')) {
  7. require_once('config.php');
  8. }
  9.  
  10. // Install
  11. if (!defined('DIR_APPLICATION')) {
  12. header('Location: install/index.php');
  13. exit;
  14. }
  15.  
  16. // Startup
  17. require_once(DIR_SYSTEM . 'startup.php');
  18.  
  19. // Application Classes
  20. require_once(DIR_SYSTEM . 'library/customer.php');
  21. require_once(DIR_SYSTEM . 'library/affiliate.php');
  22. require_once(DIR_SYSTEM . 'library/currency.php');
  23. require_once(DIR_SYSTEM . 'library/tax.php');
  24. require_once(DIR_SYSTEM . 'library/weight.php');
  25. require_once(DIR_SYSTEM . 'library/length.php');
  26. require_once(DIR_SYSTEM . 'library/cart.php');
  27. require_once(DIR_SYSTEM . 'library/ocstore.php');
  28.  
  29. // Registry
  30. $registry = new Registry();
  31.  
  32. // Loader
  33. $loader = new Loader($registry);
  34. $registry->set('load', $loader);
  35.  
  36. // Config
  37. $config = new Config();
  38. $registry->set('config', $config);
  39.  
  40. // Database
  41. $db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
  42. $registry->set('db', $db);
  43.  
  44. // Store
  45. if (isset($_SERVER['HTTPS']) && (($_SERVER['HTTPS'] == 'on') || ($_SERVER['HTTPS'] == '1'))) {
  46. $store_query = $db->query("SELECT * FROM " . DB_PREFIX . "store WHERE REPLACE(`ssl`, 'www.', '') = '" . $db->escape('https://' . str_replace('www.', '', $_SERVER['HTTP_HOST']) . rtrim(dirname($_SERVER['PHP_SELF']), '/.\\') . '/') . "'");
  47. } else {
  48. $store_query = $db->query("SELECT * FROM " . DB_PREFIX . "store WHERE REPLACE(`url`, 'www.', '') = '" . $db->escape('http://' . str_replace('www.', '', $_SERVER['HTTP_HOST']) . rtrim(dirname($_SERVER['PHP_SELF']), '/.\\') . '/') . "'");
  49. }
  50.  
  51. if ($store_query->num_rows) {
  52. $config->set('config_store_id', $store_query->row['store_id']);
  53. } else {
  54. $config->set('config_store_id', 0);
  55. }
  56.  
  57. // Settings
  58. $query = $db->query("SELECT * FROM " . DB_PREFIX . "setting WHERE store_id = '0' OR store_id = '" . (int)$config->get('config_store_id') . "' ORDER BY store_id ASC");
  59.  
  60. foreach ($query->rows as $setting) {
  61. if (!$setting['serialized']) {
  62. $config->set($setting['key'], $setting['value']);
  63. } else {
  64. $config->set($setting['key'], unserialize($setting['value']));
  65. }
  66. }
  67.  
  68. if (!$store_query->num_rows) {
  69. $config->set('config_url', HTTP_SERVER);
  70. $config->set('config_ssl', HTTPS_SERVER);
  71. }
  72.  
  73. // Url
  74. $url = new Url($config->get('config_url'), $config->get('config_secure') ? $config->get('config_ssl') : $config->get('config_url'));
  75. $registry->set('url', $url);
  76.  
  77. // Log
  78. $log = new Log($config->get('config_error_filename'));
  79. $registry->set('log', $log);
  80.  
  81. function error_handler($errno, $errstr, $errfile, $errline) {
  82. global $log, $config;
  83.  
  84. switch ($errno) {
  85. case E_NOTICE:
  86. case E_USER_NOTICE:
  87. $error = 'Notice';
  88. break;
  89. case E_WARNING:
  90. case E_USER_WARNING:
  91. $error = 'Warning';
  92. break;
  93. case E_ERROR:
  94. case E_USER_ERROR:
  95. $error = 'Fatal Error';
  96. break;
  97. default:
  98. $error = 'Unknown';
  99. break;
  100. }
  101.  
  102. if ($config->get('config_error_display')) {
  103. echo '<b>' . $error . '</b>: ' . $errstr . ' in <b>' . $errfile . '</b> on line <b>' . $errline . '</b>';
  104. }
  105.  
  106. if ($config->get('config_error_log')) {
  107. $log->write('PHP ' . $error . ': ' . $errstr . ' in ' . $errfile . ' on line ' . $errline);
  108. }
  109.  
  110. return true;
  111. }
  112.  
  113. // Error Handler
  114. set_error_handler('error_handler');
  115.  
  116. // Request
  117. $request = new Request();
  118. $registry->set('request', $request);
  119.  
  120. // Response
  121. $response = new Response();
  122. $response->addHeader('Content-Type: text/html; charset=utf-8');
  123. $response->setCompression($config->get('config_compression'));
  124. $registry->set('response', $response);
  125.  
  126. // Cache
  127. $cache = new Cache();
  128. $registry->set('cache', $cache);
  129.  
  130. // Session
  131. $session = new Session();
  132. $registry->set('session', $session);
  133.  
  134. // Language Detection
  135. $languages = array();
  136.  
  137. $query = $db->query("SELECT * FROM `" . DB_PREFIX . "language` WHERE status = '1'");
  138.  
  139. foreach ($query->rows as $result) {
  140. $languages[$result['code']] = $result;
  141. }
  142.  
  143. $detect = '';
  144.  
  145. if (isset($request->server['HTTP_ACCEPT_LANGUAGE']) && $request->server['HTTP_ACCEPT_LANGUAGE']) {
  146. $browser_languages = explode(',', $request->server['HTTP_ACCEPT_LANGUAGE']);
  147.  
  148. foreach ($browser_languages as $browser_language) {
  149. foreach ($languages as $key => $value) {
  150. if ($value['status']) {
  151. $locale = explode(',', $value['locale']);
  152.  
  153. if (in_array($browser_language, $locale)) {
  154. $detect = $key;
  155. }
  156. }
  157. }
  158. }
  159. }
  160.  
  161. if (isset($session->data['language']) && array_key_exists($session->data['language'], $languages) && $languages[$session->data['language']]['status']) {
  162. $code = $session->data['language'];
  163. } elseif (isset($request->cookie['language']) && array_key_exists($request->cookie['language'], $languages) && $languages[$request->cookie['language']]['status']) {
  164. $code = $request->cookie['language'];
  165. } elseif ($detect) {
  166. $code = $detect;
  167. } else {
  168. $code = $config->get('config_language');
  169. }
  170.  
  171. if (!isset($session->data['language']) || $session->data['language'] != $code) {
  172. $session->data['language'] = $code;
  173. }
  174.  
  175. if (!isset($request->cookie['language']) || $request->cookie['language'] != $code) {
  176. setcookie('language', $code, time() + 60 * 60 * 24 * 30, '/', $request->server['HTTP_HOST']);
  177. }
  178.  
  179. $config->set('config_language_id', $languages[$code]['language_id']);
  180. $config->set('config_language', $languages[$code]['code']);
  181.  
  182. // Language
  183. $language = new Language($languages[$code]['directory']);
  184. $language->load($languages[$code]['filename']);
  185. $registry->set('language', $language);
  186.  
  187. // Document
  188. $registry->set('document', new Document());
  189.  
  190. // Customer
  191. $registry->set('customer', new Customer($registry));
  192.  
  193. // Affiliate
  194. $registry->set('affiliate', new Affiliate($registry));
  195.  
  196. if (isset($request->get['tracking'])) {
  197. setcookie('tracking', $request->get['tracking'], time() + 3600 * 24 * 1000, '/');
  198. }
  199.  
  200. // Currency
  201. $registry->set('currency', new Currency($registry));
  202.  
  203. // Tax
  204. $registry->set('tax', new Tax($registry));
  205.  
  206. // Weight
  207. $registry->set('weight', new Weight($registry));
  208.  
  209. // Length
  210. $registry->set('length', new Length($registry));
  211.  
  212. // Cart
  213. $registry->set('cart', new Cart($registry));
  214.  
  215. // ocStore features
  216. $registry->set('ocstore', new ocStore($registry));
  217. // Encryption
  218. $registry->set('encryption', new Encryption($config->get('config_encryption')));
  219.  
  220. // Front Controller
  221. $controller = new Front($registry);
  222. // SEO URL's
  223. if (!$seo_type = $config->get('config_seo_url_type')) {
  224. $seo_type = 'seo_url';
  225. }
  226. $controller->addPreAction(new Action('common/' . $seo_type));
  227.  
  228.  
  229. // Maintenance Mode
  230. $controller->addPreAction(new Action('common/maintenance'));
  231.  
  232. // Router
  233. if (isset($request->get['route'])) {
  234. $action = new Action($request->get['route']);
  235. } else {
  236. $action = new Action('common/home');
  237. }
  238.  
  239. // Dispatch
  240. $controller->dispatch($action, new Action('error/not_found'));
  241.  
  242. // Output
  243. $response->output();
  244. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement