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

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

$site_param['site_name'] = trim(to_str($_REQUEST['site_name']));
$site_param['site_is_active'] = to_str($_REQUEST['site_is_active']);
$site_param['site_coding'] = to_str($_REQUEST['site_coding']);
$site_param['site_order'] = to_str($_REQUEST['site_order']);
$site_param['site_locale'] = to_str($_REQUEST['site_locale']);
$site_param['site_timezone'] = to_str($_REQUEST['site_timezone']);
$site_param['site_max_size_load_image'] = to_int($_REQUEST['site_max_size_load_image']);
$site_param['site_max_size_load_image_big'] = to_int($_REQUEST['site_max_size_load_image_big']);

$site_param['site_admin_email'] = to_str($_REQUEST['site_admin_email']);

$site_param['site_chmod'] = to_str($_REQUEST['site_chmod']);
$site_param['site_files_chmod'] = to_str($_REQUEST['site_files_chmod']);
$site_param['site_date_format'] = to_str($_REQUEST['site_date_format']);
$site_param['site_date_time_format'] = to_str($_REQUEST['site_date_time_format']);
$site_param['site_error'] = to_str($_REQUEST['site_error']);
$site_param['site_error404'] = to_str($_REQUEST['site_error404']);
$site_param['site_access_denied'] = to_str($_REQUEST['site_access_denied']);
$site_param['site_robots'] = to_str($_REQUEST['site_robots']);
$site_param['site_key'] = to_str($_REQUEST['site_key']);
$site_param['site_is_close'] = to_int($_REQUEST['site_is_close']);

$site_param['site_css_left'] = to_str($_REQUEST['site_css_left']);
$site_param['site_css_right'] = to_str($_REQUEST['site_css_right']);

$site_param['site_html_cache_use'] = (isset($_REQUEST['site_html_cache_use'])?1:0);
$site_param['site_html_cache_with'] = to_str($_REQUEST['site_html_cache_with']);
$site_param['site_html_cache_without'] = to_str($_REQUEST['site_html_cache_without']);

$site_param['site_html_cache_clear_probability'] = to_int($_REQUEST['site_html_cache_clear_probability']);

// Проверяем при редактировании - было ли выключено кэширование
if ($site_param['site_id']
&& $site_param['site_html_cache_use'] == 0
&& class_exists('Cache'))
{
	$Cache = new Cache();

	// Удаляем кэш статичных страниц
	$Cache->ClearStaticCache($site_param['site_id']);
}

if (isset($_REQUEST['site_safe_email']))
{
	$site_param['site_safe_email'] = 1;
}
else 
{
	$site_param['site_safe_email'] = 0;
}

if (isset($_REQUEST['site_send_attendance_report']))
{
	$site_param['site_send_attendance_report'] = 1;
} 
else
{
	$site_param['site_send_attendance_report'] = 0; 
}

$site_param['site_uploaddir'] = quote_smart(to_str($_REQUEST['site_upload_dir']));

$site_param['site_nesting_level'] = to_int($_REQUEST['site_nesting_level']);

// проверяем чтобы число символов в названии сайта было не менее 1
if (mb_strlen(trim($_REQUEST['site_name'])) < 1)
{
	$error_site = 1;
	show_error_message($GLOBALS['MSG_site']['error_site_name']);
}
else
{
	// Проверяем нет ли сайта с аналогичным именем
	$DataBase->select("SELECT site_id FROM site_table
	WHERE site_name = '".quote_smart($site_param['site_name'])."'");
	
	$result = $DataBase->result;
	
	if ($DataBase->get_count_row() > 0)
	{
		// Проверяем редактирование это или добавление
		if ($site_param['site_id']) // - редактирование
		{
			$row_site = mysql_fetch_assoc($result);
			
			// Если id не совпадают (пытаемся добавить сайт с аналогичным именем), возвращаем false
			if ($row_site['site_id'] != $site_param['site_id'])
			{
				$error_site = 2;
				show_error_message($GLOBALS['MSG_site']['site_add_edit_domen_error']);
			}
		}
		else // добавление сайта
		{
			$error_site = 3;
			show_error_message($GLOBALS['MSG_site']['error_site_double_name']);
		}
	}

	if (!isset($error_site))
	{
		$site_id = $site->insert_site($site_param);

		if ($site_id)
		{
			$admin_forms = new admin_forms();
			$window_id = $admin_forms->GetWindowId();
			?><script type="text/javascript">
			$.appendInput('<?php echo $window_id?>', 'EditAddSite', 'site_id', '<?php echo $site_id?>');
			</script><?php

			// Загрузили ico-файл
			if (isset($_FILES['site_ico_image']['tmp_name']) && $_FILES['site_ico_image']['size'] > 0)
			{
				// Флаг
				$success_flag = true;

				// Не существует директории для загрузки ico-файлов
				if (!is_dir(CMS_FOLDER.UPLOADDIR.'favicon/'))
				{
					if (!mkdir(CMS_FOLDER.UPLOADDIR.'favicon/', CHMOD))
					{
						$success_flag = false;
						show_error_message($GLOBALS['MSG_site']['error_site_no_dir_ico']);
					}
				}

				if ($success_flag)
				{
					$kernel = & singleton('kernel');

					$ext = $kernel->GetExtension($_FILES['site_ico_image']['name']);
					$ext = mb_strtolower($ext);

					if ($ext == 'ico')
					{
						$ico_path = CMS_FOLDER . UPLOADDIR . 'favicon/site_' . $site_id . '.' . $ext;
						if (!move_uploaded_file($_FILES['site_ico_image']['tmp_name'], $ico_path))
						{
							show_error_message($GLOBALS['MSG_site']['error_site_no_upload_ico']);
						}
						else
						{
							@chmod($ico_path, CHMOD_FILE);
						}
					}
					else
					{
						show_error_message($GLOBALS['MSG_site']['error_site_ico_extension']);
					}
				}
			}

			// Редактирование сайта
			if ($site_param['site_id'])
			{
				show_message($GLOBALS['MSG_site']['site_edit_site_success']);
			}
			else // Добавление сайта
			{
				show_message($GLOBALS['MSG_site']['site_add_site_success']);
			}
		}
		else // Ошибка добавления/редактирования сайта
		{
			// Редактирование сайта
			if ($site_param['site_id'])
			{
				show_error_message($GLOBALS['MSG_site']['site_edit_site_error']);
			}
			else // Добавление сайта
			{
				show_error_message($GLOBALS['MSG_site']['site_add_site_error']);
			}
		}
	}
}

?>