<?php


   // 	сюда будут подгружаться все файлы занесённые в кэш <!---->
error_reporting(E_ALL  & ~E_NOTICE);
$RC_ERROR = array();

include_once('r_constants.php'); 

include_once('source/inc/functions.php');

include_once(MAIN_SOURCE_PATH.'/core/db/class.mysql.php');
include_once(MAIN_SOURCE_PATH.'/inc/class.query.php');
include_once(MAIN_SOURCE_PATH.'/core/class.cms.php');
include_once(MAIN_SOURCE_PATH.'/lang/ru/base.php');
include_once(MAIN_SOURCE_PATH.'/inc/url.php');

include(MAIN_SOURCE_PATH.'/ext/phptal/PHPTAL.php');

	//	перехватываем все ошибки
set_error_handler('sys_control_error'); 

	//	внесём свой вклад во вразу "IE myst die"
	
if ( MAIN_IE6_STOP && sys_is_ie6() ){

	sys_error(ERROR_IE6);
}
  // нет тупым хостерами
if ( get_magic_quotes_gpc() ){
	$_REQUEST = array_map('sys_clear_slashes', $_REQUEST);
}
if ( get_magic_quotes_gpc() ){
	$_POST = array_map('sys_clear_slashes', $_POST);
}
if ( get_magic_quotes_gpc() ){
	$_GET = array_map('sys_clear_slashes', $_GET);
}


define('MAIN_USER_IP', sys_get_ip() );
	


   // подключаем базу данных
//
//
//$MAIN_DB  = $memcache->get('MAIN_DB1');

$MAIN_DB  = new Database;
$MAIN_DB -> set_prefix(MAIN_DBPREFIX);
$MAIN_DB -> connect(MAIN_DBHOST, MAIN_DBUNAME, MAIN_DBPASS, MAIN_DBPCON);
$MAIN_DB -> select_db(MAIN_DBNAME);
$MAIN_DB -> query("SET names ".MAIN_ENCODING);
//$memcache->set('MAIN_DB1', $MAIN_DB, false, 1000) or die ("Failed to save data at the server");
//setlocale(LC_ALL,'ru_RU.utf8');

/*
$text=mb_strtoupper('Привет');
echo($text); //ПРИВЕТ
*/


  //  запускаем первое событие
HL::triggerEvents('on_request');



  // пытаемся загрузить вызываемый модуль
//include('source/core/class.cms.php');
include_once(MAIN_SOURCE_PATH.'/modules/'.MAIN_BASE_AUTH);
define('MAIN_USER_LANG', HL::lang() );


$MAIN_PAGE = cms::load_pname($_GET['p_name']);

	//	страница не найдена
if ( false===$MAIN_PAGE ){
	sys_error(ERROR_404,sprintf(E_EMPTY_PAGE,sys_in_html($_GET['p_name']) ) );
}

	//	страница не активна
if ( !$MAIN_PAGE -> active() ){
	sys_error(ERROR_404,sprintf(E_NOACTIVE_PAGE,$_GET['p_name']) );	
}
if ( $MAIN_PAGE -> encoding()!='' ){
  $MAIN_DB -> query("SET names ".$MAIN_PAGE -> encoding() );
}
define( 'MAIN_MODULE', $MAIN_PAGE -> dirname() );
define( 'MAIN_PAGE', $_GET['p_name'] );
define( 'MAIN_PAGE_ID', $MAIN_PAGE -> id() );
  //  передаём в js
setcookie( 'HL_info', (MAIN_MODULE.':'.MAIN_PAGE.':'.MAIN_PAGE_ID), 0, '/', '', 0);

include_once(MAIN_PATH.'/tmp/config/system.php');
$MAIN_PAGE  -> set_title(1,$MAIN_PAGE -> config('sys_site_name'),MAIN_URL);



  // если страница доступны не для всех пользователей, то начинаем процесс авторизации

	$MAIN_USER = users::auth();
	
		// проверяем права доступа к странице для группы в которой состоит пользователь
	if ( !$MAIN_PAGE -> free_access() && !$MAIN_USER -> check_right_page( $MAIN_PAGE -> id() ) ){
		sys_error(ERROR_403);
	}
	define('MAIN_USER',$MAIN_USER -> id() );
	define('MAIN_ADMIN',$MAIN_USER -> is_admin() );
	
//}



include_once(MAIN_SOURCE_PATH.'/lang/'.MAIN_USER_LANG.'/main.php');


  // шаблоны
/*if ( !file_exists(MAIN_SOURCE_PATH.'/tmpl/'.$MAIN_PAGE -> tmpl()) ){
	sys_error(ERROR_500,sprintf(E_NOFOUND_TMPL,MAIN_SOURCE_PATH.'/tmpl/'.$MAIN_PAGE -> tmpl()));
}*/


$MAIN_TMPL = new PHPTAL();
//$MAIN_TMPL -> javascript_stop = MAIN_JAVASCRIPT_STOP;

	//	генерируем контентную часть
$MAIN_PAGE -> module();	

	//	генерируем блоки
$MAIN_PAGE -> blocks();	


  //  запускаем первое событие
HL::triggerEvents('on_end');


header('Content-Type: text/html; charset='.$MAIN_PAGE -> charset() );

sys_log(MAIN_ACCESS_LOG, (sys_timer().':'.$_SERVER['REQUEST_URI']."\n\r") ) ;

sys_error(TIME_MSG,array('text'=>M_WORK_END,'time'=>sys_timer() ),false,false);

$MAIN_TMPL -> debug = $MAIN_ERROR;


echo $MAIN_TMPL -> execute();
exit();

?>
