db($hostname,$nameuser,$password,$namebase); $db->query("SET NAMES 'utf8';"); /** * require danneo.template.php */ require_once(DNBASE.'base/danneo.template.php'); /** * $setting['mod'] */ $setting['mod'] = ''; $setting['site_lang'] = ''; /** * $CURRENT LANGUAGE (Адаптировано под PHP 8.x) */ if (isset($sitelanguage) && is_array($sitelanguage) && !empty($sitelanguage)) { // Безопасное получение дефолтного языка (первого ключа массива) reset($sitelanguage); $default_lang = key($sitelanguage); $setting['site_lang'] = $default_lang ? $default_lang : 'ru'; // замените 'ru' на ваш основной язык, если нужно if (isset($_SESSION['language']) && array_key_exists($_SESSION['language'], $sitelanguage)) { $setting['site_lang'] = $_SESSION['language']; } if (isset($_COOKIE['language']) && array_key_exists($_COOKIE['language'], $sitelanguage)) { $setting['site_lang'] = $_COOKIE['language']; } // Хак для отлова lang, даже если ЧПУ склеил URL через амперсанд & $input_lang = null; if (isset($_REQUEST['lang'])) { $input_lang = $_REQUEST['lang']; } elseif (isset($_SERVER['REQUEST_URI'])) { // Если PHP не распарсил параметр из-за знака &, вытаскиваем его вручную из URI if (preg_match('/[?&]lang=([a-zA-Z_-]+)/', $_SERVER['REQUEST_URI'], $matches)) { $input_lang = $matches[1]; } } // Если язык определен и он существует в системе — применяем if ($input_lang && array_key_exists($input_lang, $sitelanguage)) { $setting['site_lang'] = $input_lang; } // Сохраняем куки и сессию setcookie('language', $setting['site_lang'], (time() + (365 * 24 * 60 * 60)), "/"); $_SESSION['language'] = $setting['site_lang']; } /** * require danneo.function.php */ require_once(DNBASE.'base/danneo.function.php'); /** * 404 */ if (isset($_REQUEST['dn']) && strpos($_REQUEST['dn'],'/')) { $tm->noexistprint(); } /** * CLOSED */ if (@$_SERVER["HTTP_X_FORWARDED_FOR"] != ""){ $IP = @$_SERVER["HTTP_X_FORWARDED_FOR"]; $proxyip = $_SERVER["REMOTE_ADDR"]; }else{ $IP = $_SERVER["REMOTE_ADDR"]; } if (isset($_COOKIE['closed'])&&($_COOKIE['closed']=='no')) {$setting['closed'] = 'no'; } if ($setting['closed'] == 'yes') { $tm->closeprint($setting['closedtext']); } /** * banner */ $adv = ($setting['banner'] == 'yes') ? new adv() : ''; /** * seourl */ $siteglobal['seourl'] = ($setting['rewrite'] == 'yes' && $setting['cpu'] == 'yes') ? 1 : 0; /** * breadcrumb */ $siteglobal['insert']['breadcrumb'] = ''; /** * Массив модов */ if (empty($setting['mod'])) { $setting['mod'] = array(); $modinq = $db->query("SELECT * FROM ".$basepref."_mods WHERE active='yes' ORDER BY mod_posit",$setting['cachetime']); while ($moditem = $db->fetchrow($modinq,$setting['cache'])) { $setting['mod'][$moditem['mod_fold']] = array( 'name' => $moditem['mod_name'], 'temp' => $moditem['mod_temp'], 'label' => $moditem['mod_label'], 'map' => $moditem['mod_map'], 'modid' => $moditem['modid'] ); } } /** * noexist */ if (isset($_REQUEST['dn'])) { $sdn = $api->sitedn($_REQUEST['dn']); if (!empty($sdn)) { if (!isset($setting['mod'][$sdn])) { $tm->noexistprint(); } } } /** * $_REQUEST */ $siteglobal['dn'] = (isset($_REQUEST['dn'])) ? $api->sitedn($_REQUEST['dn']) : ''; $siteglobal['to'] = (isset($_REQUEST['to'])) ? $api->sitedn($_REQUEST['to']) : 'index'; $siteglobal['cat'] = (isset($_REQUEST['cat'])) ? $api->sitedn($_REQUEST['cat']) : '0'; $siteglobal['re'] = (isset($_REQUEST['re'])) ? $api->sitedn(basename($_REQUEST['re'])) : 'index'; $siteglobal['pa'] = (isset($_REQUEST['pa']) && preparse($_REQUEST['pa'],THIS_SYMNUM,true) == 0) ? $api->sitepa($_REQUEST['pa']) : ''; /** * Мод */ $siteglobal['dn'] = (isset($setting['mod'][$siteglobal['dn']])) ? $siteglobal['dn'] : $setting['site_home']; $siteglobal['modname'] = (isset($setting['mod'][$siteglobal['dn']])) ? $setting['mod'][$siteglobal['dn']]['name'] : ''; if (isset($setting['mod'][$siteglobal['dn']]) && !empty($setting['mod'][$siteglobal['dn']]['temp'])) { $setting['site_temp'] = $setting['mod'][$siteglobal['dn']]['temp']; } /** * Массив блоков */ if(empty($setting['block'])){ $blockinq = $db->query("SELECT * FROM ".$basepref."_block WHERE block_active='yes' ORDER BY block_posit",$setting['cachetime']); while($blockitem = $db->fetchrow($blockinq,$setting['cache'])){ $setting['block'][$blockitem['blockid']] = $blockitem; } } /** * Доп.файл */ if ($siteglobal['re'] != 'index'){ $setting['scheme'] = @include(DNBASE.'mod/'.$siteglobal['dn'].'/mod.scheme.php'); $siteglobal['re'] = (is_array($setting['scheme']) && isset($setting['scheme'][$siteglobal['re']])) ? $siteglobal['re'] : 'index'; if ($siteglobal['re'] == 'index') { $tm->noexistprint(); } } /** * Блоки */ if (isset($setting['block']) && is_array($setting['block'])) { foreach ($setting['block'] as $key => $block) { $setting['barray'] = @unserialize($block['block_mods']); $setting['bview'] = 0; if (isset($setting['barray'][$siteglobal['dn']])) { if ($siteglobal['dn']=='info') { if (isset($setting['barray'][$siteglobal['dn']]['index']['modallpages'])) {$setting['bview'] = 1; } else { $setting['bview'] = isset($setting['barray'][$siteglobal['dn']]['index'][$siteglobal['pa']]) ? 1 : 0; } }elseif ($siteglobal['dn']=='catalog') { if (isset($setting['barray'][$siteglobal['dn']]['index']['modallpages'])) {$setting['bview'] = 1; } else { $setting['bview'] = isset($setting['barray'][$siteglobal['dn']]['index'][$siteglobal['cat']]) ? 1 : 0; } }else { $setting['bview'] = isset($setting['barray'][$siteglobal['dn']][$siteglobal['re']][$siteglobal['to']]) ? 1 : 0; } if ($setting['bview'] == 1 && $block['block_access'] == 'user') { if (preparse($usermain['logged'],THIS_INT) == 0 && preparse($usermain['userid'],THIS_INT) == 0) { $setting['bview'] = 0; } else { if ($setting['groupact'] == 'yes' && !empty($block['block_group'])) { $setting['bgroup'] = @unserialize($block['block_group']); $setting['bview'] = isset($setting['bgroup'][$usermain['gid']]) ? 1 : 0; } } } if ($setting['bview'] == 1) { $setting['bsarray'] = @unserialize($block['block_setting']); $block['block_cont'] = langexplode($block['block_cont'],THIS_TRIM); $block['block_cont'] = $block['block_cont'][$setting['site_lang']]; $setting['bcontent'] = ($block['block_file']) ? (include(DNBASE.'block/'.$block['block_file'])) : $block['block_cont']; $block['block_name'] = langexplode($block['block_name']); $bout = $tm->parse( array( 'blockname' => $block['block_name'][$setting['site_lang']], 'blockcont' => $setting['bcontent'] ),$tm->create('block/'.$block['block_temp'])); if (isset($siteglobal['insert'][$block['block_side']])) { $siteglobal['insert'][$block['block_side']].= $bout; } else { $siteglobal['insert'][$block['block_side']] = $bout; } } } } } /** * Меню */ if (isset($siteglobal['menu'])) { $siteglobal['insert'] = @array_merge($siteglobal['insert'],$siteglobal['menu']); } /** * include */ include(DNBASE.'mod/'.$siteglobal['dn'].'/'.$siteglobal['re'].'.php'); /** * exit */ exit(); ?>