function start() { /* Test cache */ if (GLOBAL_CACHE == true) { cache::get(); } /* Auth observer */ self::observerLogout('weblogoff'); db::connect(); /* Get site info */ self::getSite(); /* Get lang */ $lang = lang::gets(LANG_INDEX, SITE_ID); define('GUI_STYLE', 'http://' . SERVER . SYS_DIR . 'gui/' . SYS_STYLE); s::set('FACE_PATH', GUI_STYLE); s::set('SYS_DIR', SYS_DIR); s::set('SITE', SITE); s::set('NOW_YEAR', date('Y')); /* Links with links for this page and parents pages */ self::$page_tree = self::getThisPageTree(); /* Pages with pages parents */ self::loadPageData(); /* Page handler events */ if (self::get('page_handler') == '1') { self::getHandlerEvents(self::$page['page_folder'], URI_SELF); define('PAGE_HANDLER', true); } else { define('PAGE_HANDLER', false); self::$page['this'] = arrays::lastValue(explode('/', urldecode(string::clearBoth(URI_SELF)))); } /* Page cache */ define('PAGE_CACHE_ALL', false); define('PAGE_CACHE', false); define('PAGE_CACHE_TIME', 2); if (PAGE_CACHE == true && GLOBAL_CACHE == false) { if (PAGE_CACHE_ALL == true) { self::set('page_cache', '1'); } if (self::get('page_cache') == '1') { cache::get(); } } /* Main page analyse */ if (empty(router::$sections[0])) { define('MAIN_PAGE', true); } else { define('MAIN_PAGE', false); } /* Error 404 */ if (self::getError404() || isset($_SESSION['E404'])) { unset($_SESSION['E404']); load::handler('pages', 'main', 'view404'); } /* Set page variables */ self::$page = self::pageSettings(self::$page); s::set(self::$page); define('PAGE_ID', self::get('page_id')); s::set('PAGE_ID', PAGE_ID); /* Set tmpl */ self::$site_tmpl = self::get('tmpl_file'); /* Authentification adminUser */ self::$jip = false; if (isset($_SESSION['ADMIN_AUTH'])) { //adminUser::update('site_id', SITE_ID, $_SESSION['ADMIN_USER_ID']); adminUser::load($_SESSION['ADMIN_USER_ID']); if (settings::get('pages', 'jip') == '1') { self::$jip = true; } } /* Authentification webUser */ self::observer(); /* Site Handlers */ conf::parse('sites', SITE_ID); if (conf::get('sites', 'methods')) { foreach (conf::get('sites', 'methods') as $v) { $arr = explode('::', trim($v)); if (count($arr) == 3) { load::handler($arr[0], $arr[1], $arr[2]); } } } /* Load pages setup */ load::handlerSetup('pages'); /* Load blocks */ load::handler('blocks'); /* Load page conf */ conf::parse('pages', PAGE_ID); /* Events observe */ if (conf::get('pages', 'events')) { foreach (conf::get('pages', 'events') as $v) { $arr = explode('::', trim($v)); $event_detect = events::targetDetect($arr[0], $arr[1], $arr[2]); if ($arr[3] == 'hide') { if ($event_detect) { load::handler('pages', 'main', 'view404'); } } else { if ($arr[3] == 'handler') { if ($event_detect) { load::handler($arr[4], $arr[5], $arr[6]); } } else { if ($arr[3] == 'replace') { if ($event_detect) { params::set('page_id', $arr[4]); load::handler('pages', 'main', 'replace'); } } } } } } /* Handlers class' methods */ if (conf::get('pages', 'methods')) { foreach (conf::get('pages', 'methods') as $v) { $arr = explode('::', trim($v)); if (count($arr) == 3) { load::handler($arr[0], $arr[1], $arr[2]); } } } /* Load tmpl conf */ $tmpl_id = self::get('tmpl_id'); conf::parse('tmpls', $tmpl_id); /* Tmpl events */ if (conf::get('tmpls', 'events')) { foreach (conf::get('tmpls', 'events') as $v) { $arr = explode('::', trim($v)); if ($arr[0]) { if (events::targetDetect($arr[0], $arr[1], $arr[2])) { /* :TODO: добавить передачу в params события, его названия и его значения */ if ($arr[3] == 'replace') { $tmpl_replace_id = $arr[4]; db::table('templates'); db::where('tmpl_id', $tmpl_replace_id); self::$site_tmpl = db::get('tmpl_file'); } else { if ($arr[3] == 'handler') { load::handler($arr[4], $arr[5], $arr[6]); } } } } } } /* Tmpl handlers */ if (conf::get('tmpls', 'methods')) { foreach (conf::get('tmpls', 'methods') as $v) { $arr = explode('::', trim($v)); if (count($arr) == 3) { load::handler($arr[0], $arr[1], $arr[2]); } } } /* Set site template */ s::setTmpl(SYS_ROOT . 'tmpls/' . SITE . '/' . self::$site_tmpl, $lang); /* Get handlers */ s::resolver(); /* JIP */ if (self::$jip) { s::set('legenda_jip_page_path', 'http://' . SITE . SYS_DIR . 'pages/main/edit/' . PAGE_ID . '/'); self::$jip_html = ' <script src="http://' . SERVER . SYS_DIR . 'gui/js/lib/prototype.js" type="text/javascript"></script> <script src="http://' . SERVER . SYS_DIR . 'gui/original/js/jip.js" type="text/javascript"></script> <link rel="stylesheet" href="http://' . SERVER . SYS_DIR . 'gui/original/css/jip.css" type="text/css" /> <div id="legenda_jip_show" style="display: none;"> <a href="javascript:void(null);" onclick="legendaJIPShow();" id="legenda_jip_show_link">Показать</a> </div> <div id="legenda_jip" style="display: none;"> <div id="legenda_jip_inner"> <a href="javascript:void(null);" onclick="legendaJIPHide();" id="legenda_jip_hide_link">Скрыть</a> <a href="{legenda_jip_page_path}">Редактировать страницу</a> <select onchange="legendaJIPGoToEdit(this.value);"> <option value="0">Редактировать блок</option> <option value="0">-----------------------------</option> {start legenda_jip_blocks} <option value="{path}">{name}</option> {end legenda_jip_blocks} </select> <a href="http://' . SERVER . SYS_DIR . '?adminlogoff" id="legenda_jip_logout">Выход</a> </div> </div> </body>'; } /* Site display */ $code = s::get(); if (isset($_SESSION['E404'])) { headers::self(); } echo $code; if (PAGE_CACHE == true && GLOBAL_CACHE == false) { if (self::$page['page_cache'] == '1') { cache::save(); } } if (GLOBAL_CACHE == true) { cache::save(); } }