'; } if (file_exists($_SERVER['DOCUMENT_ROOT'].'/install/')) { connect(); $install_message .= 'Необходимо удалить папку install/'; } $install_message = ''; if ($install_message != '') die($install_message); // Вычисляем строку запроса $uri = $_SERVER['REQUEST_URI']; if ($uri[0] == '/') $uri = substr($uri, 1); if ($uri[strlen($uri)-1] == '/') $uri = substr($uri, 0, strlen($uri) - 1); if ($url[strlen($url)-1] != '/') $url .= '/'; $uri = explode('/', $uri); foreach ($uri as $index => $value) { if ($value == '') unset($uri[$index]); } $sites = load_file('sites', true); if (!$sites) { connect(); $sites = array(); $sql = "SELECT * from $t_sites"; $res = sql_query($sql); while ($row = mysql_fetch_array($res)) { $sites[$row['index']]['sites'] = $row['sites']; $sites[$row['index']]['template'] = $row['template']; $sites[$row['index']]['robots'] = $row['robots']; $sites[$row['index']]['default'] = $row['default']; } save_file('sites', $sites, true); } $current_site = array(); $default_site = 0; foreach ($sites as $index => $value) { $temp = explode(',', strtolower(str_replace("\r\n", ",", $value['sites']))); foreach ($temp as $host) if ($_SERVER['HTTP_HOST'] == $host) $current_site['index'] = $index; if ($value['default'] == 1) $default = $index; } if (count($current_site) == 0) { $current_site['index'] = $default; } $site_prefix = ''; if ($current_site['index'] != 1) { $site_prefix = 'site'.$current_site['index'].'_'; } $current_site['template'] = $sites[$current_site['index']]['template']; $current_site['robots'] = $sites[$current_site['index']]['robots']; $cache_dir = 'site'.$current_site['index']; $template = $current_site['template']; require 'admin/tpl/tables.inc'; $langs = load_file('langs'); if (!$langs) { connect(); $langs = array(); $sql = "SELECT * from $t_lang where `show` = 1 order by `sort`, `index` asc"; $res = sql_query($sql); while ($row = mysql_fetch_array($res)) { $langs[$row['index']]['prefix'] = $row['prefix']; $langs[$row['index']]['default'] = $row['default']; $langs[$row['index']]['name'] = $row['name']; $langs[$row['index']]['sort'] = $row['sort']; $langs[$row['index']]['show'] = $row['show']; } save_file('langs', $langs); } // Вычисляем язык // auto_lang - значит язык явно не указан, а выбран автоматически, по дефолту $auto_lang = true; $lang = isset($uri[0]) ? $uri[0] : ''; foreach ($langs as $index => $value) { if ($value['prefix'] == $lang) $auto_lang = false; } if ($auto_lang) { foreach ($langs as $index => $value) { if ($value['default'] == 1) $lang = $value['prefix']; } } else unset($uri[0]); // Так как мы определили язык - заново вызовем файл констант, уже с новыми именами полей таблиц require 'admin/tpl/constants.php'; $settings = load_file('settings'); if (!$settings) { connect(); $settings = array(); $res = sql_query("SELECT * from $t_settings"); while ($row = mysql_fetch_array($res)) { $settings[$row['index']] = $row['value']; } save_file('settings', $settings); } $ext = $settings[4]; // Статистика, если не отключена if ($settings[7] == 1) { $stat_cookie = isset($_COOKIE['stat']) ? $_COOKIE['stat'] : ''; $stat_session_id = session_id(); $remote_ip = remote_ip(); if ($stat_cookie == '') { connect(); $sql = "SELECT `cookie` from $t_stat where `session` = '$stat_session_id'"; $res = sql_query($sql); if (mysql_num_rows($res) > 0) { $row = mysql_fetch_array($res); $stat_cookie = $row['cookie']; } } if ($stat_cookie == '') { connect(); $sql = "SELECT `cookie`, `start`, `session` from $t_stat where `ip` = '".$remote_ip."' order by `start` desc limit 1"; $res = sql_query($sql); if (mysql_num_rows($res) > 0) { $row = mysql_fetch_array($res); $time_line = time() - $row['start']; $stat_session_id = $row['session']; if ($time_line < 300) $stat_cookie = $row['cookie']; } } if ($stat_cookie == '') $stat_cookie = md5(uniqid().md5('StatCookie').md5($remote_ip)); setcookie('stat', $stat_cookie, time()+15552000, '/'); } // Прочитаем все константы $const = load_file('const'); if (!$const) { connect(); $const = array(); $res = sql_query("SELECT * from $t_const where (`show` = 1) ".$where_and); while ($row = mysql_fetch_array($res)) { $const[$row['index']] = nl2br($row[$ftext]); } save_file('const', $const); } $request = end($uri); foreach ($uri as $index => $value) { if ($value == $request) $num = $index; } if (strpos($request, '?') !== false) { $empty = substr($request, 0, strpos($request, '?')); $request = substr($request, strpos($request, '?')+1); $uri[$num] = $empty; } else { $request = ''; } if (strlen($ext) > 0) foreach ($uri as $index => $value) { if ((strpos($value, $ext) == (strlen($value) - strlen($ext))) and (strlen($value) != strlen($ext))) { $uri[$index] = urldecode(substr($value, 0, strlen($value) - strlen($ext))); } } $url_empty = $url; if (!$auto_lang) $url .= $lang.'/'; @set_pages(); @set_hotlink(); $menu_header = load_file('menu_header'); if (!$menu_header) { connect(); $sql = "SELECT * from $t_mheader ".$where." order by `index` asc"; $res = sql_query($sql); while ($row = mysql_fetch_array($res)) { $menu_header[$row['index']]['title'] = $row[$ftitle]; $menu_header[$row['index']]['page'] = $row['page']; $menu_header[$row['index']]['default'] = $row['default']; } save_file('menu_header', $menu_header); } if (is_array($menu_header)) foreach ($menu_header as $index => $value) { if ($value['default'] == 1) $menu_default = $index; } $page_parrent[0] = 0; $page = getbytype($type_main, 0); $search_page = getbytype($type_search, 0); $page_404 = getbytype(8, 0); $p_main = $page; $tmp = ''; foreach ($uri as $index => $value) { if ($value != '') $tmp .= $value.'/'; } $tmp = urldecode(substr($tmp, 0, strlen($tmp)-1)); $p404 = true; if (is_array($page_rewrite)) $page = array_search($tmp, $page_rewrite); if ((isset($page)) and ($page > 0)) { $p404 = false; } if (is_array($page_rewrite)) foreach ($page_rewrite as $index => $value) { if (($value != '') and (stripos($value, 'http://') === false)) $page_rewrite[$index] .= $ext; } if (($p404)) { $page = array_search($_SERVER['REQUEST_URI'], $page_oldrewrite); if (intval($page) > 0) { header("HTTP/1.1 301 Moved Permanently"); header('Location: '.$url.$page_rewrite[$page]); die(); } } $menu = load_file('menu'); if (!$menu) { connect(); $sql = "SELECT * from $t_menu where (`show` = 1) ".$where_and." order by `sort`, `index` asc"; $res = sql_query($sql); $n = mysql_num_rows($res); if ($n > 0) { while ($row = mysql_fetch_array($res)) { $id = $row['index']; $num = $row['id']; $parrent = $row['parrent']; $rewrite = $page_rewrite[$row['page']]; if (stripos($rewrite, 'http://') !== false) { $menu[$num][$parrent][$id]['rewrite'] = substr($rewrite, strrpos($rewrite, 'http://')); } else { $menu[$num][$parrent][$id]['rewrite'] = $url.$rewrite; } $menu[$num][$parrent][$id]['title'] = $row[$ftitle]; $menu[$num][$parrent][$id]['page'] = $row['page']; } } save_file('menu', $menu); } $sitemapxml_pos = 0; if (!$auto_lang) $sitemapxml_pos = 1; if ((isset($uri[$sitemapxml_pos])) and ($uri[$sitemapxml_pos] == 'sitemap.xml')) { require "mods/xmlmap.php"; } if ((isset($uri[$sitemapxml_pos]) and ($uri[$sitemapxml_pos] == 'robots.txt'))) { echo $current_site['robots']; die(); } $_tmp = explode('?', substr($_SERVER['REQUEST_URI'], 1)); $tmp = $_tmp[0]; if (strpos($tmp, $lang.'/') !== false) { $tmp = substr($tmp, strlen($lang) + 1); } $tmp = urldecode($tmp); if (is_array($page_rewrite)) if (array_search($tmp, $page_rewrite) == false) { $page = 0; $p404 = true; } if ($p404) { header("HTTP/1.0 404 Not Found"); $page = $page_404; } if ($page == 0) $page = intval($p_main); $metatags = load_file('metatags'); if (!$metatags) { connect(); $metatags = array(); $sql = "SELECT * from $t_general ".$where; $res = sql_query($sql); $row = mysql_fetch_array($res); $metatags['site_title'] = $row[$ftitle]; $metatags['keywords'] = $row[$fkeys]; $metatags['description'] = $row[$fdesc]; save_file('metatags', $metatags); } $page_array = load_file('page'.$page); if (!$page_array) { $page_array = get_page($page); } if ($page_array['keys'] != '') $metatags['keywords'] = $page_array['keys']; if ($page_array['desc'] != '') $metatags['description'] = $page_array['desc']; $metatags['title'] = $page_array['title']; if ($page_array['title'] == '') $metatags['title'] = $page_array['h1']; $p_type = $page_array['type']; $p_count = $page_array['count']; $p_gallery = $page_array['g_type']; $p_date = $page_array['date']; $p_format_date = $page_array['format_date']; $p_h1 = $page_array['h1']; $p_content = $page_array['text']; $p_short = $page_array['short']; $page_fields = $page_array['fields']; $p_fields = $page_array['fields']; $page_comments = get_comments($page); $page_comment_status = get_comments_status($page); if ($p_count > 0) $page_comment_status = 0; if ($request != '') { $tmp = explode('&', $request); $query = array(); foreach ($tmp as $index => $value) { if ($value != '') { $value = explode('=', $value); if (!isset($value[1])) $value[1] = ''; $query[$value[0]] = $value[1]; } } } if ((isset($query['rss'])) and (($p_type == 9) or ($p_type == 2))) require "mods/rss.php"; if (($p_count > 0) and ($page_has_child[$page] > 0)) { $show_page = isset($query[$page_more]) ? $query[$page_more] : 1; $start = ($show_page-1)*$p_count; $temp_type = 0; if ($p_type == 9) $temp_type = 1; $page_short = get_last_pages($page, $p_count, $start, $temp_type); $total = get_page_count($page, $temp_type); $total_pages = round($total / $p_count); if (($total_pages * $p_count) < $total) $total_pages += 1; if ($total < $p_count) $total_pages = 1; if ($total_pages > 0) { for ($i = 1; $i <= $total_pages; $i++) { $page_navigation[$i] = $url.$page_rewrite[$page].'?'.$page_more.'='.$i; if ($i == 1) $page_navigation[$i] = $url.$page_rewrite[$page]; } } } $page_images = load_file('pageimage'.$page); if (!$page_images) { $page_images = get_page_images($page); save_file('pageimage'.$page, $page_images); } $page_menu = (get_menu_by_page($page) > 0) ? get_menu_by_page($page) : $menu_default; if (isset($page_hotlink[$page][0])) if ($page_hotlink[$page][0] != $p_main) array_unshift($page_hotlink[$page], $p_main); if ($menu_header) foreach ($menu_header as $index => $value) { if ($value['page'] > 0) add_menu($index, 0, $value['page']); } $old_token = ''; $token = isset($_SESSION['token']) ? $_SESSION['token'] : ''; if ($token == '') { $token = md5(md5(remote_ip()).md5(time())); } else { $old_token = $_SESSION['token']; } $_SESSION['token'] = $token; require "mods/parce.php"; if (file_exists("template/".$template."/controller.php")) { require "template/".$template."/controller.php"; } else { echo 'Не могу загрузить шаблон!'; } if (($settings[7] == 1) and (!$p404)) { connect(); $sql = "SELECT * from $t_stat where (`cookie` = '$stat_cookie') and (`session` = '$stat_session_id')"; $res = mysql_query($sql); if (mysql_num_rows($res) == 0) { $bot = get_bot_name($_SERVER['HTTP_USER_AGENT']); $about = $_SERVER['HTTP_USER_AGENT']; $time = time(); $is_bot = 0; if ($bot != '') { $about = $bot; $is_bot = 1; } $referer = $_SERVER['HTTP_REFERER']; $sql = "INSERT INTO $t_stat (`bot`, `cookie`, `session`, `about`, `referer`, `ip`, `start`) VALUES ($is_bot, '$stat_cookie', '".session_id()."', '$about', '$referer', '$remote_ip', $time)"; $res = mysql_query($sql); $sql = "SELECT LAST_INSERT_ID()"; $res = mysql_query($sql); $row = mysql_fetch_array($res); $stat_id = $row[0]; $views = array(); $times = array(); $last_page = 0; } else { $row = mysql_fetch_array($res); $stat_id = $row['index']; $views = unserialize($row['views']); $times = unserialize($row['times']); $last_page = end($views); } if ($page != $last_page) { $views[] = $page; $times[] = time(); $v = serialize($views); $t = serialize($times); $sql = "UPDATE $t_stat SET `views` = '$v', `times` = '$t' WHERE `index` = $stat_id LIMIT 1"; $res = mysql_query($sql); } } if ($connected) mysql_close(); ?>