<?php 
/**
 * Система управления сайтом HostCMS v. 5.xx
 * Copyright © 2005-2010 ООО "Хостмэйк" (Hostmake LLC), http://www.hostcms.ru
 *
 * Ajax загрузчик формы списка значений аффилиатов.
 * 
 * Файл: /admin/shop/action/load_affiliate_values.php
 * 
 * @author Hostmake LLC
 * @version 5.x
 */
function LoadAjaxData(&$admin_forms)
{
	$on_page = $admin_forms->GetOnPageCount();
	$page = to_int($_REQUEST['limit']);
	$begin = ($page == 0) ? 0 : ($page - 1) * $on_page;

	$param = array();

	$affiliate = new affiliate();

	$param['limit'][0] = array('begin' => $begin, 'count' => $on_page);

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

	// Получаем имя партнерской программы
	$affiliate_plans_row = $affiliate->GetAffiliatePlans($affiliate_plans_id);

	// Строим хлебные крошки.
	$parray = array
	(
	array(
	'link' => $admin_forms->GetHtmlCallDoLoadAjax('/admin/shop/shop.php', '', 54, 'load_data'),
	'onclick' => $admin_forms->GetOnClickCallDoLoadAjax('/admin/shop/shop.php', '', 54, 'load_data'),
	'name' => $GLOBALS['MSG_shops']['header_admin__list_forms']),

	array(
	'link' => $admin_forms->GetHtmlCallDoLoadAjax('/admin/shop/shop.php', '', 162, 'load_data'),
	'onclick' => $admin_forms->GetOnClickCallDoLoadAjax('/admin/shop/shop.php', '', 162, 'load_data'),
	'name' => $GLOBALS['MSG_shops']['affiliate_form_title']),

	array(
	'link' => $admin_forms->GetHtmlCallDoLoadAjax('/admin/shop/shop.php', '', 164, 'load_data'),
	'onclick' => $admin_forms->GetOnClickCallDoLoadAjax('/admin/shop/shop.php', '', 164, 'load_data'),
	'name' => sprintf($GLOBALS['MSG_shops']['affiliate_values_form_title'], $affiliate_plans_row['affiliate_plans_name']))
	);

	$param['path_array'] = $parray;

	// Выборка нужных записей.
	$param['data'][] = "SELECT *, IF(affiliate_values_type=0, '{$GLOBALS['MSG_shops']['form_edit_affiliate_values_type_percent']}', '{$GLOBALS['MSG_shops']['form_edit_affiliate_values_type_summ']}') AS type
	FROM affiliate_values_table 
	WHERE `affiliate_plans_id`='$affiliate_plans_id'
	{FILTER_STRING} {ORDER_STRING} {LIMIT}";

	// Число нужных записей.
	$count = "SELECT count(*) AS count
	FROM affiliate_values_table 
	WHERE `affiliate_plans_id`='$affiliate_plans_id'
	{FILTER_STRING}";

	// Формируем верхнее меню.
	$k = 0;
	$menu = array();
	$menu[$k]['name'] = $GLOBALS['MSG_shops']['affiliate_values_menu_title'];
	$menu[$k]['link'] = '';
	$menu[$k]['icon'] = '';

	$p = 0;

	$sub_menu = array();
	$sub_menu[$p]['name'] = $GLOBALS['MSG_shops']['affiliate_values_submenu1_title'];
	$sub_menu[$p]['link'] = $admin_forms->GetHtmlCallTrigerSingleAction('edit_affiliate_value', 'check_0_0', 164, 0, 0);
	$sub_menu[$p]['onclick'] = $admin_forms->GetOnClickCallTrigerSingleAction('edit_affiliate_value', 'check_0_0', 164, 0, 0);
	$sub_menu[$p]['icon'] = '/admin/images/add.gif';

	// Добавляем подэлементы.
	$menu[$k]['sub_items'] = $sub_menu;

	// Формируем массив меню.
	$menu_array = array();
	$menu_array[] = $menu;

	$param['total_count'][] = $count;
	$param['current_page'] = $page;
	$param['on_page'] = $on_page;

	$param['menus'] = $menu_array;
	$param['title'] = sprintf($GLOBALS['MSG_shops']['affiliate_values_form_title'], $affiliate_plans_row['affiliate_plans_name']);

	return $param;
}

/**
 * Функция добавления/редактирования уровня партнерской программы
 *
 * @param array $param
 * @return boolean
 */
function edit_affiliate_value(&$param)
{
	ob_start();

	$affiliate = & singleton('affiliate');

	if (isset($param['data']) && $param['data'][0])
	{
		foreach ($param['data'][0] as $key => $value)
		{
			// Определяем режим доступа пользователя и принадлежит ли объект пользователю
			$user_access = new user_access();

			// Определяем информацию об объекте
			$object_row = $affiliate->GetAffiliateValues($key);

			if ($object_row)
			{
				$object_user_id = $object_row['users_id'];
			}
			else
			{
				$object_user_id = 0;
			}

			if ($user_access->IssetUserAccessForObject($object_user_id))
			{
				$affiliate_values_id = intval($key);

				include(CMS_FOLDER.'admin/shop/action/form_edit_add_affiliate_values.php');

				// Устанавливаем <title> для страницы
				$param['title'] = ($affiliate_values_id == 0)
				? $GLOBALS['MSG_shops']['add_affiliate_value']
				: $GLOBALS['MSG_shops']['edit_affiliate_value'];

				break;
			}
			else
			{
				$user_access->MessageOnlyOwn();
				$param['error'] = ob_get_clean();
				return ;
			}

		}
	}

	$param['result'] = ob_get_clean();
	return true;
}

/**
 * Функция удаления уровня партнерской программы
 *
 * @param array $param
 * @return boolean
 */
function delete_affiliate_value(&$param)
{
	ob_start();

	// Установлен режим "только для чтения"
	if (defined('READ_ONLY') && READ_ONLY)
	{
		$kernel = & singleton('kernel');

		$kernel->ReadMode();
	}
	else
	{
		$affiliate = & singleton('affiliate');

		$count_deleted_affiliats = 0;

		if (isset($param['data'][0]))
		{
			// Удаление данных первого источника
			foreach ($param['data'][0] as $key => $value)
			{
				// Определяем режим доступа пользователя и принадлежит ли объект пользователю
				$user_access = new user_access();

				// Определяем информацию об объекте
				$object_row = $affiliate->GetAffiliateValues($key);

				if ($object_row)
				{
					$object_user_id = $object_row['users_id'];
				}
				else
				{
					$object_user_id = 0;
				}

				if ($user_access->IssetUserAccessForObject($object_user_id))
				{
					// Удаляем информацию
					if (!$affiliate->DeleteAffiliateValues($key))
					{
						$flag_success = false;
					}
					else
					{
						++$count_deleted_affiliats;

						$flag_success = true;
					}
				}
				else
				{
					$user_access->MessageOnlyOwn();

					$flag_success = false;
				}
			}
		}

		// Сообщения на странице
		// Удаление завершено успешно
		if ($flag_success)
		{
			if ($count_deleted_affiliats == 1)
			{
				show_message($GLOBALS['MSG_shops']['delete_success_messages_affiliate_value']);
			}
			else
			{
				show_message($GLOBALS['MSG_shops']['delete_success_messages_affiliate_values']);
			}
		}
		// Ошибка удаления
		else
		{
			show_error_message($GLOBALS['MSG_shops']['delete_error_messages_affiliate_value']);
		}
	}

	$param['error'] = ob_get_clean();
}
?>