* Обслуживается классом Config * @global array $config */ global $config; /** * Основные конфигурационые параметры, подключение к базе данных и т.д. */ include_once('config.php'); $_SERVER['HTTP_HOST_ORIG'] = $_SERVER['HTTP_HOST']; $_SERVER['HTTP_HOST'] = $config['domain']; ini_set("display_errors", 1); ini_set('memory_limit', '256M'); header('Content-Type: text/html; charset=utf-8'); //set_magic_quotes_runtime(0); setlocale(LC_TIME, "ru_RU.UTF-8"); if(!function_exists("getLinkForSef")) { function getLinkForSef($product_id = null, $sef, $t='/') { global $config; return $t.$config['product_url_section']."/" . $sef . ".html"; } } if(!function_exists("getLinkForSefBrand")) { function getLinkForSefBrand($category_sef, $brand_sef, $t="/") { $prefix = "catalog"; return $t. $prefix . '/' . $category_sef . '/' . $brand_sef ; } } include_once 'classes/class.MS.php'; //exit("Сайт временно недоступен. Попробуйте зайти через несколько минут. Приносим свои извинения"); /** * Метапеременная, глобальная стурктура, включающая в себя объекты основных класов * @global mixed $meta */ global $meta; /** * Инициализация классов */ include_once('includes/init.php'); /** * Определение языка */ include_once('includes/language.php'); /** * SAPE - раскрутка сайтов sape.ru */ //include_once('includes/sape.php'); include_once 'reactiven.php'; /** * Проверка на редирект */ include_once($config['root']['path'].'modules/module_redirect.php'); /** * Инициализация раздела CMS */ include_once($config['root']['path'].'modules/module_section.php'); $meta['section'] = &$obj_section; // Ссылка на объект разделов $meta['msklad'] = new MySklad($config['moysklad']['login'],$config['moysklad']['password']); /** * Обработка редиректа на другой раздел сайта */ if ($obj_section->SectionRedirectURL && $meta['cgi']->Param('section')) { header("HTTP/1.1 301 Moved Permanently"); header ("Location: {$obj_section->SectionRedirectURL}"); exit; } /** * Обработка If-Modified-Since и заголовок Last-Modified */ include_once 'classes/class.LastModifiedHeaders.php'; $lastModHandler = new LastModifiedHeaders(); $lastModHandler->handleLastModifiedSince(); $lastModHandler->sendLastModifiedHeader(); $meta['smarty']->index_filename = $obj_section->SectionTemplateFilename; /** * Авторизация и аутенфикация пользователя */ include_once($config['root']['path'].'modules/module_auth.php'); include_once($config['root']['path'].'includes/ip_check.php'); $meta['smarty']->assign( $meta['config']->GetParamsForSmarty() ); // Конфигурационные параметры $meta['smarty']->assign( $meta['cgi']->GetParamsForSmarty() ); // CGI-перпеменные $meta['smarty']->assign( $meta['session']->GetParamsForSmarty() ); // Переменые сессии $is_virtual = !$config['virtual_stock_enabled'] ? 'AND is_virtual=0' : ''; $meta['db']->Query("SELECT * FROM mod_stock WHERE stock_enabled = 1 $is_virtual ".city_query_condition("mod_stock")." ORDER BY stock_weight"); $stocks=$meta['db']->FetchAllAssoc(); $meta['smarty']->assign("stocks",$stocks); /** * Work With cookie */ $filterStocks=[]; global $filterStocks; $stocksIds=array_map(function($item){ return $item['stock_id'];},$stocks); $stocksDeliveryIds=array_map(function($item){ return $item['stock_id'];},array_filter($stocks,function($item){ return $item['use_delivery']==="1"; })); if(isset($_COOKIE['filterstocks'])) { $stocksCookieIds=explode(";",$_COOKIE['filterstocks']); foreach($stocksCookieIds as $stock) { if (in_array($stock, $stocksIds)) { $filterStocks[] = $stock; } } } if(!sizeof($filterStocks)) { $filterStocks=$stocksIds; } $filterStocksIsAll=sizeof($filterStocks)==sizeof($stocksIds); global $filterStocksIsAll; setcookie("filterstocks",implode(";",$filterStocks),time()+365*24*60*60,"/"); // Кука для чекбокса "Хочу доставку" if(!isset($_COOKIE['want_delivery'])) { setcookie("want_delivery", $config['want_delivery_default']*1, time()+365*24*60*60,"/"); } $meta['smarty']->assign( 'cookie_stocks', $filterStocks ); $meta['smarty']->assign( 'cookie_stock', (sizeof($filterStocks)!=sizeof($stocksIds))?$filterStocks[0]:0 ); //echo sizeof($filterStocks)."-".sizeof($stocksIds); die(); $meta['smarty']->assign( 'cookie_stocks_all', sizeof($filterStocks)==sizeof($stocksIds) ); $meta['smarty']->assign( 'cookie_stocks_many', sizeof($filterStocks)>1?true:false ); $stockSetAddr=""; if(sizeof($filterStocks)==1) { $id=$filterStocks[0]; foreach($stocks as $stock) { if($stock['stock_id']==$id) { $stockSetAddr=$stock['stock_address']; } } } $meta['smarty']->assign( 'cookie_stocks_only', $stockSetAddr ); if(sizeof($filterStocks)==sizeof($stocksIds)) { $filterStocks=$stocksDeliveryIds; } $selected_stocks = $meta['cgi']->Param('stock_filter'); foreach($selected_stocks as $stock){ if(!in_array($stock,array_column($stocks,"stock_id"))){ setcookie("filterstocks","",time()+365*24*60*60,"/"); setcookie("want_delivery","1",time()+365*24*60*60,"/"); break; } } if(isset($_GET['feedbackrequest'])) { $response=["success"=>false]; echo json_encode($response); die(); } if(isset($_GET['test'])) { $meta['smarty']->assign('testEnable',true); } /** * Подключение модулей */ if ( is_array($obj_section->SectionModuleList) ) { foreach ($obj_section->SectionModuleList as $module_filename) { include_once($config['root']['path'].'modules/'.$module_filename); } } try { echo $meta['smarty']->fetch($meta['smarty']->index_filename); } catch (Exception $ex) { error_log("Error display Smarty template \"{$meta['smarty']->index_filename}\""); //header("Location: {$config['root']['url_error_500']}"); } ?>