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

$DataBase = & singleton('DataBase');

$documents_dir_id = to_int($_POST['documents_dir_id']);

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

$documents_dir_parent_id = to_int($_REQUEST['documents_dir_parent_id2']);

$type = $documents_dir_id > 0 ? 1 : 0;

// Временный массив
$arr = array();

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

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

	// Массив документов
	$array_of_son_documents = array();
	
	
	// Часть строки запроса на изменение директорий
 	$query_dir_base = "UPDATE `documents_dir_table` SET `site_id` = '$site_id' WHERE `documents_dir_id`=";

	// Часть строки запроса на изменение документов
	$query_doc_base = "UPDATE `documents_table` SET `site_id` = '$site_id'  WHERE `documents_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 `documents_dir_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++)
		{
			$array_doc = $documents->GetDocumentsFromDir($array_of_son_items[$i]);

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

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

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

	// Проверяем существуют ли в ТЕКУЩЕЙ директории документы
	$arr = $documents->GetDocumentsFromDir($documents_dir_id);

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

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

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

// Если сайт изменен и родительский каталог не равен 0, то кидаем элемент в корень целевого сайта
if ($site_id != CURRENT_SITE && $documents_dir_parent_id != 0) 
{
	$documents_dir_parent_id = 0;
}

if ($insert_document_id = $documents->insert_documents_dir(
	$type, $documents_dir_id, $documents_dir_parent_id, $_POST['documents_dir_name'], false, $site_id))
{
	$admin_forms = new admin_forms();
	$window_id = $admin_forms->GetWindowId();
	?><script type="text/javascript">
	$.appendInput('<?php echo $window_id?>', 'EditAddDocumentDir', 'documents_dir_id', '<?php echo $insert_document_id?>');
	</script><?php
	
	// Редактирование раздела документов
	if ($type)
	{
		show_message($GLOBALS['MSG_documents']['documents_edit_dir_success']);
	}
	else
	{
		show_message($GLOBALS['MSG_documents']['documents_add_dir_success']);
	}
}
else // Ошибка добавления/редактирования раздела документов
{
	// Редактирование разделя документов
	if ($type)
	{
		show_error_message($GLOBALS['MSG_documents']['documents_edit_dir_error']);
	}
	else
	{
		show_error_message($GLOBALS['MSG_documents']['documents_add_dir_error']);
	}
}
?>