Файл: MobileCMS-2.7.0-beta/index.php
Строк: 75
<?php
/**
* MobileCMS
*
* Open source content management system for mobile sites
*
* @author KpuTuK <bykputuk@ya.ru>
* @copyright Copyright (c) 2015, MobileCMS Team
* @license MIT License
*/
error_reporting(7);
// Начало подсчета времени генерации страницы
$start_time = microtime(true);
defined('ROOT') or define('ROOT', str_replace(
'\', DIRECTORY_SEPARATOR, realpath(dirname(__FILE__))
).DIRECTORY_SEPARATOR);
define('APPS', ROOT.'Application'.DIRECTORY_SEPARATOR);
define('IN_SYSTEM', TRUE);
// Конфигурация системы
if (file_exists(ROOT.'data_files/config.php')) {
require_once(ROOT.'data_files/config.php');
}
else {
header('Location: ./install/index.php');
exit;
}
/** Автозагрузка классов **/
require_once ROOT.'/System/Kernel/ClassLoader.php';
$loader = new SystemKernelClassLoader(ROOT);
if ( ! file_exists(ROOT .'Application/Cache/map.php')) {
$loader->dumpClasses();
}
$loader->withPathes(include ROOT .'Application/Cache/map.php');
$loader->register();
/** Загрузчик конфигурации **/
$configLoader = new SystemKernelConfigConfigLoader(['Application/Configs']);
// Подключаем главные функции ядра
include_once(ROOT.'kernel/general_functions.php');
// Подключаем Registry
a_import('libraries/registry');
session_name('sid');
session_start();
// Легкий XSS clean =)
$_GET = array_map('htmlspecialchars_array', $_GET);
// Подключаем MySQL класс
a_import('libraries/mysql');
$db = new MySQL();
$db->connect();
$db->charset('utf8');
// Добавяем $db в Registry
Registry::set('db', $db);
// Загрузка конфигурации системы
$CONFIG = array();
$result = $db->query("SELECT * FROM #__config");
while ($item = $db->fetch_array($result)) {
$CONFIG[$item['module']][$item['key']] = $item['value'];
}
define('MAIN_MENU', $CONFIG['system']['main_menu']);
define('EXT', $CONFIG['system']['ext']);
define('DEFAULT_MODULE', $CONFIG['system']['default_module']);
// Добавяем $CONFIG в Registry
Registry::set('config', $CONFIG);
// Показ ошибок
if ($CONFIG['system']['display_errors']) {
ini_set('display_errors', 'On');
} else {
ini_set('display_errors', 'Off');
}
// Загрузка основного хелпера основного модуля
a_import('modules/main/helpers/main');
// Загрузка хелпера модулей
a_import('modules/modules/helpers/modules');
// Ежедневные действия в системе
a_import('kernel/everyday');
// Подключаем и инициализируем контроллер
a_import('libraries/controller');
/** Роутинг **/
$handle = (new SystemKernelRoutingRouter($configLoader))
->match(explode('?', $_SERVER['REQUEST_URI'])[0], null);
list($class, $action) = explode('@', $handle['handler']);
$obj = new $class();
$obj->$action($handle['params']);
// Вывод профайлера
if ($CONFIG['system']['profiler'] == 'on' && ACCESS_LEVEL == 10) a_profiler($start_time);
?>