<?php

// LinkorCMS 1.3
// © 2006 - 2010 Галицкий Александр Николаевич (linkorcms@yandex.ru)
// Файл: index.php
// Назначение: Главная страница

define('MAIN_SCRIPT', true);
define('VALID_RUN', true);

include_once('config/init.php'); // Конфигурация и инициализация
include_once($config['inc_dir'].'system_plugins.inc.php'); // Плагины
include_once($config['inc_dir'].'system.php'); // Функции
include_once($config['db_dir'].'database.php'); // Класс для работы с базой данных

// Загрузка конфигурации сайта
LoadSiteConfig($config); 
LoadSiteConfig($plug_config, 'plugins_config', 'plugins_config_groups');

// Автообновление
include('config/autoupdate.php');

// ЧПУ
if($config['general']['ufu'] && isset($_GET['ufu'])){
	$_GET = UfuRewrite($_GET['ufu']);
}

// Устанавливаем временную зону по умолчанию
SetDefaultTimezone(); 

// Сессии
include_once($config['inc_dir'].'user.class.php');

// Закрыть сайт для пользователей
if($config['general']['private_site'] && $user->AccessLevel() != 1){
	include_once($config['apanel_dir'].'template.login.php');
	AdminShowLogin('Сайт закрыт для пользователей');
}

// Статистика
$stats_alloy = $config['general']['statistika'];
if($stats_alloy){
	include_once($config['inc_dir'].'statistika.inc.php'); 
}

// Получаем имя модуля
$ModuleName = '';
if(!isset($_GET['name'])){
	define('INDEX_PHP', true); // модуль на главной странице
	$ModuleName = SafeEnv($config['general']['site_module'], 255, str, false, false);
}else{
	define('INDEX_PHP', false);
	$ModuleName = SafeEnv($_GET['name'], 255, str);
}

// Проверяем доступен ли данный модуль
$db->Select('modules', "`enabled`='1' and `folder`='$ModuleName'");
$valid = false;
$valid_init = false;
if($db->NumRows() > 0){
	$mod = $db->FetchRow();
	if($user->AccessIsResolved($mod['view'], $userAccess)){
		define('MOD_DIR', $config['mod_dir'].$ModuleName.'/');
		define('MOD_FILE', MOD_DIR.'index.php');
		define('MOD_INIT', MOD_DIR.'init.php');
		define('MOD_THEME', RealPath2(SafeDB($mod['theme'], 255, str)));
		$valid = file_exists(MOD_FILE);
		$valid_init = file_exists(MOD_INIT);
	}else{
		$msg = '<center>Доступ запрещен.</center>';
	}
}else{
	$msg = '<center>Данная страница ('.SafeDB($ModuleName, 255, str).') не существует или не доступна в данный момент.</center>';
}

include_once($config['inc_dir'].'plugins.inc.php'); // Плагины

if($valid){
	// Инициализация модуля
	if($valid_init){
		include (MOD_INIT);
		if(function_exists('mod_initialization')){
			mod_initialization();
		}
	}
	// Шаблонизатор
	if(!$system['no_templates']){
		include_once($config['inc_dir'].'index_template.inc.php');
	}
	// Сообщения
	if(!$system['no_messages']){
		include_once($config['inc_dir'].'messages.inc.php');
	}
	include(MOD_FILE); // Модуль
	// Сообщения внизу
	if(!$system['no_messages']){
		BottomMessages();
	}
	// Вывод данных пользователю
	if(!$system['no_echo']){
		$site->TEcho();
	}
	// Статистика просмотров
	if(!$system['stop_hit'] && $stats_alloy){
		HitStatisticProcess();
		StatisticProcess();
	}
	if($valid_init){
		if(function_exists('mod_finalization')){
			mod_finalization();
		}
	}
}else{
	include_once($config['inc_dir'].'index_template.inc.php');
	$site->AddTextBox('Ошибка', $msg);
	$site->TEcho();
}

?>