function start() { db::connect(); if (!router::get(1)) { return true; } self::$map = array('mode' => router::get(0), 'app' => router::get(1), 'module' => 'main', 'action' => router::get(2)); if (router::get(3)) { self::set('module', router::get(2)); self::set('action', router::get(3)); } s::set('SYS_PATH', 'http://' . SERVER . SYS_DIR); define('APP', APPS . self::get('app') . '/'); s::set('APP', APP); define('MODULE', APP . self::get('module') . '/'); s::set('MODULE', MODULE); /* Lang items */ if (self::get('mode') == 'webAjax') { web::getSite(); $lang = lang::gets(LANG_INDEX, SITE_ID); /* Authentification webUser */ web::observer(); } else { define('LANG_INDEX', SYS_INDEX); $lang = lang::gets(LANG_INDEX); admin::observer(); if (defined('ADMIN_USER_SITE_ID')) { define('ADMIN_SITE_ID', ADMIN_USER_SITE_ID); s::set('ADMIN_SITE_ID', ADMIN_USER_SITE_ID); $group_rules = ini::parse(SYS_ROOT . 'conf/admin/groups.ini', ADMIN_USER_GROUP_ID); define('RULE', $group_rules['rule']); db::table('admin_sites'); db::where('site_id', ADMIN_USER_SITE_ID); db::limit(1); define('ADMIN_SITE', db::get('site_domain')); s::set('ADMIN_SITE', ADMIN_SITE); } } /* Set params */ params::send(); $tmpl = params::get('tmpl'); $sys = false; if (self::get('mode') == 'adminAjax') { $sys = true; } buffer::init(0, self::get('app'), false, $tmpl); if (self::get('mode') == 'webAjax') { load::handler(self::get('app'), self::get('module'), self::get('action')); } else { load::module(self::get('app'), self::get('module'), self::get('action')); } /* Get plugin action */ ob_start(); /* запуск обработчика с возвратом данных тут два варианта либо данные просто выводим если нет шаблона, а если есть то сначала обрабатываем шаблон если буффер полный выводим информацию из него */ $buffer = buffer::gets(); if ($buffer[0]) { if ($sys) { buffer::$module = self::get('module'); } $section = params::get('section'); echo buffer::get($buffer[0]['app'], $buffer[0]['tmpl'], $buffer[0]['data'], $section, $sys); } $code = ob_get_contents(); ob_clean(); s::$mode = 'code'; s::setTmpl($code, $lang); s::display(); }
function display($sys_tmpl, $lang) { s::setTmpl(ROOT . STYLE_PATH . 'tmpls/' . $sys_tmpl . '.html', $lang); //errors::display(); s::display(); }
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(); } }