Просмотр файла mc-2.7.0/index.php

Размер файла: 3.04Kb
  1. <?php
  2.  
  3. /**
  4. * MobileCMS
  5. *
  6. * Open source content management system for mobile sites
  7. *
  8. * @author MobileCMS Team <support@mobilecms.pro>
  9. * @copyright Copyright (c) 2011-2019, MobileCMS Team
  10. * @link https://mobilecms.pro Official site
  11. * @license MIT license
  12. */
  13. // Начало подсчета времени генерации страницы
  14. $start_time = microtime(true);
  15.  
  16. defined('ROOT') or define('ROOT', str_replace('\\', '/', realpath(dirname(__FILE__))) . '/');
  17. define('IN_SYSTEM', TRUE);
  18.  
  19. // Конфигурация системы
  20. if (file_exists(ROOT . 'data_files/config.php')) {
  21. require_once(ROOT . 'data_files/config.php');
  22. } else {
  23. header('Location: ./install/index.php');
  24. exit;
  25. }
  26.  
  27. // Подключаем главные функции ядра
  28. include_once(ROOT . 'kernel/general_functions.php');
  29. // Конфигурация php
  30. include_once(ROOT . 'kernel/ini_set.php');
  31. // Подключаем Registry
  32. a_import('libraries/registry');
  33.  
  34. session_name('sid');
  35. session_start();
  36.  
  37. // Легкий XSS clean =)
  38. $_GET = array_map('htmlspecialchars_array', $_GET);
  39.  
  40. // Подключаем MySQL класс
  41. a_import('libraries/mysql');
  42. $db = new MySQL();
  43. $db->connect();
  44. $db->charset('utf8');
  45.  
  46. // Добавяем $db в Registry
  47. Registry::set('db', $db);
  48.  
  49. // Загрузка конфигурации системы
  50. $CONFIG = array();
  51. $result = $db->query("SELECT * FROM #__config");
  52. while ($item = $db->fetch_array($result)) {
  53. $CONFIG[$item['module']][$item['key']] = $item['value'];
  54. }
  55.  
  56. define('MAIN_MENU', $CONFIG['system']['main_menu']);
  57. define('EXT', $CONFIG['system']['ext']);
  58. define('DEFAULT_MODULE', $CONFIG['system']['default_module']);
  59.  
  60. // Добавяем $CONFIG в Registry
  61. Registry::set('config', $CONFIG);
  62.  
  63. // Показ ошибок
  64. if ($CONFIG['system']['display_errors']) {
  65. ini_set('display_errors', 'On');
  66. } else {
  67. ini_set('display_errors', 'Off');
  68. }
  69.  
  70. // Мини роутинг
  71. a_import('libraries/route');
  72. $route = new Route;
  73.  
  74. // Загрузка основного хелпера основного модуля
  75. a_import('modules/main/helpers/main');
  76. // Загрузка хелпера модулей
  77. a_import('modules/modules/helpers/modules');
  78.  
  79. // Ежедневные действия в системе
  80. a_import('kernel/everyday');
  81.  
  82. // Подключаем и инициализируем контроллер
  83. a_import('libraries/controller');
  84. $controller = a_load_class(ROUTE_CONTROLLER_PATH, 'controller');
  85.  
  86. // Выполняем метод контроллера
  87. if (!empty($route->action)) {
  88. $action_method = 'action_' . $route->action;
  89.  
  90. if (method_exists($controller, $action_method)) {
  91. $controller->$action_method();
  92. } else {
  93. header('Location: ' . a_url('main/page_not_found', '', true));
  94. }
  95. } else {
  96. if (method_exists($controller, 'action_index')) {
  97. $controller->action_index();
  98. } else {
  99. header('Location: ' . a_url('main/page_not_found', '', true));
  100. }
  101. }
  102.  
  103. // Вывод профайлера
  104. if ($CONFIG['system']['profiler'] == 'on' && ACCESS_LEVEL == 10) {
  105. a_profiler($start_time);
  106. }