<?php
/*
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 OneMODEX Engine
-----------------------------------------------------
 Copyright (c) 2007,2025 Create New Unlimited
-----------------------------------------------------
 Author: Denis Solokhin (https://densolow.com)
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 File: index.php
-----------------------------------------------------
 Назначение: Движок
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
*/

//-- Начало сессии
session_name('OneMODEX');
session_start();

error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('html_errors', true);

//-- Время выполнение скрипта
$time_start = microtime();

$PROGLINE = true;

//-- Подключение файла конфигурации
require 'config.php';
require 'system/engines/lang.php';
//-- Функции конвертации
require $cfg['engine_dir'].'f/convert.php';
//-- Пути
$TPL_DIR = 'templates/'.$cfg['tpl'].'/';
$CACHE_DIR = 'cache/';
//-- С модификацией и без...
if($cfg['mod'])
{
	$MOD_DIR = 'modules/'.$cfg['mod'].'/';
	$CACHE_DIR = $MOD_DIR.$CACHE_DIR;
	$TPL_DIR = $MOD_DIR.$TPL_DIR;
}
else $MOD_DIR = '';

//-- Включить/выключить gZip сжатие
if($cfg['gzip'] == 1) ob_start('ob_gzhandler');

//-- Главная страница
$http = isset($_SERVER['HTTPS']) ? 'https' : 'http';
$base_url = $http.'://'.$cfg['domain'].$cfg['path'];
//-- На другом языке
$alternate = $http.'://'.$lang['alternate'].$cfg['domain'].$_SERVER['REQUEST_URI'];

//-- Подключаем шаблонные переменные
$meta = '<title>';
$image_src = $css_rss = $java = $output = '';

//-- Подключение к базе данных и выбор активной базы
$mysqli = mysqli_connect($dbhostname, $dbusername, $dbpassword, $database) or die(mysqli_error($mysqli));
mysqli_set_charset($mysqli, 'utf8');
unset($dbpassword);

//-- ВЕРХ НАЧАЛО АВТОМАТИЧЕСКОЙ ЗОНЫ

//-- Ссылка на магагзин
$store_url = ($cfg['url']) ? $cfg['path'].'store' : $cfg['path'].'?mod=store';
//-- Ссылка на каталог
$catalog_url = ($cfg['url']) ? $cfg['path'].'catalog' : $cfg['path'].'?mod=catalog';

//-- УРОВЕНЬ СКИДКИ
$login_fields = 'u.discount';
//-- Имя таблицы
$tablecat = $uprefix . 'category';
//-- Speedbar
$speedbar = array(speed_bar($cfg['path'], $cfg['title']));
//-- Поиск
if(isset($_GET['find'])) $find = $_GET['find'];

//-- Блоки сайта
$tableblocks = $prefix . 'blocks';
//-- Запрос
$finger = mysqli_query($mysqli, "SELECT var,block FROM $tableblocks WHERE var IS NOT NULL") or die(mysqli_error($finger));
//-- Если записи есть
if(mysqli_num_rows($finger) > 0)
{
	while(list($var, $block) = mysqli_fetch_row($finger))
	{
		//-- Название переменной
		$var = 'om_block_'.$var;
		$$var = $block;
	}
	//-- Освобождаем память
	unset($var, $block);
}

//-- ВЕРХ КОНЕЦ АВТОМАТИЧЕСКОЙ ЗОНЫ

//-- АВТОРИЗАЦИЯ
$is_logged = false;
//-- Подключение необходимых функций
require $cfg['engine_dir'].'f/cookie.php';
require $cfg['engine_dir'].'s/index_login.php';

//-- ПОСЛЕ АВТОРИЗАЦИИ НАЧАЛО АВТОМАТИЧЕСКОЙ ЗОНЫ

//-- КОРЗИНА
if(!isset($_COOKIE['pl_b_count']))
{
	//-- Если авторизирован
	if($is_logged === true)
	{
		//-- Название таблицы
		$tablebasket = $uprefix . 'baskets';
		//-- Смотри в базе
		$finger = mysqli_query($mysqli, "SELECT COUNT(*) FROM $tablebasket WHERE user=".$account['idnum']);
		$row = mysqli_fetch_row($finger);
		$pb_b_count = $row[0];
	}
	else $pb_b_count = 0;
	//-- Количество товаров в коризине
	set_cookie('pl_b_count', $pb_b_count, 7);
}
else $pb_b_count = $_COOKIE['pl_b_count'];

//-- ПОСЛЕ АВТОРИЗАЦИИ КОНЕЦ АВТОМАТИЧЕСКОЙ ЗОНЫ

//-- Speedbar
if(!isset($speedbar)) $speedbar = array(speed_bar($cfg['path'], $cfg['sitename']));
//-- Варианты функционала
$mod = isset($_GET['mod']) ? $_GET['mod'] : $cfg['main'];

//-- Функция вывод страниц
function showPages($url, $page, $page_num, $title)
{
	global $lang, $cfg;
	
	$out_pages = '<p class="pages">';
	//-- Если первая страница
	if($page == 1) $out_pages .= "<strong>$title</strong> &nbsp;";
	else
	{
		//-- Добавляем номер страницы в заголовок
		$uri = ($page - 1 == 1) ? $cfg['path'] : $url.($page-1);
		//$meta_t = $page.' - ';
		$out_pages .= '<a href="'.$uri.'" class="pv button">&larr; '.$lang['page_prev'].'</a>';
		//-- Вычисляем количество для навигации влево
		$nav_bot = $page - $cfg['nav_limit'];
		//-- Вывод первой страницы
		if($nav_bot - 1 > 2) $out_pages .= '<a href="'.$cfg['path'].'" title="'.$lang['page_first'].'" class="pm">1</a><span>...</span>';
	}
	//-- Потолок количества страниц
	$nav_top = ($page+$cfg['nav_limit']);
	//-- Ограничения страниц
	if(empty($nav_bot) or $nav_bot < 1) $nav_bot = 1;
	if($nav_top > $page_num) $nav_top = $page_num;
	//-- Вывод страниц
	for($i=$nav_bot;$i<=$nav_top;$i++)
	{
		$page_start = ($i-1) * $cfg['page_limit'] + 1;
		$page_end = $i * $cfg['page_limit'];
		
		//-- Делаем выбранную страницу не активной
		if($page != $i)
		{
			$uri = ($i == 1) ? $cfg['path'] : $url.$i;
			$out_pages .= '<a href="'.$uri.'" title="'."$page_start-$page_end\" class=\"pm\">$i</a>";
		}
		else $out_pages .= '<b title="'.$lang['page_current'].'">'.$i.'</b>';
	}
	//-- Если не послядняя страница
	if($page != $page_num)
	{
		//-- Вывод последней страницы
		if($page_num - $nav_top > 2) $out_pages .= '<span>...</span><a href="'.$url.$page_num.'" title="'.$lang['page_last'].'" class="pm">'.$page_num.'</a>';
		$out_pages .= '<a href="'.$url.($page+1).'" class="pn button">'.$lang['page_next'].' &rarr;</a>';
	}
	$out_pages .= '</p>';
	
	return $out_pages;
}

//-- ВЫВОД СТАТИЧЕСКОЙ СТРАНИЦЫ
if($mod == 'static')
{
	include $cfg['engine_dir'].'o/static.php';
}
//-- ПРОСМОТР ПОЛЬЗОВАТЕЛЯ
elseif($mod == 'user')
{
	include $cfg['engine_dir'].'o/user.php';
}
//-- РЕДАКТИРОВАНИЕ ПРОФИЛЯ ПОЛЬЗОВАТЕЛЯ
elseif($mod == 'profile')
{
	include $cfg['engine_dir'].'o/profile.php';
}
//-- БЛОГ
elseif($mod == 'entry')
{
	include $cfg['engine_dir'].'o/entry.php';
}
//-- МОДИФИКАЦИИ
else
{
	//-- МОДУЛИ НАЧАЛО АВТОМАТИЧЕСКОЙ ЗОНЫ

//-- МАГАЗИН
if($mod == 'store')
{
	//-- Meta
	$meta_t = 'Подбор деталей или агрегатов по автомобилю';
	$meta_d = 'Зная год выпуска, марку и модель своего автомобиля можно добрать зап.части.';
	$link_c = 'store';
	//-- Путь к папке с фотографиями
	$photos_path = $cfg['path'].$MOD_DIR.'uploads/fotos/';
	//-- Подключаем функции и классы
	include $MOD_DIR . 'system/functions/autoparts.php';
	//-- Подключение шаблона вывода
	include $TPL_DIR . 'store_element.php';
	//-- Подключаем вывод магазина
	include $MOD_DIR . 'system/engines/store.php';
	//-- Подключение шаблона
	if(!isset($E404)) include $TPL_DIR . 'store.php';
}
elseif($mod == 'catalog')
{
	//-- Заголовок
	$meta_t = 'Каталог-магазин стартеров, генераторов и комплектующих';
	$meta_d = 'Здесь можно выбрать категорию детали или агрегата, затем отфильтровать результат с помощью сделанных замеров.';
	$link_c = 'catalog';
	//-- Путь к папке с фотографиями
	$photos_path = $cfg['path'].$MOD_DIR.'uploads/fotos/';
	//-- Подключаем функции и классы
	include $cfg['engine_dir'].'f/inside.php';
	include $cfg['engine_dir'].'f/filesystems.php';
	include $MOD_DIR . 'system/functions/autoparts.php';
	//-- Подключение шаблона вывода
	include $TPL_DIR . 'catalog_element.php';
	//-- Подключаем вывод магазина
	include $MOD_DIR . 'system/engines/catalog.php';
	//-- Подключение шаблона
	if(!isset($E404)) include $TPL_DIR . 'catalog.php';
}
//-- ЗАКАЗ
elseif($mod == 'order')
{
	//-- Заголовок
	$meta_t = 'Подтверждения заказ / Счёт';
	//-- Подключаем функции и классы
	include $MOD_DIR . 'system/functions/autoparts.php';
	include $MOD_DIR . 'system/functions/ae-prices.php';
	//-- Подключение шаблона
	include $TPL_DIR . 'order.php';
	//-- Подключаем вывод магазина
	include $MOD_DIR . 'system/engines/order.php';
}
//-- ЛИЧНЫЙ КАБИНЕТ
elseif($mod == 'office')
{
	//-- META
	$meta_t = 'Личный кабинет';
	$meta_k = $meta_d = '';
	//-- Подключение шаблона
	include $MOD_DIR . 'system/engines/profile.php';
}
//-- Шаблон главной строницы
else
{
	//-- МЕТА
	$meta_t = 'Продажа и ремонт стартеров, генераторов в Севастополе';
	$meta_d = 'Ремонт генератора, стартера в городе Севастополе. Продажа генераторов, стартеров, комлектующих к ним, продажа коммутаторов.';
	$meta_k = 'купить, ремонт, генератор, стартер, комплектующие, агрегаты, запчасти, детали, Украина, Севастополь, магазин, продажа, автоэлектрик, коммутатор, автоэлектро, оборудовние, замена, лампочка, проводка, свет';
	
	//-- Подключение шаблона
	include $TPL_DIR . 'main_element.php';
}

	//-- МОДУЛИ КОНЕЦ АВТОМАТИЧЕСКОЙ ЗОНЫ
}

//-- Страницы 404 или пустого запроса
if(empty($output))
{
	header('HTTP/1.1 404 Not Found');

	$output = '
	<div id="not-found">
		<h1><strong>Ошибка 404 (не найдено)</strong></h1>
		<h2>Запрашиваемая страница отсутствует или была перемещена</h2>
		<p><em>Такое может случиться, если была допущена ошибка при вводе адреса страницы или страница перемещена.</em></p>
		<h3>Попробуйте следующие варианты:</h3>
		<ol>
			<li>Перейти на <a href="'.$base_url.'">главную страницу сайта</a> и воспользоваться каталогом.<div style="padding:4px"></div></li>
			<li>Воспользоваться <strong>поиском</strong> по сайту.<div style="padding:4px"></div></li>
			<li>Попытаться ввести адрес без ошибки.</li>
		</ol>
	</div>';
	
	$meta_t = '404 (не найдено)';
	$meta_d = $meta_k = $link_c = NULL;
}

//-- Используемые META-теги
$meta .= $meta_t.' | '.$cfg['title']."</title>\n";
if(isset($meta_d)) $meta .=	'<meta name="description" content="'.$meta_d.'">'."\n";
if(isset($meta_k)) $meta .=	'<meta name="keywords" content="'.$meta_k.'">'.$image_src."\n";
if(isset($link_c)) $meta .= '<link rel="canonical" href="'.$base_url.$link_c.'">'."\n";

//-- ПОДКЛЮЧАЕМ ШАБЛОН ГЛАВНОЙ ЧАСТИ САЙТА
require $TPL_DIR . 'main.php';

//-- Показ времени генерации страницы
$time_end = microtime();
$temp = explode(' ', $time_start.' '.$time_end);
$duration=sprintf('%.8f',($temp[2]+$temp[3])-($temp[0]+$temp[1]));
//echo "\nGenerated in $duration seconds.";
?>
