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

$form_params['title'] = ($modules_id == 0)
? $GLOBALS['MSG_modules']['modules_add_form_title']
: $GLOBALS['MSG_modules']['modules_edit_form_title'];

$form_params['form_attribs']['method'] = 'post';
$form_params['form_attribs']['action'] = '/admin/modules/modules.php';
$form_params['form_attribs']['name'] = 'EditAddModule';

$module = new modules();

$File = new File();

$admin_forms_fields = new admin_forms_fields();

// Строим "хлебные крошки"
$form_params['path_array'][] = array(
'link' => $admin_forms_fields->GetHtmlCallDoLoadAjax('/admin/modules/modules.php', '', 40, 'load_data'),
'onclick' => $admin_forms_fields->GetOnClickCallDoLoadAjax('/admin/modules/modules.php', '', 40, 'load_data'),
'name' => $GLOBALS['MSG_modules']['modules_show_modules_link']);

$admin_forms_fields->admin_forms_fields($form_params);

if (!isset($error_add_edit_module))
{
	// Редактирование модуля
	if ($modules_id)
	{
		$type = 1;
		$result = mysql_fetch_assoc($module->select_modules($modules_id));
		$modules_name = $result['modules_name'];
		$modules_description = $result['modules_description'];
		$modules_status = $result['modules_status'];
		$modules_path = $result['modules_path'];
		$modules_order = $result['modules_order'];
		$fname = CMS_FOLDER . 'modules/' . $modules_path . '/config/config.php';

		if (is_file($fname))
		{
			$modules_parameters = file_get_contents($fname);
		}
		else
		{
			$modules_parameters = '';
		}
	}
	// Добавление модуля
	else
	{
		$modules_name = '';
		$modules_description = '';
		$modules_parameters = '';
		$modules_status = 0;
		$modules_path = '';
		$modules_order = 0;
	}
}
else // Произошла ошибка при добавлении/редактировании модуля
{

	$modules_name = to_str($_REQUEST['modules_name']);
	$modules_description = to_str($_REQUEST['modules_description']);
	$modules_status = to_int($_REQUEST['modules_status']);
	$modules_path = to_str($_REQUEST['modules_path']);
	$modules_order = to_int($_REQUEST['modules_order']);
	$fname = CMS_FOLDER . 'modules/' . $modules_path . '/config/config.php';

	if (is_file($fname))
	{
		$modules_parameters = file_get_contents($fname);
	}
	else
	{
		$modules_parameters = '';
	}

	// Ошибка создания папки модуля
	if ($error_add_edit_module == 1)
	{
		show_error_message($GLOBALS['MSG_modules']['modules_add_error_path3']);
	}

	// Ошибка создания файла модуля
	if ($error_add_edit_module == 2)
	{
		show_error_message($GLOBALS['MSG_modules']['modules_add_error_create_module_file']);
	}

	// Ошибка создания папки параметров модуля
	if ($error_add_edit_module == 3)
	{
		show_error_message($GLOBALS['MSG_modules']['modules_add_error_create_config_dir']);
	}

	if ($error_add_edit_module == 4) // Невозможно открыть файл параметоров модуля
	{
		show_error_message($GLOBALS['MSG_modules']['error_file_open'] . $fname);
	}

	if ($error_add_edit_module == 5) // Невозможно записать в файл параметров модуля
	{
		show_error_message($GLOBALS['MSG_modules']['error_file_write'] . $fname);
	}
}

// Основные атрибуты.
$tab_id = $admin_forms_fields->AddTab($GLOBALS['MSG_modules']['tab_attribute']);

// название модуля
$param = array();
$param['tab_id'] = $tab_id;
$param['name'] = 'modules_name';
$param['caption'] = $GLOBALS['MSG_modules']['modules_add_form_name'];
$param['type'] = 0; // textbox
$param['attributes']['class'] = 'large';
$param['value'] = $modules_name;
$param['format']['minlen']['value'] = 1;
$param['format']['maxlen']['value'] = 255;

$admin_forms_fields->AddField($param);

// Разделитель.
$admin_forms_fields->AddSeparator($tab_id);

// описание модуля
$param = array();
$param['tab_id'] = $tab_id;
$param['name'] = 'modules_description';
$param['caption'] = $GLOBALS['MSG_modules']['modules_add_form_description'] ;
$param['type'] = 5; // Поле ввода.
$param['attributes']['cols'] = 150;
$param['attributes']['rows'] = 5;
$param['value'] = $modules_description;

$admin_forms_fields->AddField($param);

// Разделитель.
$admin_forms_fields->AddSeparator($tab_id);

// массив статусов модуля
$array[0] = $GLOBALS['MSG_modules']["modules_add_form_status_is_non_active"];
$array[1] = $GLOBALS['MSG_modules']["modules_add_form_status_is_active"];

// Статус модуля
$param = array();
$param['tab_id'] = $tab_id;
$param['name'] = 'modules_status';
$param['caption'] = $GLOBALS['MSG_modules']['modules_add_form_status'];
$param['type'] = 2; // выпадающий список
$param['items'] = $array;
$param['value'] = $modules_status;

$admin_forms_fields->AddField($param);

// Путь к модулю
$param = array();
$param['tab_id'] = $tab_id;
$param['name'] = 'modules_path';
$param['caption'] = $GLOBALS['MSG_modules']['modules_add_form_path'];
$param['type'] = 0; // textbox
$param['value'] = $modules_path;
$param['format']['lib']['value'] = 'path';
$param['format']['minlen']['value'] = 1;
$param['format']['maxlen']['value'] = 255;

$admin_forms_fields->AddField($param);

// Разделитель.
$admin_forms_fields->AddSeparator($tab_id);

// Порядок сортировки
$param = array();
$param['tab_id'] = $tab_id;
$param['name'] = 'modules_order';
$param['caption'] = $GLOBALS['MSG_modules']['modules_add_form_order'];
$param['type'] = 0; // textbox
//$param['attributes']['size'] = 50;
$param['value'] = $modules_order;

$admin_forms_fields->AddField($param);

// Разделитель.
$admin_forms_fields->AddSeparator($tab_id);

// параметры модуля
$tab_id = $admin_forms_fields->AddTab($GLOBALS['MSG_modules']['tab_parameters']);

// параметры модуля
$param = array();
$param['tab_id'] = $tab_id;
$param['name'] = 'modules_parameters';
$param['caption'] = $GLOBALS['MSG_modules']['modules_add_form_params'];
$param['type'] = 5; // Поле ввода.
$param['attributes']['cols'] = 150;
$param['attributes']['rows'] = 15;
$param['value'] = $modules_parameters;

$admin_forms_fields->AddField($param);

// Передеам скрытое поле с идентификатором адреса если он есть
if ($modules_id)
{
	$param = array();
	$param['tab_id'] = $tab_id;
	$param['name'] = 'modules_id';
	$param['caption'] = '';
	$param['type'] = 4; // hidden.
	$param['value'] = $modules_id;

	$admin_forms_fields->AddField($param);
}

// Кнопка "Сохранить".
$param = array();
$param['name'] = 'save_module';
$param['caption'] = $GLOBALS['MSG_modules']['modules_save_form_button'];
$param['attributes']['onclick'] = "return SendForm('{$admin_forms_fields->GetWindowId()}', '{$admin_forms_fields->AAction}', '{$admin_forms_fields->AAdditionalParams}', this, ".to_int($_REQUEST['admin_forms_id']).", 'load_data', " . to_int($admin_forms_fields->form_params['current_page']) . ", " . to_int($admin_forms_fields->form_params['on_page']) . " )";
$param['attributes']['type'] = 'button';
$admin_forms_fields->AddButton($param);

// Кнопка "Применить".
$param = array();
$param['name'] = 'add_module';
$param['caption'] = $GLOBALS['MSG_modules']['modules_add_form_button'];
$param['image'] = '/admin/images/add.gif';
$param['attributes']['onclick'] = "return SendForm('{$admin_forms_fields->GetWindowId()}', '{$admin_forms_fields->AAction}', '{$admin_forms_fields->AAdditionalParams}', this, ".to_int($_REQUEST['admin_forms_id']).", 'load_data', " . to_int($admin_forms_fields->form_params['current_page']) . ", " . to_int($admin_forms_fields->form_params['on_page']) . " )";
$param['attributes']['type'] = 'submit';
$admin_forms_fields->AddButton($param);

// Отображение формы.
$admin_forms_fields->ShowForm();
?>