<?php 

if (class_exists('SiteUsers') && class_exists('Forums'))
{
	$Forums = & singleton('Forums');
	
	$SiteUsers = & singleton('SiteUsers');
	
	/* Устанавливаем параметры */
	$conference_id = to_int($GLOBALS['LA']['conference_id']);
	
	/* Получаем идентификатор пользователя, 0 - если такого пользователя нет */
	$site_users_id = $SiteUsers->GetCurrentSiteUser();
	
	$GLOBALS['external_propertys_reg'] = array();
	
	if (in_array('posts', $GLOBALS['URL_ARRAY']))
	{
		$new_title = "Мои сообщения";
	}
	
	if ($site_users_id == 0)
	{
		/* Быстрая регистрация пользователя */
		if (isset($_POST['quick_reg']))
		{
			if (isset($_POST['site_user_login'])
			&& isset($_POST['site_user_password'])
			&& isset($_POST['site_user_email'])
			&& mb_strpos($_POST['site_user_login'], 'http://') === false // Логин не начинается с http://
			)
			{
				$param['site_users_login'] = to_str($_POST['site_user_login']);
				$param['site_users_name'] = to_str($_POST['site_user_login']);
				$param['site_users_password'] = to_str($_POST['site_user_password']);
				$param['site_users_email'] = to_str($_POST['site_user_email']);
	
				$GLOBALS['external_propertys_reg']['site_user_login'] = $param['site_users_login'];
				$GLOBALS['external_propertys_reg']['site_user_email'] = $param['site_users_email'];
	
				// Группа по умолчанию
				$param['site_users_group_id'] = $SiteUsers->GetDefaultGroup();
				$param['xslname'] = to_str($GLOBALS['LA']['xsl_registaration_letter']);
	
				/* Не отправлять письмо о подтверждении регистрации,
				необходим при автоматическом подтрвеждении регистрации (ниже подтверждение) */
				/* ДАННЫЙ ПАРАМЕТР НЕОБХОДИМО УСТАНОВИТЬ В TRUE, ЕСЛИ НЕ ТРЕБУЕТСЯ ПОДТВЕРЖДЕНИЕ РЕГИСТРАЦИИ ПОЛЬЗОВАТЕЛЯ */
				$param['not_send_mail_confirm'] = false;
	
				// добавляем пользователя, отправляем уведомление о регистрации
				$result = $SiteUsers->InsertSiteUser($param);
	
				/* Если не отправляли подтверждение -  */
				if ($result > 0 && $param['not_send_mail_confirm'])
				{
					/* Подтверждаем регистрацию */
					$SiteUsers->SetConfirmationID($result);
	
					/* Авторизируем пользователя */
					$SiteUsers->SetCurrentSiteUser($result);
	
					$site_users_id = $result;
				}
	
				/* Если пользователь зарегистрирован и необходимо подтверждать авторизацию */
				if ($result > 0 && !$param['not_send_mail_confirm'])
				{
					ob_start();
					?>
					<h1>Спасибо за регистрацию</h1>
					<p>Для продолжения работы необходимо подтвердить регистрацию Ваших данных. 
					В Ваш адрес отправлено письмо, содержащее ссылку для подтверждения регистрации.</p>
					<?php
					$GLOBALS['quick_reg'] = ob_get_clean();
				}
	
				// Проверяем наличие ошибки при регистрации
				if ($result < 0)
				{
					// -3 - Пользователь с таким логином зарегистрирован ранее
					// -2 - Пользователь с таким e-mail зарегистрирован ранее
					// -1 - Введен некорректный e-mail
					$GLOBALS['external_propertys_reg']['error_reg'] = $result;
					$GLOBALS['external_propertys_reg']['quick'] = "quick";
				}
			}
			else
			{
				$GLOBALS['external_propertys_reg']['error_reg'] = -4; /* Пожалуйста, задайте все обязательные параметры */
				$GLOBALS['external_propertys_reg']['quick'] = "quick";
			}
		}
	}
	
	/* Получаем текущее время для синхронизации с информацией, хранимой в кукисах */
	$GLOBALS['current_time'] = time();
	
	$GLOBALS['FORUM_CONFERENCE_ID'] = $conference_id;
	
	/* Формируем информацию для заголовка страницы */
	$ForumAndItemArray = $Forums->GetForumAndItemIdFromPath($GLOBALS['FORUM_CONFERENCE_ID']);
	
	$GLOBALS['Forum_ID'] = $ForumAndItemArray['forum_id'];
	$GLOBALS['Theme_ID'] = $ForumAndItemArray['theme_id'];
	
	$end_array_item = end($GLOBALS['URL_ARRAY']);
	
	/* RSS */
	if ($end_array_item == 'rss')
	{
		// Флаг, определяющий доступ пользователя к теме форума
		$have_access = false;
	
		// Если пользователь авторизирован
		if ($site_users_id)
		{
			$DataBase = & singleton('DataBase');
	
			// Получаем доступные группы пользователя
			$site_user_groups = $SiteUsers->GetGroupsForUser($site_users_id);
	
			// Выбираем группы пользователей для этого форума
			$query_select_forum_groups = "SELECT * FROM forums_users_group_list_table
				WHERE `forums_id` = '{$GLOBALS['Forum_ID']}'";
	
			$result_query_select_forum_groups = $DataBase->select($query_select_forum_groups);
	
			while ($row_select_forum_groups = mysql_fetch_assoc($result_query_select_forum_groups))
			{
				// Проверяем, входит ли пользователь в группы, которые доступны форуму
				if (in_array($row_select_forum_groups['site_users_group_id'], $site_user_groups))
				{
					$have_access = true;
				}
			}
		}
	
		$forum_info = $Forums->GetForum($GLOBALS['Forum_ID']);
	
		// Если форум доступен для всех, то разрешаем показ RSS
		if ($forum_info && $forum_info['forums_visible4all'] == 1)
		{
			$have_access = true;
		}
	
		if ($have_access)
		{
			$property = array();
	
			/* Заголовок RSS-канала */
			$property['title'] = $forum_info['forums_name'];
	
			/* Описание RSS-канала */
			if (!empty($GLOBALS['LA']['RssDescription']))
			{
				$property['description'] = $forum_info['forums_description'];
			}
	
			/* URL RSS-канала */
			$site = & singleton('site');
			$site_alias = $site->GetCurrentAlias(CURRENT_SITE);
	
			$forums_group_info = $Forums->GetForumsGroup($forum_info['forums_group_id']);
	
			$property['link'] = 'http://' . $site_alias . $Forums->GetConferencePath($forums_group_info['forums_conference_id']) . $GLOBALS['Forum_ID'] .'/' ;
	
			// Определяем кол-во на страницу
			$forums_conference_row = $Forums->GetConference($forums_group_info['forums_conference_id']);
	
			if ($forums_conference_row)
			{
				$on_page_rss = $forums_conference_row['forums_conference_on_page_theme'];
			}
			else
			{
				$on_page_rss = 10;
			}
	
			$Forums->ShowForumRss($GLOBALS['Forum_ID'], $on_page_rss, 0, $property);
		}
	
		exit();
	}
	
	$page = to_str($end_array_item);
	
	if (!$GLOBALS['Forum_ID'] && ereg ("^user-([0-9]*)$", $page, $regs) && to_int($regs[1]) > 0)
	{
		$user_info = $SiteUsers->GetSiteUser($regs[1]);
		if ($user_info)
		{
			$new_title = "Пользователь ".$user_info['site_users_login'];
		}
	}
	
	/* Если определен форум */
	if ($GLOBALS['Forum_ID'])
	{
		$forum_info = $Forums->GetForum($GLOBALS['Forum_ID']);
	
		/* Определяем, разрешен ли доступ к форуму */
		$access_param = array();
		$access_param['site_users_id'] = $site_users_id;
		$access_param['forums_id'] = to_int($GLOBALS['Forum_ID']);
		if ($Forums->CheckUsersAccessToForum($access_param) || $forum_info['forums_visible4all'])
		{
			if ($forum_info)
			{
				$new_title = $forum_info['forums_name'];
			}
	
			/* Если определена тема */
			if ($GLOBALS['Theme_ID'])
			{
				$theme_info = $Forums->GetTheme($GLOBALS['Theme_ID']);
	
				$messages = $Forums->GetAllMessages($GLOBALS['Theme_ID']);
				if ($messages && count($messages) > 0)
				{
					$new_title = $messages[0]['forums_theme_title'];
				}
	
				/* Записываем информацию о последнем посещении форума */
				if ($forum_info && $theme_info && $site_users_id != 0)
				{
					$Forums->InsertForumView($site_users_id, $GLOBALS['Theme_ID']);
				}
			}
		}
		else
		{
			$new_title = 'Доступ ограничен';
		}
	}
	
	/* Заголовок страницы */
	if (isset($new_title))
	{
		$kernel = & singleton('kernel');
		$kernel->set_title($new_title);
	}
}
?>