<?php 

/* ID Информационной системы */
$InformationSystem_id = to_int($GLOBALS['LA']['InformationSystemID']);

// Получаем информацию о текущем пользователе
if (class_exists('SiteUsers'))
{
	$SiteUsers = & singleton('SiteUsers');
	$site_user_id = $SiteUsers->GetCurrentSiteUser();
}
else
{
	$site_user_id = 0;
}

/* Массив внешних параметров, передаваемых в XML */
$external_propertys = array();

/* Добавление комментария */
// ShowAddComment == 1 - только авторизированные
// ShowAddComment == 2 - все
if (isset($_POST['add_comment'])
&& (($GLOBALS['LA']['ShowAddComment'] == 1 && $site_user_id > 0) || $GLOBALS['LA']['ShowAddComment'] == 2))
{
	$param['information_items_id'] = to_int($GLOBALS['InformationResult']['item_id']);

	/* XSL шаблон для отправки уведомления администратору о добавлении комментария */
	$param['admin_email_xsl'] = to_str($GLOBALS['LA']['xsl_admin_email']);

	$xsl_add_comment = to_str($GLOBALS['LA']['xsl_add_comment']);

	/* Режим добавления комментария:
	1 - публиковать сразу,
	0 - публиковать после проверки.*/
	if (to_bool($GLOBALS['LA']['TypeAddComment'])/* || $site_user_id > 0*/)
	{
		$param['status'] = 1;
	}
	else
	{
		$param['status'] = 0;
	}

	// Текст комментария
	$_POST['comment_text'] = nl2br(to_str($_POST['comment_text']));

	// Типографируем текст, если доступен модуль типографирования
	if (class_exists('typograph'))
	{
		$typograph = new typograph();
		$_POST['comment_text'] = $typograph->ProcessTypographic($_POST['comment_text']);
	}

	$param['comment_mail_type'] = to_int($GLOBALS['LA']['comment_mail_type']);

	// ID родительского комментария
	$param['comment_parent_id'] = to_int($_POST['comment_parent_id']);

	$param['comment_autor'] = htmlspecialchars(to_str($_POST['comment_autor']));
	$param['comment_email'] = htmlspecialchars(to_str($_POST['comment_email']));
	$param['comment_subject'] = htmlspecialchars(to_str($_POST['comment_subject']));
	$param['comment_text'] = htmlspecialchars(to_str($_POST['comment_text']));
	$param['comment_grade'] = to_int($_POST['comment_grade']);
	$param['allowable_tags'] = '<b><strong><i><em><br><p><u><strike><ul><ol><li>';

	ob_start();
	$GLOBALS['LA_InformationSystem']->ShowAddComment('УведомлениеДобавлениеКомментария', $param);
	$external_propertys['message'] = ob_get_clean();
}

if ($GLOBALS['INFSYS_result'] != false)
{
	/* XSL шаблон для отображения списка элементов информационной системы */
	$xsl_list = to_str($GLOBALS['LA']['xsl_information_system_list']);

	/* XSL шаблон для отображения элемента информационной системы */
	$xsl_item = to_str($GLOBALS['LA']['xsl_information_item']);

	$InformationResult = $GLOBALS['InformationResult'];

	/* Массив внешних параметров, передаваемых в XML */
	$external_propertys['ОтображатьСсылкуНаАрхив'] = 0;
	$external_propertys['ОтображатьСсылкиНаСледующиеСтраницы'] = 1;

	/* Массив дополнительных параметров */
	$property = array();

	/* Число элементов на страницу */
	if (isset($InformationResult['items_on_page']))
	{
		if ($InformationResult['items_on_page'] !== true)
		{
			$InformationResult['items_on_page'] = to_int($InformationResult['items_on_page']);
		}
	}
	else
	{
		$InformationResult['items_on_page'] = 10;
	}

	/* Номер, с которого начинается показ */
	if (isset($InformationResult['items_begin']))
	{
		$InformationResult['items_begin'] = to_int($InformationResult['items_begin']);
	}
	else
	{
		$InformationResult['items_begin'] = 0;
	}

	/* Вывод списка */
	if ($GLOBALS['INFSYS_result']['item'] == false)
	{
		// Если передано имя тэга - фильтруем
		if (isset($GLOBALS['INFSYS_result']['tag_name']))
		{
			if (class_exists('Tag'))
			{
				$oTag = & singleton('Tag');

				$tag_row = $oTag->GetTagByName($GLOBALS['INFSYS_result']['tag_name']);

				$property['tags'] = array($tag_row['tag_id']);

				// При выводе тэгов вывод элементов ведется из всех групп
				$GLOBALS['INFSYS_result']['group'] = false;
			}
		}

		// $property['xml_show_group_type'] = 'all';

		// Разрешаем передачу в XML свойств групп
		$property['xml_show_group_property'] = true;

		// Капча
		$Captcha = new Captcha();
		$external_propertys['captcha_key'] = $Captcha->GetCaptchaID();

		/* Обработка вставки информационного элемента */
		if (isset($_POST['submit_question']))

		{
			// Проверяем правильноть указания капчи
			// Для авторизированных пользователей капчу не проверяем
			if ($site_user_id > 0
			|| $Captcha->ValidCaptcha(to_str($_POST['captcha_key']), to_str($_POST['captcha_keystring'])))
			{
				if ($GLOBALS['LA_InformationSystem']->confirm_information_item(date('U'), $_SERVER['REMOTE_ADDR']) == 1)
				{
					$date= date('Y-m-d H:i:s');

					/* Определяем группу (если задана)
					Принимает в качестве параметра ID информационной системы*/
					$group_id = to_int($GLOBALS['INFSYS_result']['group']);

					// Статус вновь добавленного элемента
					// 0 - не активен (необходимо вручную проверить и включить)
					// 1 - активен, виден сразу после публикации
					$item_status = to_int($GLOBALS['LA']['ItemStatus']);

					// Текст сообщения
					$text = nl2br(htmlspecialchars(strip_tags(to_str($_POST['text_item']))));

					// Типографируем текст, если доступен модуль типографирования
					if (class_exists('typograph'))
					{
						$typograph = new typograph();
						$text = $typograph->ProcessTypographic($text);
					}

					$param = array();
					$param['site_users_id'] = $site_user_id;

					// Вставляем запись
					$question_id = $GLOBALS['LA_InformationSystem']->InsertInformationItems(0,	0,
					$InformationSystem_id, $group_id, $date,	htmlspecialchars(strip_tags(to_str($_POST['subject']))), '',
					$item_status, $text, '', 0, to_str($_SERVER['REMOTE_ADDR']), '', 1, '', '', '', '', $param);

					$row = $GLOBALS['LA_InformationSystem']->GetInformationSystemItems($question_id);

					// Вставляем в дополнительные свойства автора, его email и id
					$GLOBALS['LA_InformationSystem']->InsertInformationPropertysItems(0, 0,	to_int($GLOBALS['LA']['autor_property_id']), $question_id, htmlspecialchars(strip_tags(to_str($_POST['autor']))));

					$GLOBALS['LA_InformationSystem']->InsertInformationPropertysItems(0, 0,	to_int($GLOBALS['LA']['email_property_id']), $question_id, htmlspecialchars(strip_tags(to_str($_POST['email']))));

					// Если пользователь зерегистрирован, получаем информацию
					if (class_exists('SiteUsers') && !empty($site_user_id))
					{
						$row_site_user = $SiteUsers->GetSiteUser($site_user_id);

						if(!empty($row_site_user['site_users_name']) && !empty($row_site_user['site_users_surname']))
						{
							$site_user_name = $row_site_user['site_users_name'].' '.$row_site_user['site_users_surname'];
						}
						else
						{
							$site_user_name = $row_site_user['site_users_login'];
						}

						$site_user_email = $row_site_user['site_users_email'];
					}
					else
					{
						$site_user_name = htmlspecialchars(strip_tags(to_str($_POST['autor'])));
						$site_user_email = htmlspecialchars(strip_tags(to_str($_POST['email'])));
					}

					ob_start();
					if ($item_status == 0)
					{
						?>
						<p>Благодарим Вас, <?php echo $site_user_name?>!
						<br />Ваша запись принята. После проверки Администратором она станет доступной!
						</p>
						<?php 
					}
					else
					{
						?>
						<p>Благодарим Вас, <?php echo $site_user_name?>!
						<br />Ваша запись принята и опубликована!
						</p>
						<?php 	
					}
					$external_propertys['message'] = ob_get_clean();

					// Отправка письма администратору
					$message = "Доброе время суток, уважаемый Администратор!\n\nНа сайт, поддерживаемый системой управления сайтом HostCMS, была добавлена запись:\n";
					$message .= "Автор: ".$site_user_name."\n";
					$message .= "E-mail: ".$site_user_email."\n";
					$message .= "Тема: ".htmlspecialchars(strip_tags(to_str($_POST['subject'])))."\n";
					$message .=	"Информационная система: ".$row['information_systems_name']."\n";
					$message .= "Информационный элемент: ".$row['information_items_name']."\n";
					$message .=	"Редактировать: http://".to_str($_SERVER['HTTP_HOST'])."/admin/InformationSystems/InformationSystems.php?admin_forms_id=12&operation=edit_group_item&check_1_{$question_id}=1&information_system_id={$InformationSystem_id}\n";
					$DateClass = & singleton('DateClass');
					$message .= "Дата: ".$DateClass->datetime_format($date)."\n";
					$message .= "IP-адрес: ".to_str($_SERVER['REMOTE_ADDR'])."\n";
					$message .= "Вопрос: ".htmlspecialchars(strip_tags(to_str($_POST['text_item'])));

					$subject = 'Добавление вопроса';

					$kernel = & singleton('kernel');
					$kernel->SendMailWithFile(EMAIL_TO, EMAIL_TO, $subject, $message, array(), 'text/plain');
				}
				else // нельзя добавлить объявление - прошло мало времени
				{
					$external_propertys['error'] = 'Запись не может быть добавлена, т.к. прошло мало времени с момента Вашего последнего добавления вопроса!';
				}
			}
			// Ошибка добавления записи
			else
			{
				$external_propertys['error'] = 'Вы неверно ввели число подтверждения отправки формы!';

				$external_propertys['fio'] = htmlspecialchars(strip_tags(to_str($_POST['autor'])));
				$external_propertys['email'] = htmlspecialchars(strip_tags(to_str($_POST['email'])));
				$external_propertys['subject'] = htmlspecialchars(strip_tags(to_str($_POST['subject'])));
				$external_propertys['text_item'] = htmlspecialchars(strip_tags(to_str($_POST['text_item'])));
			}
		}

		/* Отображаем информационную систему */
		$GLOBALS['LA_InformationSystem']->ShowInformationSystem($InformationSystem_id, $GLOBALS['INFSYS_result']['group'], $xsl_list, $InformationResult['items_on_page'], $InformationResult['items_begin'], $external_propertys, $property);
	}
	else
	{
		/* Определяем идентификатор информационного элемента */
		$item_id = $GLOBALS['LA_InformationSystem']->GetIdInformationItem($GLOBALS['INFSYS_result']['item'], $GLOBALS['INFSYS_result']['group'], $InformationSystem_id);

		$property['part'] = $GLOBALS['part_ii'];

		// Запрещаем передачу в XML свойств групп
		$property['xml_show_group_property'] = false;

		/* Выводим элемент информационной системы */
		$GLOBALS['LA_InformationSystem']->ShowInformationSystemItem($item_id, $xsl_item, $external_propertys);
	}

}
?>