<?php 
/**
 * Система управления сайтом HostCMS v. 5.xx
 * Copyright © 2005-2010 ООО "Хостмэйк" (Hostmake LLC), http://www.hostcms.ru
 *
 * Модуль structure.
 * 
 * Файл: /admin/structure/structure.php
 * 
 * @author Hostmake LLC
 * @version 5.x
 */
// Подключаем основные классы.
require_once('../../main_classes.php');

$admin = new Admin();

// Проверка авторизации пользователя.
$admin->admin_session_valid('Structure');

$kernel = & singleton('kernel');

// Инсталляция всех модулей ядра.
$kernel->LoadModules(!isset($_REQUEST['JsHttpRequest']));

// Инициализация CURRENT_SITE и констант.
$admin->admin_init();

$structure = & singleton('Structure');

$admin_forms = & singleton('admin_forms');

if (!isset($_REQUEST['JsHttpRequest']))
{
	do_html_header_admin($GLOBALS['MSG_structure']['structure_title']);
}

// Добавление/редактирование узла структуры
if (isset($_REQUEST['add_structure']) || isset($_REQUEST['save_structure']))
{
	ob_start();
	
	if (defined('READ_ONLY') && READ_ONLY)
	{
		$kernel->ReadMode();
	}
	else
	{
		// Добавляем информацию в БД.
		include(CMS_FOLDER . '/admin/structure/action/add_edit.php');
	}
	$message = ob_get_clean();

	$JsHttpRequest = new JsHttpRequest('UTF-8');

	if (isset($_REQUEST['add_structure']))
	{
		// Отображаем форму
		include(CMS_FOLDER . '/admin/structure/action/load_structure.php');
		$GLOBALS['_RESULT'] = $admin_forms->ShowForm(82, 'load_data');
		// Добавляем определенное выше сообщение
		$GLOBALS['_RESULT']['error'] = $message;
	}
	else
	{
		// Отправляем только сообщение о произведенных действиях
		$GLOBALS['_RESULT'] = array(
		'error' => $message,
		'form_html' => '',
		'title' => '');
	}

	echo $JsHttpRequest->LOADER;
	exit();
}

// Добавление/редактирование дополнительного свойства узлов структуры
if (isset($_REQUEST['add_structure_propertys']) || isset($_REQUEST['save_structure_propertys']))
{
	ob_start();
	
	if (defined('READ_ONLY') && READ_ONLY)
	{
		$kernel->ReadMode();
	}
	else
	{
		// Добавляем информацию в БД
		include(CMS_FOLDER . '/admin/structure/action/add_structure_propertys.php');
	}
	
	$message = ob_get_clean();

	$JsHttpRequest = new JsHttpRequest('UTF-8');

	if (isset($_REQUEST['add_structure_propertys']))
	{
		// Отображаем форму
		include(CMS_FOLDER . '/admin/structure/action/load_structure_prop.php');
		$GLOBALS['_RESULT'] = $admin_forms->ShowForm(86, 'load_data');
		// Добавляем определенное выше сообщение
		$GLOBALS['_RESULT']['error'] = $message;
	}
	else
	{
		// Отправляем только сообщение о произведенных действиях
		$GLOBALS['_RESULT'] = array(
		'error' => $message,
		'form_html' => '',
		'title' => '');
	}

	echo $JsHttpRequest->LOADER;
	exit();
}

// Добавление/редактирование меню сайта
if (isset($_REQUEST['add_menu']) || isset($_REQUEST['save_menu']))
{
	ob_start();
	
	if (defined('READ_ONLY') && READ_ONLY)
	{
		$kernel->ReadMode();
	}
	else
	{
		// Добавляем информацию в БД.
		include(CMS_FOLDER . '/admin/structure/action/add_edit_menu.php');
	}
	
	$message = ob_get_clean();

	$JsHttpRequest = new JsHttpRequest('UTF-8');

	if (isset($_REQUEST['add_menu']))
	{
		// Отображаем форму
		include(CMS_FOLDER . 'admin/structure/action/load_menu.php');
		$GLOBALS['_RESULT'] = $admin_forms->ShowForm(87, 'load_data');
		// Добавляем определенное выше сообщение
		$GLOBALS['_RESULT']['error'] = $message;
	}
	else
	{
		// Отправляем только сообщение о произведенных действиях
		$GLOBALS['_RESULT'] = array(
		'error' => $message,
		'form_html' => '',
		'title' => '');
	}

	echo $JsHttpRequest->LOADER;
	exit();
}

// Удаление дополнительного свойства типа "Файл" узлов структуры
if (isset($_REQUEST['delete_structure_property_big_image']) || isset($_REQUEST['delete_structure_property_small_image']))
{
	ob_start();
		
	if (defined('READ_ONLY') && READ_ONLY)
	{
		$kernel->ReadMode();
	}
	else
	{
		include(CMS_FOLDER . 'admin/structure/action/delete_structure_property_image.php');
	}

	$message = ob_get_clean();

	$JsHttpRequest = new JsHttpRequest('UTF-8');

	// Определяем префикс для названия слоя в зависимости от того, удаляем большое изображение или малое
	if (isset($_REQUEST['delete_structure_property_big_image']))
	{
		 $div_prefix = 'upload_big_propertys';
	}
	else 
	{
		$div_prefix = 'upload_small_propertys';
	}
	
	$admin_forms = new admin_forms();
	$window_id = $admin_forms->GetWindowId();
	
	$div_prefix .= to_int($_REQUEST['structure_property_id']);
	
	// Удаляем дочерние узлы
	$GLOBALS['_RESULT'] = array(
	'result' => "
	<script type=\"text/javascript\">
		$('#{$window_id} #{$div_prefix}').empty();
	</script>");

	echo $JsHttpRequest->LOADER;
	exit();
}

switch (to_int($_REQUEST['admin_forms_id']))
{
	case 82:
	default:
		{
			// Запрос параметров типовой динамической страницы
			if (isset($_REQUEST['ajax_structure']))
			{
				include(CMS_FOLDER . 'admin/structure/action/ajax_loader_structure.php');
			}
			else
			{
				// Загрузка списка структуры
				include(CMS_FOLDER . 'admin/structure/action/load_structure.php');
				$admin_forms->ProcessAjax(82);
			}
			break;
		}
	case 86:
		{
			// Загрузка списка дополнительных свойств узлов структуры
			include(CMS_FOLDER . 'admin/structure/action/load_structure_prop.php');
			$admin_forms->ProcessAjax(to_int($_REQUEST['admin_forms_id']));
			break;
		}
	case 87:
		{
			// Загрузка списка меню сайта
			include(CMS_FOLDER.'admin/structure/action/load_menu.php');
			$admin_forms->ProcessAjax(to_int($_REQUEST['admin_forms_id']));
			break;
		}
}

if (!isset($_REQUEST['JsHttpRequest']))
{
	do_html_footer_admin();
}
?>