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(); } }
function view() { if (!self::$menu) { self::loadSiteMenu(); } $menu_name = params::get('menu'); if (!isset(self::$menu[$menu_name])) { return false; } $menu_id = self::$menu_id[$menu_name]; /* Menu conf */ if (!self::$menu_conf) { self::$menu_conf = conf::parse('menus'); } $menu = self::$menu[$menu_name][0]; if (self::$menu_conf) { /* Menu pages */ $menu_conf_pages_in = conf::get('menus', 'in', $menu_id); $menu_conf_pages_out = conf::get('menus', 'out', $menu_id); if (!conf::testPages($menu_conf_pages_out)) { if (in_array(PAGE_ID, $menu_conf_pages_out)) { return true; } } else { if (!conf::testPages($menu_conf_pages_in)) { if (!in_array(PAGE_ID, $menu_conf_pages_in)) { return true; } } } /* Menu events */ if (conf::get('menus', 'events', $menu_id)) { foreach (conf::get('menus', 'events', $menu_id) as $v) { $arr = explode('::', trim($v)); if (events::targetDetect($arr[0], $arr[1], $arr[2])) { /* :TODO: добавить передачу в params события, его названия и его значения */ if ($arr[3] == 'replace') { $menu_id = $arr[4]; $menu_name = self::$menu_by_id[$menu_id]; $menu = self::$menu[$menu_name][0]; } else { if ($arr[3] == 'hide') { return true; } } } } } } // $points_conf = conf::parse('points'); $points = ''; $i = 0; foreach ($menu as $k => $v) { $i++; /* Points conf $conf_index = $menu_id.'.'.$v['point_id']; if ($points_conf) { $points_conf_pages = conf::get('points', 'pages', $conf_index); if ($points_conf_pages && $points_conf_pages[0] != 0) { if (!in_array(PAGE_ID, $points_conf_pages)) continue; } } */ $v = self::getPointLink($v, $menu_name); $v['index'] = $i; /* Check parents */ if (strstr($v['menu_tmpl_link'], '{POINTS}')) { if (isset(self::$menu[$menu_name][$v['point_id']])) { $parent_points = ''; foreach (self::$menu[$menu_name][$v['point_id']] as $d => $f) { $f = self::getPointLink($f, $menu_name); $parent_points .= s::parseVars($f['menu_tmpl_link'], $f); } $v['menu_tmpl_link'] = str_replace('{POINTS}', $parent_points, $v['menu_tmpl_link']); } } $points .= s::parseVars($v['menu_tmpl_link'], $v); $menu_tmpl = $v['menu_tmpl']; } buffer::set(str_replace('{POINTS}', $points, $menu_tmpl)); }
function view() { /* Block conf */ $block_conf = conf::parse('blocks'); $blocks = array(); db::table('blocks'); db::where('block_pub', 1); db::where('site_id', SITE_ID); $res = db::select('block_id', 'block_name', 'block_code', 'block_title'); while ($row = mysql_fetch_assoc($res)) { $blocks[$row['block_id']] = $row; } foreach ($blocks as $k => $row) { if ($block_conf) { /* Block pages */ $block_conf_pages_in = conf::get('blocks', 'in', $k); $block_conf_pages_out = conf::get('blocks', 'out', $k); if (!conf::testPages($block_conf_pages_out)) { if (in_array(PAGE_ID, $block_conf_pages_out)) { $row['block_code'] = false; continue; } } else { if (!conf::testPages($block_conf_pages_in)) { if (!in_array(PAGE_ID, $block_conf_pages_in)) { $row['block_code'] = false; continue; } } } /* Block events */ if (conf::get('blocks', 'events', $k)) { foreach (conf::get('blocks', 'events', $k) as $v) { $arr = explode('::', trim($v)); if (events::targetDetect($arr[0], $arr[1], $arr[2])) { if ($arr[3] == 'replace') { if (isset($blocks[$arr[4]])) { $row['block_code'] = $blocks[$arr[4]]['block_code']; } } else { if ($arr[3] == 'handler') { load::handler($arr[4], $arr[5], $arr[6]); } else { if ($arr[3] == 'hide') { $row['block_code'] = false; } } } } else { if ($arr[3] == 'show') { $row['block_code'] = false; } } } } /* Block handlers */ if (conf::get('blocks', 'methods', $k)) { foreach (conf::get('blocks', 'methods', $k) as $v) { $arr = explode('::', trim($v)); if (count($arr) == 3) { load::handler($arr[0], $arr[1], $arr[2]); } } } if ($row['block_code'] !== false) { s::set($row['block_name'], $row['block_code']); } else { s::set($row['block_name'], ''); } /* Block JIP */ if ($row['block_code'] !== false) { if (!empty($row['block_title'])) { $name = $row['block_title']; } else { $name = $row['block_name']; } s::roll('legenda_jip_blocks', array('path' => 'http://' . SITE . SYS_DIR . 'blocks/main/edit/' . $row['block_id'] . '/', 'name' => $name)); } } } }