<?php 
/**
 * Система управления сайтом HostCMS v. 5.xx
 * Copyright © 2005-2010 ООО "Хостмэйк" (Hostmake LLC), http://www.hostcms.ru
 *
 * Обработчик добавления/редактирования группы макетов.
 * 
 * Файл: /admin/templates/templates/action/add_template_group.php
 * 
 * @author Hostmake LLC
 * @version 5.x
 */
$param = array();

// Проверяем существует ли идентификатор.
if (to_int($_POST['templates_group_id']) > 0)
{
	$param['templates_group_id'] = to_int($_POST['templates_group_id']);
}

$param['templates_group_parent_id'] = to_int($_POST['edit_templates_group_parent_id']);

$param['templates_group_name'] = to_str($_POST['templates_group_name']);

$param['site_id'] = to_int($_REQUEST['site_id']);

// Если сайт был изменен и перемещаемый каталог находился не в корне, то перемещаем его в корень независимо от выбранного каталога, т.к. выбранного каталога может не оказаться в целевом сайте
if ($param['site_id'] != CURRENT_SITE && $param['templates_group_parent_id'] != 0)
{
	$param['templates_group_parent_id'] = 0;
}

$templates = new templates();

$DataBase = & singleton('DataBase');

$site_id = $param['site_id'];

// Если идентификатор сайта был изменен, начинаем обработку данных
if ($param['site_id'] != CURRENT_SITE)
{
	// Проверяем, есть ли у нашей директории есть поддиректории
	//	$arr = $documents->GetDocumentsDirTree($documents_dir_id, '');
	$arr = $templates->GetTemplateDirTree(to_int($_POST['templates_group_id']), '');

	// Массив поддиректорий
	$array_of_son_items = array();

	// Массив документов
	$array_of_son_documents = array();


	// Часть строки запроса на изменение директорий
	$query_dir_base = "UPDATE `templates_group_table` SET `site_id` = '$site_id' WHERE `templates_group_id`=";

	// Часть строки запроса на изменение документов
	$query_doc_base = "UPDATE `templates_table` SET `site_id` = '$site_id'  WHERE `templates_id`=";

	// Распарсиваем выдачу базы
	foreach ($arr as $key => $value)
	{
		foreach ($value as $id => $val)
		{
			if ($id == 0)
			{
				$array_of_son_items[] = $val;
			}
		}
	}

	// Если количество элементов в массиве поддиректорий больше 0, то
	if (count($array_of_son_items) > 0)
	{
		// Составляем запрос на изменение каждой поддиректории
		$query_dir_ext = implode(' OR `templates_group_id` = ', $array_of_son_items);

		// Составляем результирующий запрос к базе
		$query = $query_dir_base.$query_dir_ext;

		// Запрос
		$DataBase->query($query);

		// Проверяем есть ли документы в поддиректориях
		$count_of_son_items = count($array_of_son_items);

		for ($i = 0; $i< $count_of_son_items; $i++)
		{
			$templates_group_id = $array_of_son_items[$i];

			$query = "SELECT * FROM templates_table WHERE templates_group_id='$templates_group_id'";

			$array_doc = $DataBase->query($query);

			while ($row = mysql_fetch_assoc($array_doc))
			{
				$array_of_son_documents[] = $row['templates_id'];
			}
		}

		if (count($array_of_son_documents) > 0)
		{
			// Найдены дополнительные документы в поддиректориях
			// Составляем запрос на изменение дополнительных документов в поддиректориях
			$query_doc_ext = implode(' OR `templates_id` = ', $array_of_son_documents);
			// Составляем результирующий запрос к базе
			$query = $query_doc_base.$query_doc_ext;

			$DataBase->query($query);
		}
	}

	// Проверяем существуют ли в ТЕКУЩЕЙ директории документы
	$templates_group_id = to_int($_POST['templates_group_id']);

	$query = "SELECT * FROM templates_table WHERE templates_group_id='$templates_group_id'";
	$array_doc = $DataBase->query($query);

	// Распарсиваем выдачу Базы
	while ($row = mysql_fetch_assoc($array_doc))
	{
		$array_of_son_documents[] = $row['templates_id'];
	}

	// Если количество элементов в массиве документов больше 0
	if (count($array_of_son_documents) > 0)
	{
		// Документы В ТЕКУЩЕЙ директории существуют, составляем строку запроса на изменение каждого документа
		$query_doc_ext = implode(' OR `templates_id` = ', $array_of_son_documents);
		// Составляем результирующий запрос к базе
		$query = $query_doc_base.$query_doc_ext;

		$DataBase->query($query);
	}
}

if ($insert_templates_group_id = $templates->InsertTemplatesGroup($param))
{
	$admin_forms = new admin_forms();
	$window_id = $admin_forms->GetWindowId();
	?><script type="text/javascript">
	$.appendInput('<?php echo $window_id?>', 'EditAddTemplateGroup', 'templates_group_id', '<?php echo $insert_templates_group_id?>');
	</script><?php
	
	if ($_POST['templates_group_id'])
	{
		show_message($GLOBALS['MSG_templates']['templates_group_edit_success']);
	}
	else
	{
		show_message($GLOBALS['MSG_templates']['templates_group_add_success']);
	}
}
else // Ошибка при добавлении/редктировании группы макетов
{
	// Ошибка при обновлении группы макетов
	if ($_POST['templates_group_id'])
	{
		show_error_message($GLOBALS['MSG_templates']['templates_group_edit_error']);
	}
	else // Ошибка при добавлении группы макетов
	{
		show_error_message($GLOBALS['MSG_templates']['templates_group_add_error']);
	}
}
?>