<?php
include_once 'core/core.php';
$isHttps = !empty($_SERVER['HTTPS']) && 'off' !== strtolower($_SERVER['HTTPS']);

// Проверка наличия favicon
if ($core->getPath() == "/favicon.ico"){
	$server = new Server((file_exists($core->rootPath())?$core->rootPath():ROOT."/media/icons/favicon.ico"), $core, $db,NULL,NULL);
	$core->setHeaderFile("ico","/favicon.ico");
	echo $server->getHTML();
	exit();
}
// Обновление последленего посещения файла
if ($user->auth() && $core->getPath() != "/css/style.css" && $core->getPath() != "/favicon.ico"){
	$user->updateLastURL();
}
// Регистрация серверных приложений
$list_app = [
	"/login.lm"		=>	"default/apps/login.php",		// Страница авторизации
	"/reg.lm"		=>	"default/apps/reg.php",			// Страница регистрации
	"/captcha.lm"	=>	"default/apps/captcha.php",		// Код с картинки
	"/users.lm"		=>	"default/apps/users.php",		// Список пользователей
	"/news.lm"		=>	"default/apps/news.php",		// Новости
	"/gb.lm"		=>	"default/apps/gb.php",			// Гостевая книга
	"/exit.lm"		=>	"default/apps/exit.php",		// Выход с аккаунта
	"/uchat.lm"		=>	"default/apps/uchat.php",		// Чат
	"/lk.lm"		=>	"default/apps/lk.php",			// Личный кабинет
	"/comments.lm"	=>	"default/apps/comments.php",	// Комментарии
	"/profile.lm"	=>	"default/apps/profile.php",		// Профиль пользователя
	"/avatar.lm"	=>	"default/apps/avatar.php",		// Модуль Аватар
	"/smiles.lm"	=>	"default/apps/smiles.php",		// Модуль смайлы
	"/forum.lm"		=>	"default/apps/forum/forum.php", // Форум
	"/rss.lm"		=>	"default/apps/rss.php",			// RSS-Лента
	"/downloads.lm"	=>	"default/apps/downloads.php",	// Загрузки
	"/sitemap.xml"	=>	"default/sitemap.php",			// SiteMap
	"/debug.lm"		=>	"default/debug.php",			// DEBUG
	"/friends.lm"	=>	"default/apps/friends.php",			// Друзья
];
if ($site->forceSSL && !$isHttps){
	$qs = (isset($_SERVER["QUERY_STRING"])?($_SERVER["QUERY_STRING"]):"");
	$qs = str_replace("&amp;","&",$qs);
	header("Location: https://".$site->domain."".$core->getPath()."?".$qs);
	exit();
}
if (isset($list_app[$core->getPath()])){
	$app = $list_app[$core->getPath()];
	include_once 'core/twig.php';
	if (!file_exists($app)){
		http_response_code(404);
		include_once 'default/apps/404.php';
		die();
	}
	
	include_once $app;
	die();
}
// Правильная обработка папок
if (is_dir($core->rootPath()) && file_exists($core->rootPath()."index.html")){
	$_l_path = $core->rootPath()."index.html";
} elseif (is_file($core->rootPath()) && file_exists($core->rootPath())) {
	$_l_path = $core->rootPath();
} else {
	http_response_code(404);
	include_once 'default/404.php';
	die();
}
$pi = pathinfo($_l_path);
$server = new Server($_l_path,$core,$db,$site,$user);
$server->legkoAccess();
// Включен режим только АВТОРИЗОВАННЫЕ или найден тег [legko.regonly]
if ((!$user->auth() && ($server->legkoRegOnly() || $site->onlyreg == 1))  || ($server->access >= 2 && !$user->auth())){
	if ($core->getPath() == "/css/style.css" || $core->getPath() == "/favicon.ico"){
		$core->setHeaderFile($pi["extension"],$_l_path);
		echo $server->getHTML();
		die();
	}
	http_response_code(403);
	include_once 'default/regOnly.php';
	die();
}

// Проверяем доступ на VIP
if ($server->access == 2 && !$user->isVip()){
	if ($core->getPath() == "/css/style.css" || $core->getPath() == "/css/piminoff.css" || $core->getPath() == "/favicon.ico"){
		$core->setHeaderFile($pi["extension"],$_l_path);
		echo $server->getHTML();
		die();
	}
	http_response_code(403);
	include_once 'default/vipOnly.php';
	die();
} 

if ($server->access > 2 && $server->access > $user->getData()->access) {
	if ($core->getPath() == "/css/style.css" || $core->getPath() == "/css/piminoff.css" || $core->getPath() == "/favicon.ico"){
		$core->setHeaderFile($pi["extension"], $_l_path);
		echo $server->getHTML();
		die();
	}
	http_response_code(403);
	include_once 'default/accessOnly.php';
	die();
}

if (isset($pi["extension"])){
	$core->setHeaderFile($pi["extension"], $_l_path);
}

if (isset($pi["extension"]) && $pi["extension"] == "html"){
	
	require_once 'core/twig.php';
	twig_html($_l_path);

	die();
	$server->legkoTag();
	$server->showLegkoErrors();
	if ($site->pro_noads < time() && $site->pro_noads != -1){
		$add = $core->drawADS();
		$server->afterBody($add);
	}
	$server->replaceBody();
}


echo $server->getHTML();
// echo '<pre>';
// var_dump($core->rootPath());
// var_dump($_SERVER);
// echo '</pre>';
//include_once 'core/foot.php';
?>