= 2) { $url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $url = parse_url($url); $scheme = $url["scheme"]; $host = $url["host"]; $path = $url["path"]; $url = $scheme . "://" . $host . $path; // $url = $scheme . "://" . $host . $path . '?p=' . $_REQUEST['p']; $meta_canonical = ''; return $meta_canonical; } else { return false; } } function checkRobots() { $res = file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/robots-main.txt'); preg_match_all("/Disallow: (.*?)\s/imU", $res, $matches); $robots = $matches[1]; //echo '
'; //print_r($robots); // exit; // функция проверки запрета индексации переданного URL // Возвращает true, если переданный URL запрещен к индексации $f = $_SERVER['REQUEST_URI']; // цикл по всем строкам Disallow foreach ($robots as $item) { $item = str_replace('/', '\/', str_replace('?', '\?', str_replace('*', '', str_replace('+', '\+', str_replace('.', '\.', $item))))); $item = '/' . $item . '/'; //if (isset($_REQUEST['test'])) { // echo $item.'
'; //echo $f.'
'; //} if (preg_match($item, $f)) { return true; } // $-привязка к концу сработает автоматически } return false; } // протокол https, если изначально https, то ложь function siteProtocol() { return (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? false : "https://"; } // домен с www, если изначально с www то ложь function getServerName() { preg_match_all('/www/', $_SERVER['SERVER_NAME'], $arrWWW); if (empty($arrWWW[0])) { return 'www.' . $_SERVER['SERVER_NAME']; } else { return false; } } // контроллер редиректа function urlRedirectController() { $request = $_SERVER['REQUEST_URI']; $err = false; $url = ''; // удалить лишние слеши preg_match_all('/\/{2,}/', $request, $arrDoubleSlashes); if (!empty($arrDoubleSlashes[0])) { $err = true; $request = preg_replace('/\/{2,}/', '/', $request); } // убрать индексные файлы из урл if (strpos($request, "index.php")) { $err = true; $request = str_replace('/index.php', '/', $request); } if (strpos($request, "index.html")) { $err = true; $request = str_replace('/index.html', '/', $request); } if (strpos($request, "index.htm")) { $err = true; $request = str_replace('/index.htm', '/', $request); } if (strpos($request, "market-api") === false) { // добавить слеш в конец в разделах $lenRequest = mb_strlen($request, 'utf-8'); $lastChar = mb_substr($request, -1, $lenRequest, 'utf-8'); $isGetParams = strripos($request, '?'); if ($lenRequest > 1 && $lastChar != '/' && $isGetParams === false) { $err = true; $request = $request . '/'; } // в нижний регистр $request = urldecode($request); if (mb_strtolower($request, 'utf-8') != $request) { $request2 = str_replace(array("%7D", "%7B"), array("}", "{"), $request); if ($request2 == $request) { $err = true; $request = strtolower($request); } } } switch ($_SERVER['SERVER_NAME']) { case 'trapeza.ru': case 'www.trapeza.ru': $domain = getServerName(); if ($domain !== false) { $err = true; $url = $domain . $request; } else { $url = $_SERVER['SERVER_NAME'] . $request; } $protocol = siteProtocol(); if ($protocol !== false) { $err = true; $url = $protocol . $url; } else { $url = 'https://' . $url; } /* if ($protocol !== false) { $url = 'http://' . $url; } else { $err = true; $url = 'http://' . $url; } */ break; case 'www.trapeza.kz': case 'trapeza.kz': case 'test.trapeza.kz': case 'www.test.trapeza.kz': case 'www.trapeza.kg': case 'trapeza.kg': case 'www.trapeza.by': case 'trapeza.by': case 'www.trapeza.uz': case 'trapeza.uz': $domain = getServerName(); if ($domain !== false) { $err = true; $url = $domain . $request; } else { $url = $_SERVER['SERVER_NAME'] . $request; } $protocol = siteProtocol(); if ($protocol !== false) { $err = true; $url = $protocol . $url; } else { $url = 'https://' . $url; } break; } if ($err) { header("HTTP/1.1 301 Moved Permanently"); header("Location: $url", true, 301); exit(); } } function isBot(&$botname = '') { /* Эта функция будет проверять, является ли посетитель роботом поисковой системы */ $bots = array( 'rambler', 'googlebot', 'aport', 'yahoo', 'msnbot', 'turtle', 'mail.ru', 'omsktele', 'yetibot', 'picsearch', 'sape.bot', 'sape_context', 'gigabot', 'snapbot', 'alexa.com', 'megadownload.net', 'askpeter.info', 'igde.ru', 'ask.com', 'qwartabot', 'yanga.co.uk', 'scoutjet', 'similarpages', 'oozbot', 'shrinktheweb.com', 'aboutusbot', 'followsite.com', 'dataparksearch', 'google-sitemaps', 'appEngine-google', 'feedfetcher-google', 'liveinternet.ru', 'xml-sitemaps.com', 'agama', 'metadatalabs.com', 'h1.hrn.ru', 'googlealert.com', 'seo-rus.com', 'yaDirectBot', 'yandeG', 'yandex', 'yandexSomething', 'Copyscape.com', 'AdsBot-Google', 'domaintools.com', 'Nigma.ru', 'bing.com', 'dotnetdotcom' ); foreach ($bots as $bot) if (stripos($_SERVER['HTTP_USER_AGENT'], $bot) !== false) { $botname = $bot; return true; } return false; } // вызов редиректов urlRedirectController(); ob_start(); header("Content-Type: text/html; charset=utf-8"); include_once "common/common.php"; if (isset($_REQUEST['utm_source'])) { $_SESSION['utm_source'] = $_REQUEST['utm_source']; } if (isset($_REQUEST['utm_campaign'])) { $_SESSION['utm_campaign'] = $_REQUEST['utm_campaign']; } /* switch($_SERVER['SERVER_NAME']) { case 'trapeza.ru': case 'www.trapeza.ru': $_SESSION['SITE'] = 'ru'; break; case 'kz.gorkrendel.tmweb.ru': $_SESSION['SITE'] = 'kz'; break; } */ $_SESSION['iphone'] = true; $_SESSION['microtime'] = microtime(true); //if (isset($_REQUEST['test']) && $_REQUEST['test'] == 'y') { // echo ''; // print_r($_SESSION['siteuser']); // exit; //} RegisterModule('main'); $objFillial = new CommonObject('s4y_fillials', array('ID', 'Left_key', 'Right_key', 'Level_key', 'ACTIVE', 'subdomain'), array()); $subArray = explode(".trapeza.",$_SERVER['SERVER_NAME']); if (count($subArray)==2 && $subArray[0]!='www'){ //subdomain $sub = $subArray[0]; if (strpos($sub, 'www.') !== false){ $sub = str_replace('www.','',$sub); header("HTTP/1.1 301 Moved Permanently"); header("Location: https://$sub.trapeza.{$subArray[1]}", true, 301); exit(); }else{ $filial = $objFillial->GetList([],['ACTIVE'=>'Y', 'subdomain'=>$sub]); if (count($filial)){ $filialID = $filial[0]['ID']; $_SESSION['CURCITYPHONE'] = $filial[0]['MAIN_CODE'] . ' ' . $filial[0]['MAIN_PHONE']; $_SESSION['CURCITY'] = $filial[0]; setCookie("CITYISSELECTED", "Y", time() + 3600 * 24 * 2, "/"); $_COOKIE['CITYISSELECTED'] = "Y"; setcookie('CURCITY', $filialID, time() + 3600 * 24 * 2, "/"); $_COOKIE['CURCITY'] = $filialID; } } } if (isset($_REQUEST['current_city']) && intval($_REQUEST['current_city']) > 0) { $filial = $objFillial->GetById($_REQUEST['current_city']); if ($filial && count($filial)){ if ($filial['subdomain']!='') { $sub = $filial['subdomain']; header("HTTP/1.1 301 Moved Permanently"); header("Location: https://$sub.trapeza.ru", true, 301); exit(); }else{ $_SESSION['CURCITYPHONE'] = $filial['MAIN_CODE'] . ' ' . $filial['MAIN_PHONE']; $_SESSION['CURCITY'] = $filial; setcookie('CURCITY', $filial['ID'], time() + 3600 * 24 * 2, "/"); $_COOKIE['CURCITY'] = intval($filial['ID']); } } } if (isset($_REQUEST['city']) && !empty($_REQUEST['city'])) { $objFillial = new CommonObject('s4y_fillials', array('ID', 'Left_key', 'Right_key', 'Level_key', 'UrlRewriteCode', 'ACTIVE', 'MODIFIED_DATE', 'zip', 'Title', 'Adress', 'Phones', 'Online', 'Schedule', 'Map', 'fax', 'sklon', 'dop', 'cz_map', 'STORAGE_ID'), array(), 3600 * 24 * 30); $Data = $objFillial->GetList(array('ID' => 'ASC'), array('UrlRewriteCode' => $_REQUEST['city'])); if ($Data) { $_SESSION['CURCITYPHONE'] = $Data[0]['MAIN_CODE'] . ' ' . $Data[0]['MAIN_PHONE']; $_SESSION['CURCITY'] = $Data[0]; setcookie('CURCITY', $Data[0]['ID'], time() + 3600 * 24 * 2, "/"); $_COOKIE['CURCITY'] = intval($Data[0]['ID']); } } $smarty = new Smarty(); $smarty->template_dir = $_SERVER['DOCUMENT_ROOT'] . "/templates"; $smarty->compile_dir = $_SERVER['DOCUMENT_ROOT'] . "/templates_c"; $smarty->assign("iphone", true); $smarty->assign("robotBlocked", checkRobots()); $smarty->assign("metaPaginationCanonical", getPaginationCanonical()); // function getProdPage() // { // $rand = rand(0, 1); // if ($rand == 0) { // return "centerBtn"; // } else if ($rand == 1) { // return "rightBtn"; // } // } // if (!isset($_COOKIE['prodPage'])) { // setcookie('prodPage', getProdPage(), time() + 25920000); // } // if (isset($_COOKIE['prodPage'])) { // $smarty->assign("prodPage", $_COOKIE['prodPage']); // } // if ($_REQUEST['testing'] || $_REQUEST['testing2']) { // $smarty->assign("testing", true); // } else { // $smarty->assign("testing", false); // } $SiteManager = new Site(); $Params4Modules = array(); IncludeLangFile(__FILE__); //REDIRECT ===================== /* if($_SERVER['REQUEST_URI'] == '/satellite/?SID=1') { header("HTTP/1.1 301 Moved Permanently"); header('Location: /satellite/consalting/'); exit(); } */ if ($_SERVER['REQUEST_URI'] == '/satellite/sc/') { $tabs = 2; } elseif ($_SERVER['REQUEST_URI'] == '/satellite/interia/') { $tabs = 3; } elseif ($_SERVER['REQUEST_URI'] == '/satellite/motionview/') { $tabs = 4; } elseif ($_SERVER['REQUEST_URI'] == '/satellite/standee/') { $tabs = 5; } else { $tabs = 1; } $smarty->assign("ACTIVE_TAB", $tabs); $_SESSION['super_avail'] = true; if (isset($_REQUEST['ONLYKITS'])) { if ($_REQUEST['ONLYKITS'] == 'Y') { $_SESSION['ONLYKITS'] = true; } elseif ($_REQUEST['ONLYKITS'] == 'N') { unset($_SESSION['ONLYKITS']); } } if (isset($_REQUEST['t'])) { $smarty->assign('t', 'Y'); } if (isset($_REQUEST['LOOKFORSECITEMFOR']) and intval($_REQUEST['LOOKFORSECITEMFOR']) > 0) { $_SESSION['LOOKFORSECITEMFOR'] = intval($_REQUEST['LOOKFORSECITEMFOR']); } if (isset($_REQUEST['LOOKFORSECITEMFOR']) and intval($_REQUEST['LOOKFORSECITEMFOR']) == 0 and $_REQUEST['LOOKFORSECITEMFOR'] == 'N') { unset($_SESSION['LOOKFORSECITEMFOR']); } $smarty->assign("smaller1000", 'N'); $smarty->assign("smaller730", 'N'); $smarty->assign("smaller500", 'N'); if (isset($_COOKIE['smaller1000']) && $_COOKIE['smaller1000'] == 'Y') { $smarty->assign("smaller1000", 'Y'); if (isset($_COOKIE['smaller730']) && $_COOKIE['smaller730'] == 'Y') { $smarty->assign("smaller730", 'Y'); if (isset($_COOKIE['smaller500']) && $_COOKIE['smaller500'] == 'Y') { $smarty->assign("smaller500", 'Y'); } } } //$SiteManager->getSiteLang(); if (!isset($_SESSION['REFRESH_DATE'])) { $dumptime = $DB->GetData("SELECT * FROM dump_time"); $dumptime = $dumptime[0]['time_upload']; $_SESSION['REFRESH_DATE'] = $dumptime; } if (!isset($_SESSION['LONG']) || !isset($_SESSION['LAT'])) { require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/php/geo.inc.php'; } $smarty->assign('RATE_ID', $_SESSION['valute']); $smarty->assign("LANG", $_SESSION['LANG']); $smarty->assign('SITE', $_SESSION['SITE']); /* switch(strtolower($_REQUEST['lang'])) { case 'en': $_SESSION['LANG'] = 'en'; break; case 'ru': $_SESSION['LANG'] = 'ru'; break; } if(!isset($_SESSION['LANG'])) { $_SESSION['LANG'] = 'ru'; } */ //stat /*function GetIp(){ if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) $ip = getenv("HTTP_CLIENT_IP"); else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) $ip = getenv("HTTP_X_FORWARDED_FOR"); else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) $ip = getenv("REMOTE_ADDR"); else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) $ip = $_SERVER['REMOTE_ADDR']; else $ip = "unknown"; return $ip; } function AddRecord(){ $agent = $_SERVER['HTTP_USER_AGENT']; $uri = $_SERVER['REQUEST_URI']; $ip = GetIp(); $ref = $_SERVER['HTTP_REFERER']; $time = time(); $session_id = session_id(); $result = $this->DB->ExecSQL("INSERT INTO `stat_table` (`URI`,`REF`,`IP`,`AGENT`,`SESSION_ID`,`TIME`) VALUES ('$uri','$ref','$ip','$agent','$session_id',$time)"); } AddRecord(); */ //==== if (empty($params['page'])) { $page = $SiteManager->getPageID(); if ($page === false) { $SiteManager->error404(); } else { $params['page'] = $page; } } if (isset($_REQUEST['successes']) && is_array($_REQUEST['successes'])) { foreach ($_REQUEST['successes'] as $note) { $Params4Modules['main:notes'][0]['SUCCESSES'][] = $note; } } if (isset($_REQUEST['errors']) && is_array($_REQUEST['errors'])) { foreach ($_REQUEST['errors'] as $note) { $Params4Modules['main:notes'][0]['ERRORS'][] = $note; } } if (SMARTY_VERSION == 3) { $smarty->registerPlugin("function", "putblock", "smarty_putblock"); $smarty->registerPlugin("function", "translate", "smarty_translate"); $smarty->registerPlugin("function", "_", "smarty_translate"); } else { $smarty->register_function("putblock", "smarty_putblock"); $smarty->register_function("translate", "smarty_translate"); $smarty->register_function("_", "smarty_translate"); } if ($SiteManager->isError404) { $Page = $SiteManager->getError404(); } else { $Page = $SiteManager->GetPageByID($params['page']); } $bname = ''; if (isBot($bname)) { if (date('H') > 8) { $lastMod = strtotime(date('Y-m-d 8:00:00')); } else { $lastMod = strtotime(date('Y-m-d 8:00:00', time() - 24 * 3600)); } } else { $lastMod = strtotime(date('Y-m-d H:i:s', time())); } if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) >= $lastMod) { header('HTTP/1.1 304 Not Modified'); die; /* убили всё, что ниже */ } header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $lastMod) . ' GMT'); $isAuth = (isset($_SESSION['siteusers_ID']) && intval($_SESSION['siteusers_ID']) > 0); if (false && !$isAuth && isset($Page['Last-Modified']) && $Page['Last-Modified'] != '0000-00-00 00:00:00') { /* if (date('H') > 5) { $lastMod = strtotime(date('Y-m-d 8:00:00')); } else { $lastMod = strtotime(date('Y-m-d 8:00:00', time() - 24 * 3600)); }*/ $lastMod = strtotime($Page['Last-Modified']); if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) >= $lastMod) { header('HTTP/1.1 304 Not Modified'); die; /* убили всё, что ниже */ } header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $lastMod) . ' GMT'); } //print_h($CurPage); $picts_array = array('hpic1.png', 'hpic2.png', 'hpic3.png', 'hpic4.png', 'hpic5.png', 'hpic6.png'); $rand_keys = array_rand($picts_array); $smarty->assign("H_PIC", $picts_array[$rand_keys]); if (isset($_SESSION['siteusers_ID']) && intval($_SESSION['siteusers_ID']) > 0) { $smarty->assign("siteusers_ID", intval($_SESSION['siteusers_ID'])); } else { $smarty->assign("siteusers_ID", 0); } $smarty->assign("REFRESH_DATE", $_SESSION['REFRESH_DATE']); if (isset($_SESSION['COUNTRY'])) { $smarty->assign("COUNTRY", $_SESSION['COUNTRY']); } // if (isset($_REQUEST['test'])) { // $smarty->assign("test", true); // } if (isset($_SESSION['LONG']) && isset($_SESSION['LAT'])) { $smarty->assign("LONG", $_SESSION['LONG']); $smarty->assign("LAT", $_SESSION['LAT']); } $smarty->assign("REQUEST", $_REQUEST); $smarty->assign("SITE_LANG", SITE_LANG); $smarty->assign("HTTP_HOST", $_SERVER['HTTP_HOST']); if (isset($_REQUEST['tomail'])) { $Page['Tpl'] = 'blank.tpl'; } //IE $user_agent = $_SERVER['HTTP_USER_AGENT']; if (stripos($user_agent, 'MSIE 6.0') !== false && stripos($user_agent, 'MSIE 8.0') === false && stripos($user_agent, 'MSIE 7.0') === false) { if (!isset($HTTP_COOKIE_VARS["ie"])) { setcookie("ie", "yes", time() + 60 * 60 * 24 * 360); header("Location: /ie6/ie6.html"); } } //IPHONE VERTION //if (in_array($_SERVER['HTTP_HOST'],array('iphone.trapeza.ru','www.iphone.trapeza.ru'))){ // $_SESSION['iphone'] = true; // $smarty->assign("iphone", true); //}else{ // $_SESSION['iphone'] = false; //} if ($Page['Tpl'] == 'main.tpl') { $Page['Tpl'] = 'mobile.tpl'; } if ($Page['Tpl'] == 'tovar.tpl') { $Page['Tpl'] = 'mobileitem.tpl'; } if ($Page['Tpl'] == 'catalog.tpl') { $Page['Tpl'] = 'mcatalog.tpl'; } if ($Page['Tpl'] == 'questions.tpl') { $Page['Tpl'] = 'mquestions.tpl'; } if ($Page['Tpl'] == 'articles.tpl') { $Page['Tpl'] = 'marticles.tpl'; } if ($Page['Tpl'] == 'contacts.tpl') { $Page['Tpl'] = 'mcontacts.tpl'; } if ($Page['Tpl'] == 'inner.tpl') { $Page['Tpl'] = 'minner.tpl'; } if ($Page['Tpl'] == 'inner_with_submenu.tpl') { $Page['Tpl'] = 'minner_with_submenu.tpl'; } if ($Page['Tpl'] == 'interia_with_submenu.tpl') { $Page['Tpl'] = 'minteria_with_submenu.tpl'; } if (in_array($_SERVER['HTTP_HOST'], array('heinz.trapeza.ru', 'www.heinz.trapeza.ru'))) { if ($_SERVER['REQUEST_URI'] == '/') { $smarty->assign("heinzMode", true); $Page['Tpl'] = 'heinz.tpl'; } elseif (strpos($_SERVER['REQUEST_URI'], "ADDTOBAS")) { $REQUEST_URI = "https://www.trapeza.ru/goods/122474/?ADDTOBASKET=bd553553-b625-11e6-927f-a0369f4567aa"; header("Location: $REQUEST_URI", true, 301); exit(); } else { //str_replace('heinz.trapeza','www.trapeza',$_SERVER['REQUEST_URI']); header("Location: https://www.trapeza.ru" . $_SERVER['REQUEST_URI'], true, 301); exit(); } } else { } //} //SANTA //setcookie("DOESNTSHOWTOPBANNER", 0, time()+100000,"/"); if (isset($_COOKIE['DOESNTSHOWTOPBANNER2']) && $_COOKIE['DOESNTSHOWTOPBANNER2'] == 1) { $smarty->assign("DOESNTSHOWTOPBANNER", true); } else { $smarty->assign("DOESNTSHOWTOPBANNER", false); setcookie("DOESNTSHOWTOPBANNER2", 0, time() + 100000, "/"); } //$smarty->assign("DOESNTSHOWTOPBANNER", true); if (!empty($_SESSION['utm_source'])) { $utm_source = $_SESSION['utm_source']; } else { $utm_source = false; } $smarty->assign('utm_source', $utm_source); $smarty->assign("curDate", date('d/m/Y')); $smarty->assign("random", rand()); $smarty->assign("Page", $Page); $text = $smarty->fetch($Page['Tpl']); $content = get_modules_code($text, $Params4Modules); //$smarty->assign("PAGCSS", $SiteManager->CSS); //$smarty->assign("PAGEJS", $SiteManager->JS); //$Page['CSS'] = $SiteManager->CSS; //if ($_REQUEST['tes'] == 'y'){ // echo ''; // print_r($Page); // exit; //} $debug = ob_get_contents(); ob_get_clean(); //print_h('STEP 51:'.(microtime(true)-$_SESSION['microtime']).' mc'); if (canShowDebug()) { echo $debug; } //контент сайта ==== echo $content; /*if((microtime(true) - $_SESSION['microtime']) > 0) { $h = fopen($_SERVER['DOCUMENT_ROOT']."/scripts_log.txt", "a+"); fwrite($h, (microtime(true) - $_SESSION['microtime'])." sec -".$_SERVER['REQUEST_URI']."\r\n"); fclose($h); } */ //echo (microtime(true) - $_SESSION['microtime']);