Обновление данных в админке

#
Обновление данных в админке
Здравствуйте.

В Интернет-магазине при выводе списка товара я сделал, чтобы помимо всех параметров, предусмотренных системой для вывода (Название, ID, цена, сортировка и т.д.) еще выводился идентификатор скидки, присвоенной товару.
Добавил в файл admin/shop/action/load_data.php.
Но при нажатии на кнопку "Применить", значение в поле с идентификатором скидки не изменяется, а лишь только после обновления страницы. В чем может быть моя ошибка. Ниже представлю весь код, а добавленный код выделен жирным:
[code]<?php
/**
* Система управления сайтом HostCMS v. 5.xx
* Copyright © 2005-2008 ООО "Хостмэйк" (Hostmake LLC), http://www.hostcms.ru
*
* Ajax загрузчик формы списка содержимого определенного магазина.
*
* Файл: /admin/shop/action/load_data.php
*
* @author Hostmake LLC
* @version 5.2
*/
function LoadAjaxData(&$admin_forms)
{
   $on_page = $admin_forms->GetOnPageCount();

   $page = to_int($_REQUEST['limit']);

   $begin = ($page == 0) ? 0 : ($page - 1) * $on_page;

   $param = array();

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

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

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

   $DataBase = & singleton('DataBase';

   $shop = & singleton('shop';

   $row = $shop->GetShop($shop_shops_id);

   // Строим хлебные крошки
   $path_array = $shop->GetShopPathArray($shop_groups_parent_id, false);

   // Преобразуем идентификаторы групп в ссылки на группы.
   $new_path_array = array();
   $new_path_array[0]['name'] = $GLOBALS['MSG_shops']['header_admin__list_forms'];
   $new_path_array[0]['link'] = $admin_forms->GetHtmlCallDoLoadAjax('/admin/shop/shop.php', '', 54, 'load_data';
   $new_path_array[0]['onclick'] = $admin_forms->GetOnClickCallDoLoadAjax('/admin/shop/shop.php', '', 54, 'load_data';

   $new_path_array[1]['name'] = $row['shop_shops_name'];
   $new_path_array[1]['link'] = $admin_forms->GetHtmlCallDoLoadAjax('/admin/shop/shop.php', "&shop_groups_parent_id=0&shop_shops_id=$shop_shops_id", 65, 'load_data';
   $new_path_array[1]['onclick'] = $admin_forms->GetOnClickCallDoLoadAjax('/admin/shop/shop.php', "&shop_groups_parent_id=0&shop_shops_id=$shop_shops_id", 65, 'load_data';

   if ($path_array)
   {
      foreach ($path_array as $key => $value)
      {
         $new_path_array[] = array (
         'link' =>  $admin_forms->GetHtmlCallDoLoadAjax('/admin/shop/shop.php', "&shop_groups_parent_id=$key&shop_shops_id=$shop_shops_id", 65, 'load_data',
         'onclick' =>  $admin_forms->GetOnClickCallDoLoadAjax('/admin/shop/shop.php', "&shop_groups_parent_id=$key&shop_shops_id=$shop_shops_id", 65, 'load_data',
         'name' => $value);
      }
   }

   $param['path_array'] = $new_path_array;

   // Запрос для выборки каталогов магазина
   $param['data'][] = "SELECT *, shop_groups_id AS keyfield, shop_groups_name AS name,
      shop_groups_indexation AS indexing,
      shop_groups_activity AS activity,
      shop_groups_parent_id AS current_group,
      shop_groups_order AS orderr
      FROM `shop_groups_table`
      WHERE `shop_groups_parent_id` = '$shop_groups_parent_id'
      AND `shop_shops_id` = '$shop_shops_id'
      {FILTER_STRING} {ORDER_STRING} {LIMIT}";


   // Количество групп
   $count_groups = "SELECT count(shop_groups_id) as count
   FROM `shop_groups_table`
   WHERE `shop_shops_id`= '$shop_shops_id'
   AND `shop_groups_parent_id` = '$shop_groups_parent_id'
   {FILTER_STRING}";   

   // Запрос для выборки элементов магазина
   $param['data'][] = "SELECT *, shop_items_catalog_item_id AS keyfield,
   shop_items_catalog_name AS name, shop_items_catalog_marking AS articul,
   shop_items_catalog_weight AS ves, shop_items_catalog_rest AS ostatok,
   shop_items_catalog_order AS orderr, shop_items_catalog_price AS price,
   shop_items_catalog_yandex_market_bid AS price_ym_bid,
   shop_items_catalog_yandex_market_allow AS ym_allow,
   shop_items_catalog_is_active AS activity,
   shop_items_catalog_indexation AS indexing,
   shop_items_catalog_item_id AS addons,
   shop_items_catalog_date_time AS data,
   shop_groups_id AS current_group,   
   shop_items_catalog_type
   FROM `shop_items_catalog_table`
   WHERE `shop_groups_id` = '$shop_groups_parent_id'
   AND `shop_shops_id` = '$shop_shops_id'
   AND `shop_items_catalog_modification_id`=0
   {FILTER_STRING} {ORDER_STRING} {LIMIT}";

   $count = "SELECT count(*) AS count
   FROM `shop_items_catalog_table`
   WHERE `shop_groups_id` = '$shop_groups_parent_id'
   AND `shop_shops_id` = '$shop_shops_id'
   AND `shop_items_catalog_modification_id`=0
   {FILTER_STRING}";

   // Формируем верхнее меню.
   $k = 0;

   $menu[$k]['name'] = $GLOBALS['MSG_shops']['links_items'];
   $menu[$k]['link'] = '';
   $menu[$k]['icon'] = '';

   $p = 0;
   $sub_menu = array();
   $sub_menu[$p]['name'] = $GLOBALS['MSG_shops']['add_group_link1'];
   $sub_menu[$p]['link'] = $admin_forms->GetHtmlCallTrigerSingleAction('edit_item', 'check_1_0', 65, 0, 0);
   $sub_menu[$p]['onclick'] = $admin_forms->GetOnClickCallTrigerSingleAction('edit_item', 'check_1_0', 65, 0, 0);
   $sub_menu[$p]['icon'] = '/admin/images/page_add.gif';
   // Добавляем подэлементы.
   $menu[$k]['sub_items'] = $sub_menu;

   $sub_menu[++$p]['name'] = $GLOBALS['MSG_shops']['items_catalog_add_form_comment_link'];
   $sub_menu[$p]['link'] = $admin_forms->GetHtmlCallDoLoadAjax('/admin/shop/shop.php', "&shop_shops_id=$shop_shops_id&shop_groups_parent_id=$shop_groups_parent_id&all_comments_this_shop=1", 66, 'load_data';
   $sub_menu[$p]['onclick'] = $admin_forms->GetOnClickCallDoLoadAjax('/admin/shop/shop.php', "&shop_shops_id=$shop_shops_id&shop_groups_parent_id=$shop_groups_parent_id&all_comments_this_shop=1", 66, 'load_data';
   $sub_menu[$p]['icon'] = '/admin/images/comments.gif';
   // Добавляем подэлементы.
   $menu[$k]['sub_items'] = $sub_menu;

   $sub_menu[++$p]['name'] = $GLOBALS['MSG_shops']['shops_add_form_link_properties'];
   $sub_menu[$p]['link'] = $admin_forms->GetHtmlCallDoLoadAjax('/admin/shop/shop.php', "&shop_shops_id=$shop_shops_id&shop_groups_parent_id=$shop_groups_parent_id&shop_properties_items_dir_id=0", 67, 'load_data';
   $sub_menu[$p]['onclick'] = $admin_forms->GetOnClickCallDoLoadAjax('/admin/shop/shop.php', "&shop_shops_id=$shop_shops_id&shop_groups_parent_id=$shop_groups_parent_id&shop_properties_items_dir_id=0", 67, 'load_data';
   $sub_menu[$p]['icon'] = '/admin/images/page_gear.gif';
   // Добавляем подэлементы.
   $menu[$k]['sub_items'] = $sub_menu;

   $sub_menu[++$p]['name'] = $GLOBALS['MSG_shops']['properties_item_for_groups_link'];
   $sub_menu[$p]['link'] = $admin_forms->GetHtmlCallDoLoadAjax('/admin/shop/shop.php', "&shop_shops_id=$shop_shops_id&shop_groups_id=$shop_groups_parent_id&shop_groups_parent_id=0", 71, 'load_data';
   $sub_menu[$p]['onclick'] = $admin_forms->GetOnClickCallDoLoadAjax('/admin/shop/shop.php', "&shop_shops_id=$shop_shops_id&shop_groups_id=$shop_groups_parent_id&shop_groups_parent_id=0", 71, 'load_data';
   $sub_menu[$p]['icon'] = '/admin/images/folder_page_gear.gif';
   // Добавляем подэлементы.
   $menu[$k]['sub_items'] = $sub_menu;

   $sub_menu[++$p]['name'] = $GLOBALS['MSG_shops']['change_prices_for_shop_group'];
   $sub_menu[$p]['link'] = $admin_forms->GetHtmlCallDoLoadAjax('/admin/shop/shop.php', "&action=change_prices&shop_shops_id=$shop_shops_id&shop_groups_parent_id=$shop_groups_parent_id", 0, 'load_data';
   $sub_menu[$p]['onclick'] = $admin_forms->GetOnClickCallDoLoadAjax('/admin/shop/shop.php', "&action=change_prices&shop_shops_id=$shop_shops_id&shop_groups_parent_id=$shop_groups_parent_id", 0, 'load_data';
   $sub_menu[$p]['icon'] = '/admin/images/service.gif';
   // Добавляем подэлементы.
   $menu[$k]['sub_items'] = $sub_menu;

   $sub_menu[++$p]['name'] = $GLOBALS['MSG_shops']['import_price_list_link'];
   $sub_menu[$p]['link'] = $admin_forms->GetHtmlCallDoLoadAjax('/admin/shop/shop.php', "&action=import_price_list&shop_shops_id=$shop_shops_id&shop_groups_parent_id=$shop_groups_parent_id", 0, 'load_data';
   $sub_menu[$p]['onclick'] = $admin_forms->GetOnClickCallDoLoadAjax('/admin/shop/shop.php', "&action=import_price_list&shop_shops_id=$shop_shops_id&shop_groups_parent_id=$shop_groups_parent_id", 0, 'load_data';
   $sub_menu[$p]['icon'] = '/admin/images/import.gif';

   $sub_menu[++$p]['name'] = $GLOBALS['MSG_shops']['export_shop'];
   $sub_menu[$p]['link'] = $admin_forms->GetHtmlCallDoLoadAjax('/admin/shop/shop.php', "&action=export&shop_shops_id=$shop_shops_id&shop_groups_parent_id=$shop_groups_parent_id", 0, 'load_data';
   $sub_menu[$p]['onclick'] = $admin_forms->GetOnClickCallDoLoadAjax('/admin/shop/shop.php', "&action=export&shop_shops_id=$shop_shops_id&shop_groups_parent_id=$shop_groups_parent_id", 0, 'load_data';
   $sub_menu[$p]['icon'] = '/admin/images/export.gif';

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

   //   $menu = array();
   $menu[++$k]['name'] = $GLOBALS['MSG_shops']['links_groups'];
   $menu[$k]['link'] = '';
   $menu[$k]['icon'] = '';

   //   $p = 0;
   $sub_menu = array();
   $sub_menu[++$p]['name'] = $GLOBALS['MSG_shops']['add_group_link'];
   $sub_menu[$p]['link'] = $admin_forms->GetHtmlCallTrigerSingleAction('edit_item', 'check_0_0', 65, 0, 0);
   $sub_menu[$p]['onclick'] = $admin_forms->GetOnClickCallTrigerSingleAction('edit_item', 'check_0_0', 65, 0, 0);
   $sub_menu[$p]['icon'] = '/admin/images/folder_add.gif';
   // Добавляем подэлементы.
   $menu[$k]['sub_items'] = $sub_menu;

   $sub_menu[++$p]['name'] = $GLOBALS['MSG_shops']['shops_add_form_link_properties_for_group'];
   $sub_menu[$p]['link'] = $admin_forms->GetHtmlCallDoLoadAjax('/admin/shop/shop.php', "&action=add_external_property_group&shop_shops_id=$shop_shops_id&shop_groups_parent_id=$shop_groups_parent_id", 135, 'load_data';
   $sub_menu[$p]['onclick'] = $admin_forms->GetOnClickCallDoLoadAjax('/admin/shop/shop.php', "&action=add_external_property_group&shop_shops_id=$shop_shops_id&shop_groups_parent_id=$shop_groups_parent_id", 135, 'load_data';
   $sub_menu[$p]['icon'] = '/admin/images/folder_gear.gif';
   // Добавляем подэлементы.
   $menu[$k]['sub_items'] = $sub_menu;


   $menu[++$k]['name'] = $GLOBALS['MSG_shops']['shops_link_orders'];
   $menu[$k]['link'] = '';
   $menu[$k]['icon'] = '';

   $sub_menu = array();
   $sub_menu[++$p]['name'] = $GLOBALS['MSG_shops']['shops_add_form_link_orders'];
   $sub_menu[$p]['link'] = $admin_forms->GetHtmlCallDoLoadAjax('/admin/shop/shop.php', "&shop_shops_id=$shop_shops_id", 75, 'load_data';
   $sub_menu[$p]['onclick'] = $admin_forms->GetOnClickCallDoLoadAjax('/admin/shop/shop.php', "&shop_shops_id=$shop_shops_id", 75, 'load_data';
   $sub_menu[$p]['icon'] = '/admin/images/order.gif';

   // Добавляем подэлементы.
   $menu[$k]['sub_items'] = $sub_menu;
   $menu[++$k]['name'] = $GLOBALS['MSG_shops']['show_delivery_on'];
   $menu[$k]['link'] = '';
   $menu[$k]['icon'] = '';

   $sub_menu = array();
   $sub_menu[++$p]['name'] = $GLOBALS['MSG_shops']['show_type_of_delivery_link'];
   $sub_menu[$p]['link'] = $admin_forms->GetHtmlCallDoLoadAjax('/admin/shop/shop.php', "&shop_shops_id=$shop_shops_id&shop_groups_parent_id=$shop_groups_parent_id", 77, 'load_data';
   $sub_menu[$p]['onclick'] = $admin_forms->GetOnClickCallDoLoadAjax('/admin/shop/shop.php', "&shop_shops_id=$shop_shops_id&shop_groups_parent_id=$shop_groups_parent_id", 77, 'load_data';
   $sub_menu[$p]['icon'] = '/admin/images/type_of_delivery.gif';

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

   // Формируем заголовок меню
   $menu[++$k]['name'] = $GLOBALS['MSG_shops']['show_sds_link'];
   $menu[$k]['link'] = '';
   $menu[$k]['icon'] = '';

   // Формируем новый массив элементов подменю
   $sub_menu = array();
   $sub_menu[++$p]['name'] = $GLOBALS['MSG_shops']['show_prices_title'];
   $sub_menu[$p]['link'] = $admin_forms->GetHtmlCallDoLoadAjax('/admin/shop/shop.php', "&shop_shops_id=$shop_shops_id&shop_groups_parent_id=$shop_groups_parent_id", 68, 'load_data';
   $sub_menu[$p]['onclick'] = $admin_forms->GetOnClickCallDoLoadAjax('/admin/shop/shop.php', "&shop_shops_id=$shop_shops_id&shop_groups_parent_id=$shop_groups_parent_id", 68, 'load_data';
   $sub_menu[$p]['icon'] = '/admin/images/prices.gif';
   // Добавляем подэлементы.
   $menu[$k]['sub_items'] = $sub_menu;

   // Платежные системы
   $sub_menu[++$p]['name'] = $GLOBALS['MSG_shops']['system_of_pays'];
   $sub_menu[$p]['link'] = $admin_forms->GetHtmlCallDoLoadAjax('/admin/shop/shop.php', '', 57, 'load_data';
   $sub_menu[$p]['onclick'] = $admin_forms->GetOnClickCallDoLoadAjax('/admin/shop/shop.php', '', 57, 'load_data';
   $sub_menu[$p]['icon'] = '/admin/images/payment.gif';

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

   $sub_menu[++$p]['name'] = $GLOBALS['MSG_shops']['show_producers_link'];
   $sub_menu[$p]['link'] = $admin_forms->GetHtmlCallDoLoadAjax('/admin/shop/shop.php', "&shop_shops_id=$shop_shops_id&shop_groups_parent_id=$shop_groups_parent_id", 69, 'load_data';
   $sub_menu[$p]['onclick'] = $admin_forms->GetOnClickCallDoLoadAjax('/admin/shop/shop.php', "&shop_shops_id=$shop_shops_id&shop_groups_parent_id=$shop_groups_parent_id", 69, 'load_data';
   $sub_menu[$p]['icon'] = '/admin/images/company.gif';
   // Добавляем подэлементы.
   $menu[$k]['sub_items'] = $sub_menu;

   $sub_menu[++$p]['name'] = $GLOBALS['MSG_shops']['show_sellers_link'];
   $sub_menu[$p]['link'] = $admin_forms->GetHtmlCallDoLoadAjax('/admin/shop/shop.php', "&shop_shops_id=$shop_shops_id&shop_groups_parent_id=$shop_groups_parent_id", 70, 'load_data';
   $sub_menu[$p]['onclick'] = $admin_forms->GetOnClickCallDoLoadAjax('/admin/shop/shop.php', "&shop_shops_id=$shop_shops_id&shop_groups_parent_id=$shop_groups_parent_id", 70, 'load_data';
   $sub_menu[$p]['icon'] = '/admin/images/company.gif';
   // Добавляем подэлементы.
   $menu[$k]['sub_items'] = $sub_menu;


   // Меню "Отчеты"
   $menu[++$k]['name'] = $GLOBALS['MSG_shops']['show_reports_title'];
   $menu[$k]['link'] = '';
   $menu[$k]['icon'] = '';

   // Подменю "Отчеты о продажах"
   $sub_menu = array();
   $sub_menu[++$p]['name'] = $GLOBALS['MSG_shops']['show_sales_order_link'];
   $sub_menu[$p]['link'] = $admin_forms->GetHtmlCallDoLoadAjax('/admin/shop/shop.php', "&action=show_sales_order&shop_shops_id=$shop_shops_id&shop_groups_parent_id=$shop_groups_parent_id", 0, 'load_data';
   $sub_menu[$p]['onclick'] = $admin_forms->GetOnClickCallDoLoadAjax('/admin/shop/shop.php', "&action=show_sales_order&shop_shops_id=$shop_shops_id&shop_groups_parent_id=$shop_groups_parent_id", 0, 'load_data';
   $sub_menu[$p]['icon'] = '/admin/images/report.gif';

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

   // Формируем заголовок меню
   $menu[++$k]['name'] = $GLOBALS['MSG_shops']['shop_menu_title'];
   $menu[$k]['link'] = '';
   $menu[$k]['icon'] = '';

   $sub_menu = array();

   $sub_menu[++$p]['name'] = $GLOBALS['MSG_shops']['show_discount_link'];
   $sub_menu[$p]['link'] = $admin_forms->GetHtmlCallDoLoadAjax('/admin/shop/shop.php', "&shop_shops_id=$shop_shops_id&shop_groups_parent_id=$shop_groups_parent_id", 72, 'load_data';
   $sub_menu[$p]['onclick'] = $admin_forms->GetOnClickCallDoLoadAjax('/admin/shop/shop.php', "&shop_shops_id=$shop_shops_id&shop_groups_parent_id=$shop_groups_parent_id", 72, 'load_data';
   $sub_menu[$p]['icon'] = '/admin/images/money.gif';
   // Добавляем подэлементы.
   $menu[$k]['sub_items'] = $sub_menu;

   $sub_menu[++$p]['name'] = $GLOBALS['MSG_shops']['order_discount_show_title'];
   $sub_menu[$p]['link'] = $admin_forms->GetHtmlCallDoLoadAjax('/admin/shop/shop.php', "&shop_shops_id=$shop_shops_id&shop_groups_parent_id=$shop_groups_parent_id", 73, 'load_data';
   $sub_menu[$p]['onclick'] = $admin_forms->GetOnClickCallDoLoadAjax('/admin/shop/shop.php', "&shop_shops_id=$shop_shops_id&shop_groups_parent_id=$shop_groups_parent_id", 73, 'load_data';
   $sub_menu[$p]['icon'] = '/admin/images/money.gif';
   // Добавляем подэлементы.
   $menu[$k]['sub_items'] = $sub_menu;

   $sub_menu[++$p]['name'] = $GLOBALS['MSG_shops']['coupon_group_link'];
   $sub_menu[$p]['link'] = $admin_forms->GetHtmlCallDoLoadAjax('/admin/shop/shop.php', "&shop_shops_id=$shop_shops_id&shop_groups_parent_id=$shop_groups_parent_id", 74, 'load_data';
   $sub_menu[$p]['onclick'] = $admin_forms->GetOnClickCallDoLoadAjax('/admin/shop/shop.php', "&shop_shops_id=$shop_shops_id&shop_groups_parent_id=$shop_groups_parent_id", 74, 'load_data';
   $sub_menu[$p]['icon'] = '/admin/images/money.gif';
   // Добавляем подэлементы.
   $menu[$k]['sub_items'] = $sub_menu;

   if (class_exists('SiteUsers')
   {
      // Формируем заголовок меню
      $menu[++$k]['name'] = $GLOBALS['MSG_shops']['affiliate_menu_title'];
      $menu[$k]['link'] = '';
      $menu[$k]['icon'] = '';

      $sub_menu = array();
      $sub_menu[++$p]['name'] = $GLOBALS['MSG_shops']['affiliate_menu_title'];
      $sub_menu[$p]['link'] = $admin_forms->GetHtmlCallDoLoadAjax('/admin/shop/shop.php', "", 166, 'load_data';
      $sub_menu[$p]['onclick'] = $admin_forms->GetOnClickCallDoLoadAjax('/admin/shop/shop.php', "", 166, 'load_data';
      $sub_menu[$p]['icon'] = '/admin/images/money.gif';
      // Добавляем подэлементы.
      $menu[$k]['sub_items'] = $sub_menu;
   }
   // Формируем массив меню.
   $menu_array = array();
   $menu_array[] = $menu;

   // Для первого набора данных общее количство не указываем, т.к. передаем все элементы,
   // для второго набора данных указываем в виде запроса.
   $param['total_count'][] = $count_groups;
   $param['total_count'][] = $count;

   $param['field_params'][0]['name']['admin_forms_field_type'] = 10;// вычисляемое поле
   $param['field_params'][0]['name']['callback_function'] = 'callback_function_group_name';

   // Функция обратного вызова для названия группы
   function callback_function_group_name($field_value, $value, $row)
   {
      $admin_forms = & singleton('admin_forms';

      $link = $field_value['admin_forms_field_link'];
      $onclick = to_str($field_value['admin_forms_field_onclick']);

      $link = $admin_forms->DoReplaces(false, $row, $link);
      $onclick = $admin_forms->DoReplaces(false, $row, $onclick);

      if ($row['activity'] == 0)
      {
         ?>
<div style="text-decoration: line-through"><?php echo $row['name']?></div>
         <?php
      }
      else
      {
         ?>
<a href="<?php echo $link?>" onclick="<?php echo $onclick?>"><?php echo $value?></a>
         <?php
      }
   }

   $param['field_params'][1]['name']['admin_forms_field_type'] = 10;// вычисляемое поле
   $param['field_params'][1]['name']['callback_function'] = 'callback_function_item_name';

   // Функция обратного вызова для названия товара
   function callback_function_item_name($field_value, $value, $row)
   {
      // Элемент является ярлыком
      if ($row['shop_items_catalog_shortcut_id'] != 0)
      {
         $shop = & singleton('shop';

         //Получаем информацию о информационном элементе, на который ссылается ярлык
         $item_row = $shop->GetItem($row['shop_items_catalog_shortcut_id'], array('cache_off' => true));

         $row['name'] = $item_row['shop_items_catalog_name'];

         $row['shop_items_catalog_putend_date'] = $item_row['shop_items_catalog_putend_date'];

         $row['activity'] = $item_row['shop_items_catalog_is_active'];
      }

      if ($row['shop_items_catalog_putend_date'] != "0000-00-00 00:00:00" && $row['shop_items_catalog_putend_date'] < date("Y-m-d H:i:s"
      || $row['activity'] == 0)
      {
         ?>
<div style="text-decoration: line-through"><?php echo $row['name']?></div>
         <?php
      }
      else
      {
         echo $row['name'];
      }
   }

   // В поле с картинкой отображаем значек папки.
   $param['field_params'][0]['shop_items_catalog_shortcut_id']['admin_forms_field_image'] = "=/admin/images/folder.gif";

   // Меняем тип столбца "Количество" для групп товаров
   $param['field_params'][0]['ostatok']['admin_forms_field_type'] = 0;


   // Остаток
   $param['field_params'][0]['ostatok']['admin_forms_field_type'] = 0;
   $param['field_params'][1]['ostatok']['callback_function'] = 'callback_function_shop_items_catalog_ostatok';

   // Формируем функцию обратного вызова
   function callback_function_shop_items_catalog_ostatok($field_value, $value, $row)
   {
      $shop = & singleton('shop';

      // Ярлык
      if ($row['shop_items_catalog_shortcut_id'] != 0)
      {
         $item_row = $shop->GetItem($row['shop_items_catalog_shortcut_id'], array('cache_off' => true));

         $value = $item_row['shop_items_catalog_rest'];
      }

      ?>
<input type="text" style="<?php echo $field_value['admin_forms_field_style'];?>" name="check_1_<?php echo $row['shop_items_catalog_item_id'];?>_fv_<?php echo $field_value['admin_forms_field_id'];?>" value="<?php echo $value;?>" id="id_check_1_<?php echo $row['shop_items_catalog_item_id'];?>_fv_<?php echo $field_value['admin_forms_field_id'];?>"  onkeydown="DoModification('id_check_1_<?php echo $row['shop_items_catalog_item_id'];?>';" onchange="DoModification('id_check_1_<?php echo $row['shop_items_catalog_item_id'];?>';" />
      <?php
   }

   // Цена
   $param['field_params'][0]['price']['admin_forms_field_type'] = 0;
   $param['field_params'][1]['price']['callback_function'] = 'callback_function_shop_items_catalog_price';

   // Формируем функцию обратного вызова
   function callback_function_shop_items_catalog_price($field_value, $value, $row)
   {
      $shop = & singleton('shop';

      // Ярлык
      if ($row['shop_items_catalog_shortcut_id'] != 0)
      {
         $item_row = $shop->GetItem($row['shop_items_catalog_shortcut_id'], array('cache_off' => true));

         $row['shop_currency_id'] = $item_row['shop_currency_id'];

         //$row['shop_items_catalog_item_id'] = $item_row['shop_items_catalog_item_id'];

         $value = $item_row['shop_items_catalog_price'];
      }

      $row_currency_item = $shop->GetCurrency($row['shop_currency_id']);

      ?>
<nobr> <input type="text" style="<?php echo $field_value['admin_forms_field_style'];?>" name="check_1_<?php echo $row['shop_items_catalog_item_id'];?>_fv_<?php echo $field_value['admin_forms_field_id'];?>" value="<?php echo $value;?>" id="id_check_1_<?php echo $row['shop_items_catalog_item_id'];?>_fv_<?php echo $field_value['admin_forms_field_id'];?>"  onkeydown="DoModification('id_check_1_<?php echo $row['shop_items_catalog_item_id'];?>';" onchange="DoModification('id_check_1_<?php echo $row['shop_items_catalog_item_id'];?>';" />
&nbsp; <?php echo $row_currency_item['shop_currency_name'];?></nobr>
      <?php
   }
   
   //Скидки
   //$param['field_params'][0]['id_disc']['admin_forms_field_type'] = 0;
   $param['field_params'][1]['id_disc']['callback_function'] = 'callback_function_shop_items_discount';
   
   function callback_function_shop_items_discount($field_value, $value, $row){
      echo $value;
      $shop = & singleton('shop';
      $row_discount_item = $shop->GetAllDiscountsForItem($row['shop_items_catalog_item_id']);
      if($row_discount_item){
         foreach($row_discount_item as $result){
            $value = $result['shop_discount_id'];
         }
      }
      ?>
         <input type="text" style="<?php echo $field_value['admin_forms_field_style'];?>" name="check_1_<?php echo $row['shop_items_catalog_item_id'];?>_fv_<?php echo $field_value['admin_forms_field_id'];?>" value="<?php echo $value;?>" id="id_check_1_<?php echo $row['shop_items_catalog_item_id'];?>_fv_<?php echo $field_value['admin_forms_field_id'];?>"  onkeydown="DoModification('id_check_1_<?php echo $row['shop_items_catalog_item_id'];?>';" onchange="DoModification('id_check_1_<?php echo $row['shop_items_catalog_item_id'];?>';" />
      <?
   }


   // Яндекс.Маркет - основная расценка
   $param['field_params'][0]['price_ym_bid']['admin_forms_field_type'] = 0;
   $param['field_params'][1]['price_ym_bid']['callback_function'] = 'callback_function_shop_items_catalog_price_ym_bid';

   // Формируем функцию обратного вызова
   function callback_function_shop_items_catalog_price_ym_bid($field_value, $value, $row)
   {
      ?>
<input type="text" style="<?php echo $field_value['admin_forms_field_style'];?>" name="check_1_<?php echo $row['shop_items_catalog_item_id'];?>_fv_<?php echo $field_value['admin_forms_field_id'];?>" value="<?php echo $value;?>" id="id_check_1_<?php echo $row['shop_items_catalog_item_id'];?>_fv_<?php echo $field_value['admin_forms_field_id'];?>"  onkeydown="DoModification('id_check_1_<?php echo $row['shop_items_catalog_item_id'];?>';" onchange="DoModification('id_check_1_<?php echo $row['shop_items_catalog_item_id'];?>';" />
      <?php
   }

   // Активность
   $param['field_params'][0]['activity']['admin_forms_field_alt'] = "0=" . $GLOBALS['MSG_shops']['group_is_active']
   . "\n1=" . $GLOBALS['MSG_shops']['group_is_active'];
   $param['field_params'][0]['activity']['admin_forms_field_title'] = "0=" . $GLOBALS['MSG_shops']['group_is_active']
   . "\n1=" . $GLOBALS['MSG_shops']['group_is_active'];

   $param['field_params'][1]['activity']['admin_forms_field_alt'] = "0=".$GLOBALS['MSG_shops']['catalog_is_active']
   . "\n1=".$GLOBALS['MSG_shops']['catalog_is_active'];
   $param['field_params'][1]['activity']['admin_forms_field_title'] = "0=".$GLOBALS['MSG_shops']['catalog_is_active']
   . "\n1=".$GLOBALS['MSG_shops']['catalog_is_active'];

   // Сопутствующие товары
   $param['field_params'][0]['addonses']['callback_function'] = 'callback_function_item_addonses';
   $param['field_params'][1]['addonses']['callback_function'] = 'callback_function_item_addonses';

   function callback_function_item_addonses ($field_value, $value, $row)
   {
      // Отображаем товар/ярлык на товар
      if (isset($row['shop_items_catalog_item_id']))
      {
         // Товар
         if ($row['shop_items_catalog_shortcut_id'] == 0)
         {
            $item_id = $row['shop_items_catalog_item_id'];
            $shop_groups_id = $row['shop_groups_id'];

         }
         else // Ярлык
         {
            $shop = & singleton('shop';

            $item_row = $shop->GetItem($row['shop_items_catalog_shortcut_id'], array('cache_off' => true));

            $item_id = $row['shop_items_catalog_shortcut_id'];
            $shop_groups_id = $item_row['shop_groups_id'];
         }
         ?>
<a
   href="/admin/shop/shop.php?admin_forms_id=79&operation=load_data&limit=0&shop_shops_id=<?php echo $row['shop_shops_id']; ?>&shop_groups_parent_id=<?php echo $shop_groups_id;?>&shop_items_catalog_item_id=<?php echo $item_id ?>"
   onclick="DoLoadAjax('/admin/shop/shop.php', '&shop_shops_id=<?php echo $row['shop_shops_id']; ?>&shop_groups_parent_id=<?php echo $shop_groups_id;?>&shop_items_catalog_item_id=<?php echo $item_id?>', 79, 'load_data', '', '', '', ''; return false;"><img
   src="/admin/images/tying_products.gif" border="0"
   alt="<?php echo $GLOBALS['MSG_shops']['show_tying_products_menu'];?>"
   title="<?php echo $GLOBALS['MSG_shops']['show_tying_products_menu'];?>" /></a>
         <?php
      }
   }

   // Скидки
   $param['field_params'][0]['easy']['callback_function'] = 'callback_function_item_easy';
   $param['field_params'][1]['easy']['callback_function'] = 'callback_function_item_easy';

   function callback_function_item_easy($field_value, $value, $row)
   {
      // Отображаем товар/ярлык на товар
      if (isset($row['shop_items_catalog_item_id']))
      {
         // Товар
         if ($row['shop_items_catalog_shortcut_id'] == 0)
         {
            $item_id = $row['shop_items_catalog_item_id'];
            $shop_groups_id = $row['shop_groups_id'];
         }
         else // Ярлык
         {
            $shop = & singleton('shop';

            $item_row = $shop->GetItem($row['shop_items_catalog_shortcut_id'], array('cache_off' => true));

            $item_id = $row['shop_items_catalog_shortcut_id'];
            $shop_groups_id = $item_row['shop_groups_id'];
         }
         ?>
<a
   href="/admin/shop/shop.php?admin_forms_id=72&operation=load_data&limit=0&shop_shops_id=<?php echo $row['shop_shops_id']; ?>&shop_groups_parent_id=<?php echo $shop_groups_id;?>&shop_items_catalog_item_id=<?php echo $item_id ?>"
   onclick="DoLoadAjax('/admin/shop/shop.php', '&shop_shops_id=<?php echo $row['shop_shops_id']; ?>&shop_groups_parent_id=<?php echo $shop_groups_id;?>&shop_items_catalog_item_id=<?php echo $item_id?>', 72, 'load_data', '', '', '', ''; return false;"><img
   src="/admin/images/money.gif" border="0"
   alt="<?php echo $GLOBALS['MSG_shops']['show_groups_discount'];?>"
   title="<?php echo $GLOBALS['MSG_shops']['show_groups_discount'];?>" /></a>
         <?php
      }
   }

   // Отзывы
   $param['field_params'][0]['voices']['callback_function'] = 'callback_function_item_voices';
   $param['field_params'][1]['voices']['callback_function'] = 'callback_function_item_voices';

   function callback_function_item_voices($field_value, $value, $row)
   {
      // Отображаем товар/ярлык на товар
      if (isset($row['shop_items_catalog_item_id']))
      {
         // Товар
         if ($row['shop_items_catalog_shortcut_id'] == 0)
         {
            $item_id = $row['shop_items_catalog_item_id'];
            $shop_groups_id = $row['shop_groups_id'];

         }
         else // Ярлык
         {
            $shop = & singleton('shop';

            $item_row = $shop->GetItem($row['shop_items_catalog_shortcut_id'], array('cache_off' => true));

            $item_id = $row['shop_items_catalog_shortcut_id'];
            $shop_groups_id = $item_row['shop_groups_id'];
         }
         ?>
<a
   href="/admin/shop/shop.php?admin_forms_id=66&operation=load_data&limit=0&shop_shops_id=<?php echo $row['shop_shops_id']; ?>&shop_groups_parent_id=<?php echo $shop_groups_id;?>&sort_catalog_item_id=<?php echo $item_id ?>"
   onclick="DoLoadAjax('/admin/shop/shop.php', '&shop_shops_id=<?php echo $row['shop_shops_id']; ?>&shop_groups_parent_id=<?php echo $shop_groups_id;?>&sort_catalog_item_id=<?php echo $item_id?>', 66, 'load_data', '', '', '', ''; return false;"><img
   src="/admin/images/comments.gif" border="0"
   alt="<?php echo $GLOBALS['MSG_shops']['show_groups_comment'];?>"
   title="<?php echo $GLOBALS['MSG_shops']['show_groups_comment'];?>" /></a>
         <?php
      }
   }

   // Модификации
   $param['field_params'][0]['mods']['callback_function'] = 'callback_function_item_mods';
   $param['field_params'][1]['mods']['callback_function'] = 'callback_function_item_mods';

   function callback_function_item_mods($field_value, $value, $row)
   {
      // Отображаем товар/ярлык на товар
      if (isset($row['shop_items_catalog_item_id']))
      {
         // Товар
         if ($row['shop_items_catalog_shortcut_id'] == 0)
         {
            $item_id = $row['shop_items_catalog_item_id'];
            $shop_groups_id = $row['shop_groups_id'];

         }
         else // Ярлык
         {
            $shop = & singleton('shop';

            $item_row = $shop->GetItem($row['shop_items_catalog_shortcut_id'], array('cache_off' => true));

            $item_id = $row['shop_items_catalog_shortcut_id'];
            $shop_groups_id = $item_row['shop_groups_id'];
         }
         ?>
<a
   href="/admin/shop/shop.php?admin_forms_id=81&operation=load_data&limit=0&shop_shops_id=<?php echo $row['shop_shops_id']; ?>&shop_groups_parent_id=<?php echo $shop_groups_id;?>&shop_items_catalog_modification_id=<?php echo $item_id ?>"
   onclick="DoLoadAjax('/admin/shop/shop.php', '&shop_shops_id=<?php echo $row['shop_shops_id']; ?>&shop_groups_parent_id=<?php echo $shop_groups_id;?>&shop_items_catalog_modification_id=<?php echo $item_id?>', 81, 'load_data', '', '', '', ''; return false;"><img
   src="/admin/images/modifications.gif" border="0"
   alt="<?php echo $GLOBALS['MSG_shops']['modifications'];?>"
   title="<?php echo $GLOBALS['MSG_shops']['modifications'];?>" /></a>
         <?php
      }
   }

   // Формируем функцию обратного вызова
   $param['field_params'][0]['shop_items_catalog_type']['admin_forms_field_type'] = 0;
   $param['field_params'][1]['shop_items_catalog_type']['callback_function'] = 'callback_function_shop_items_catalog_type';

   function callback_function_shop_items_catalog_type($field_value, $value, $row)
   {
      // Получаем данные для передачи в новую форму
      $shop_shops_id = to_int($_REQUEST['shop_shops_id']);

      // Товар
      if ($row['shop_items_catalog_shortcut_id'] == 0)
      {
         $item_id = $row['shop_items_catalog_item_id'];
         //$shop_groups_id = $row['shop_groups_id'];

         // Текущий каталог товаров
         $shop_groups_parent_id = to_int($_REQUEST['shop_groups_parent_id']);

         $item_name = to_str($row['name']);

         $shop_items_catalog_type = $value;

      }
      else // Ярлык
      {
         $shop = & singleton('shop';

         $item_row = $shop->GetItem($row['shop_items_catalog_shortcut_id'], array('cache_off' => true));

         $item_id = $row['shop_items_catalog_shortcut_id'];
         $shop_groups_parent_id = $item_row['shop_groups_id'];

         $item_name = $item_row['shop_items_catalog_name'];

         $shop_items_catalog_type = $item_row['shop_items_catalog_type'];
      }

      $admin_forms = new admin_forms();

      if ($shop_items_catalog_type == 1)
      {
         ?>
<a
   href="<?php echo $admin_forms->GetHtmlCallDoLoadAjax('/admin/shop/shop.php', "&shop_groups_parent_id=$shop_groups_parent_id&shop_shops_id=$shop_shops_id&item_id=$item_id", 132, 'load_data'?>"
   onclick="<?php echo $admin_forms->GetOnClickCallDoLoadAjax('/admin/shop/shop.php', "&shop_groups_parent_id=$shop_groups_parent_id&shop_shops_id=$shop_shops_id&item_id=$item_id", 132, 'load_data'?>"><img
   alt="<?php echo $GLOBALS['MSG_shops']['shop_eitems_menu_title'] . " '" . $item_name . "'"?>"
   title="<?php echo $GLOBALS['MSG_shops']['shop_eitems_menu_title'] . " '" . $item_name . "'"?>"
   src="/admin/images/table.gif" /></a>
         <?php
      }
      else
      {
         ?>
&mdash;
         <?php
      }
   }

   // Сортировка
   /*
    $param['field_params'][1]['orderr']['admin_forms_field_type'] = 10;
    $param['field_params'][1]['orderr']['callback_function'] = 'callback_function_shop_items_catalog_orderr';

    // Формируем функцию обратного вызова
    function callback_function_shop_items_catalog_orderr($field_value, $value, $row)
    {
      $shop = & singleton('shop';

      // Ярлык
      if ($row['shop_items_catalog_shortcut_id'] != 0)
      {
      $item_row = $shop->GetItem($row['shop_items_catalog_shortcut_id'], array('cache_off' => true));

      $value = $item_row['shop_items_catalog_order'];
      }

      ?>
      <input
      type="text"
      onkeydown="DoModification('id_check_1_<?php echo $row['shop_items_catalog_item_id'];?>';  RowHighlight('row_1_<?php echo $row['shop_items_catalog_item_id'];?>';"
      onchange="DoModification('id_check_1_<?php echo $row['shop_items_catalog_item_id'];?>'; RowHighlight('row_1_<?php echo $row['shop_items_catalog_item_id'];?>';"
      style="width: 80px;" value="<?php echo $value;?>"
      id="id_check_1_<?php echo $row['shop_items_catalog_item_id'];?>_fv_239"
      name="check_1_<?php echo $row['shop_items_catalog_item_id'];?>_fv_239" />
      <?php
      }
      */


   $param['field_params'][0]['ym_allow']['admin_forms_field_type'] = 0;

   $param['current_page'] = $page;
   $param['on_page'] = $on_page;
   $param['menus'] = $menu_array;

   $param['title'] = $row['shop_shops_name'];

   return $param;
}

/**
* Необязательная функция для определения реального имени столбца по псевдониму.
*
* @param string $field_name
* @param integer $dataset_id
* @return boolean
*/
function ResolveFieldName(&$field_name, $dataset_id)
{
   switch ($dataset_id)
   {
      case 0: // Список каталогов документов.
         {
            switch ($field_name)
            {
               case 'keyfield':
                  {
                     $field_name = 'shop_groups_id';
                     break;
                  }
               case 'shop_groups_id':
                  {
                     $field_name = 'shop_groups_parent_id';
                     break;
                  }
               case 'name':
                  {
                     $field_name = 'shop_groups_name';
                     break;
                  }
               case 'indexing':
                  {
                     $field_name = 'shop_groups_indexation';
                     break;
                  }
               case 'orderr':
                  {
                     $field_name = 'shop_groups_order';
                     break;
                  }
               case 'articul':
                  {
                     /*чтобы в результаты фильтрации товаров не попадали группы, т.к. поле Артикул у них вообще отсутсвует*/
                     $field_name = 'shop_groups_name';
                     break;
                  }
               case 'ves':
                  {
                     $field_name = '';
                     break;
                  }
               case 'ostatok':
                  {
                     $field_name = '';
                     break;
                  }
               case 'price':
                  {
                     $field_name = '';
                     break;
                  }
               case 'id_disc':
                  {
                     $field_name = '';
                     break;
                  }

               case 'price_ym_bid':
                  {
                     $field_name = '';
                     break;
                  }
               case 'ym_allow':
                  {
                     $field_name = '';
                     break;
                  }
               case 'data':
                  {
                     $field_name = '';
                     break;
                  }
               default:
                  {
                     $field_name = '';
                     break;
                  }
            }
            break;
         }
      case 1: // Список документов.
         {
            switch ($field_name)
            {
               case 'keyfield':
                  {
                     $field_name = 'shop_items_catalog_item_id';
                     break;
                  }
               case 'name':
                  {
                     $field_name = 'shop_items_catalog_name';
                     break;
                  }
               case 'articul':
                  {
                     $field_name = 'shop_items_catalog_marking';
                     break;
                  }
               case 'ves':
                  {
                     $field_name = 'shop_items_catalog_weight';
                     break;
                  }
               case 'ostatok':
                  {
                     $field_name = 'shop_items_catalog_rest';
                     break;
                  }
               case 'orderr':
                  {
                     $field_name = 'shop_items_catalog_order';
                     break;
                  }
               case 'price':
                  {
                     $field_name = 'shop_items_catalog_price';
                     break;
                  }
               case 'price_ym_bid':
                  {
                     $field_name = 'shop_items_catalog_yandex_market_bid';
                     break;
                  }
               case 'ym_allow':
                  {
                     $field_name = 'shop_items_catalog_yandex_market_allow';
                     break;
                  }
               case 'activity':
                  {
                     $field_name = 'shop_items_catalog_is_active';
                     break;
                  }
               case 'indexing':
                  {
                     $field_name = 'shop_items_catalog_indexation';
                     break;
                  }
               case 'addons':
                  {
                     $field_name = 'shop_items_catalog_item_id';
                     break;
                  }
               case 'data':
                  {
                     $field_name = 'shop_items_catalog_date_time';
                     break;
                  }
               default:
                  {
                     $field_name = '';
                     break;
                  }
            }
            break;
         }
   }
   return true;
}

// Создание ярлыка товара
function add_item_shortcut(&$param)
{
   ob_start();

   $shop_shops_id = to_int($_REQUEST['shop_shops_id']);
   $shop_groups_parent_id = to_int($_REQUEST['shop_groups_parent_id']);

   $shop = & singleton('shop';
   $admin_forms_fields = & singleton('admin_forms_fields';

   if (isset($param['data']))
   {
      ob_start();

      $form_name = 'shop_itemshortcut_' . time();
      $form_params = array();
      $form_params['form_attribs']['method'] = 'post';
      $form_params['form_attribs']['action'] = '/admin/shop/shop.php';
      $form_params['form_attribs']['id'] = 'form_'. $form_name;
      $form_params['form_attribs']['ENCTYPE'] = 'multipart/form-data';

      $admin_forms_fields->admin_forms_fields($form_params);

      $tab_id = $admin_forms_fields->AddTab($GLOBALS['MSG_shops']['tab']);

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

            // Определяем информацию об объекте
            $object_row = $shop->GetItem($key, array('cache_off' => true));

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

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

               //$item_row = $object_row;

               //$current_item_id = $information_item_id;

               // Создаем ярлык из ярлыка
               if ($object_row['shop_items_catalog_shortcut_id'] != 0)
               {
                  $shop_item_id = $object_row['shop_items_catalog_shortcut_id'];
               }

               $form_params = array();
               $form_params['tab_id'] = $tab_id;
               $form_params['name'] = 'shop_item_id';
               $form_params['type'] = 4; // Скрытое поле.
               $form_params['value'] = $shop_item_id;
               $admin_forms_fields->AddField($form_params);

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

      // Список групп
      $form_params = array();
      $form_params['tab_id'] = $tab_id;
      $form_params['name'] = 'shop_group_id';
      $form_params['caption'] = $GLOBALS['MSG_shops']['move_items_groups_shop_groups_id'];
      $form_params['type'] = 2; // Выпадающий список.
      $form_params['value'] = 0;

      // Массив, содержащий полное дерево групп
      $mas = $shop->GetDelimitedGroups(0, $shop_shops_id, "&nbsp;";

      $items = array();
      $items[0] = '..';

      if (is_array($mas) && count($mas) > 0)
      {
         foreach ($mas as $key_mas => $value_mas)
         {
            $items[$mas[$key_mas]['shop_groups_id']] = $mas[$key_mas]['separator'] . $mas[$key_mas]['shop_groups_name'];
         }
      }

      $form_params['items'] = $items;
      $form_params['div_attributes']['style'] = '';
      $form_params['attributes']['style'] = 'width: 320px; float: left;';
      $form_params['apply_filter'] = true;

      $admin_forms_fields->AddField($form_params);

      // Добавляем скрытое поле с идентификатором магазина
      $form_params = array();
      $form_params['tab_id'] = $tab_id;
      $form_params['name'] = 'shop_id';
      $form_params['type'] = 4; // Скрытое поле.
      $form_params['value'] = $shop_shops_id;
      $admin_forms_fields->AddField($form_params);

      // Добавляем скрытое поле с идентификатором текущей группы
      $form_params = array();
      $form_params['tab_id'] = $tab_id;
      $form_params['name'] = 'shop_groups_parent_id';
      $form_params['type'] = 4; // Скрытое поле.
      $form_params['value'] = $shop_groups_parent_id;
      $admin_forms_fields->AddField($form_params);

      // Добавляем специальное скрытое поле с именем кнопки
      $form_params = array();
      $form_params['tab_id'] = $tab_id;
      $form_params['name'] = 'add_shop_item_shortcut';
      $form_params['type'] = 4; // Скрытое поле.
      $form_params['value'] = '';
      $admin_forms_fields->AddField($form_params);

      $form_params = array();
      $form_params['name'] = 'add_shop_item_shortcut';
      $form_params['caption'] = $GLOBALS['MSG_shops']['save'];
      $form_params['image'] = '/admin/images/add.gif';
      $form_params['attributes']['onclick'] = "doSendForm('{$admin_forms_fields->AAction}', '&action=load_data&admin_forms_id=65&shop_shops_id={$shop_shops_id}&shop_groups_parent_id={$shop_groups_parent_id}', 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']) . " ); SlideWindow('$form_name'; return false;";
      $form_params['attributes']['type'] = 'button';
      $admin_forms_fields->AddButton($form_params);

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

      $form_content = ob_get_clean();

      ?>
<script>
      var oWindowId = '<?php echo $form_name?>';
      
      if (document.getElementById(oWindowId) == undefined)
      {
         // Создаем окно
         CreateWindow(oWindowId, '<?php echo $GLOBALS['MSG_shops']['add_shop_item_shortcut_title']; ?>', '750px', '140px';

         var oWindow = document.getElementById(oWindowId);

         // <div id="subdiv">
         var ElementDiv = document.createElement("div";
         ElementDiv.setAttribute("id", "subdiv_small";
         var DivNode = oWindow.appendChild(ElementDiv);

         var content = '<?php echo str_replace("script>", "sc' + 'ript>", str_replace("\r\n", '', str_replace("'", "\'", $form_content)))?>';
         
         // Создадим скрытый SPAN для IE, в который поместим текст + скрипт.
         // Если перед <script> не будет текста, нехороший IE не увидит SCRIPT
         var span = document.createElement("span";
         span.style.display = 'none';
         span.innerHTML = "Stupid IE. " + content;
   
         runScripts(span.getElementsByTagName('SCRIPT');
         
         ElementDiv.innerHTML = content;
      }
      SlideWindow(oWindowId);
      
      </script>
      <?php

   }

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

// Групповой перенос товаров и групп товаров
function move_items_groups(&$param)
{
   ob_start();

   $shop_shops_id = to_int($_REQUEST['shop_shops_id']);
   $shop_groups_parent_id = to_int($_REQUEST['shop_groups_parent_id']);

   $shop = & singleton('shop';
   $admin_forms_fields = & singleton('admin_forms_fields';

   if (isset($param['data']))
   {
      ob_start();

      $form_name = 'move_items_gorups_' . time();
      $form_params = array();
      $form_params['form_attribs']['method'] = 'post';
      $form_params['form_attribs']['action'] = '/admin/shop/shop.php';
      $form_params['form_attribs']['id'] = 'form_'. $form_name;
      $form_params['form_attribs']['ENCTYPE'] = 'multipart/form-data';

      $admin_forms_fields->admin_forms_fields($form_params);

      $tab_id = $admin_forms_fields->AddTab($GLOBALS['MSG_shops']['tab']);

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

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

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

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

               $form_params = array();
               $form_params['tab_id'] = $tab_id;
               $form_params['name'] = 'move_group_' . $shop_group_id;
               $form_params['type'] = 4; // Скрытое поле.
               $form_params['value'] = $shop_group_id;
               $admin_forms_fields->AddField($form_params);
            }
         }
      }

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

            // Определяем информацию об объекте
            $object_row = $shop->GetItem($key, array('cache_off' => true));

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

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

               $form_params = array();
               $form_params['tab_id'] = $tab_id;
               $form_params['name'] = 'move_item_' . $shop_item_id;
               $form_params['type'] = 4; // Скрытое поле.
               $form_params['value'] = $shop_item_id;
               $admin_forms_fields->AddField($form_params);
            }
         }
      }
         
      // Список групп
      $form_params = array();
      $form_params['tab_id'] = $tab_id;
      $form_params['name'] = 'shop_group_id';
      $form_params['caption'] = $GLOBALS['MSG_shops']['move_items_groups_shop_groups_id'];
      $form_params['type'] = 2; // Выпадающий список.
      $form_params['value'] = 0;

      // Массив, содержащий полное дерево групп

      $mas = $shop->GetDelimitedGroups(0, $shop_shops_id, "&nbsp;";

      // Массив идентификаторов переносимых групп
      $mas_move_groups = array();

      foreach($_REQUEST as $request_key => $request_value)
      {
         if (ereg("^check_0_([0-9]*)$", $request_key, $regs))
         {
            $mas_move_groups[] = $regs[1];
         }
      }

      if (is_array($mas) && count($mas) > 0)
      {
         // Удаляем из массива с деревом групп переносимые группы и их дочерние подгруппы
         foreach($mas as $key_group_tree => $value_group_tree)
         {
            // Цикл по переносимым группам
            foreach($mas_move_groups as $key_move_groups => $value_move_groups)
            {
               // Текущая группа в дереве групп является переносимой группой
               // или родительской по отношению к переносимой
               if ($value_group_tree['shop_groups_id'] == $value_move_groups
               || $value_group_tree['shop_groups_parent_id'] == $value_move_groups)
               {
                  if ($value_group_tree['shop_groups_parent_id'] == $value_move_groups)
                  {
                     //$mas_move_groups[$key_move_groups] = $value_group_tree['shop_groups_id'];

                     $mas_move_groups[] = $value_group_tree['shop_groups_id'];
                  }

                  unset($mas[$key_group_tree]);
               }
            }
         }
      }

      $items = array();
      $items[0] = '..';

      if (is_array($mas) && count($mas) > 0)
      {
         foreach ($mas as $key_mas => $value_mas)
         {
            $items[$mas[$key_mas]['shop_groups_id']] = $mas[$key_mas]['separator'] . $mas[$key_mas]['shop_groups_name'];
         }
      }

      $form_params['items'] = $items;
      $form_params['div_attributes']['style'] = '';
      $form_params['attributes']['style'] = 'width: 320px; float: left;';
      $form_params['apply_filter'] = true;

      $admin_forms_fields->AddField($form_params);

      // Добавляем скрытое поле с идентификатором магазина
      $form_params = array();
      $form_params['tab_id'] = $tab_id;
      $form_params['name'] = 'shop_shops_id';
      $form_params['type'] = 4; // Скрытое поле.
      $form_params['value'] = $shop_shops_id;
      $admin_forms_fields->AddField($form_params);

      // Добавляем скрытое поле с идентификатором текущей группы
      $form_params = array();
      $form_params['tab_id'] = $tab_id;
      $form_params['name'] = 'shop_groups_parent_id';
      $form_params['type'] = 4; // Скрытое поле.
      $form_params['value'] = $shop_groups_parent_id;
      $admin_forms_fields->AddField($form_params);

      // Добавляем специальное скрытое поле с именем кнопки
      $form_params = array();
      $form_params['tab_id'] = $tab_id;
      $form_params['name'] = 'move_items_groups';
      $form_params['type'] = 4; // Скрытое поле.
      $form_params['value'] = '';
      $admin_forms_fields->AddField($form_params);

      $form_params = array();
      $form_params['name'] = 'move_items_groups';
      $form_params['caption'] = $GLOBALS['MSG_shops']['move_items_groups_form_button_name'];
      $form_params['image'] = '/admin/images/add.gif';
      $form_params['attributes']['onclick'] = "doSendForm('{$admin_forms_fields->AAction}', '&action=load_data&admin_forms_id=65&shop_shops_id={$shop_shops_id}&shop_groups_parent_id={$shop_groups_parent_id}', 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']) . " ); SlideWindow('$form_name'; return false;";
      $form_params['attributes']['type'] = 'button';
      $admin_forms_fields->AddButton($form_params);

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

      $form_content = ob_get_clean();

      ?>
<script>
      var oWindowId = '<?php echo $form_name?>';
      
      if (document.getElementById(oWindowId) == undefined)
      {
         // Создаем окно
         CreateWindow(oWindowId, '<?php echo $GLOBALS['MSG_shops']['move_items_groups_title']; ?>', '750px', '140px';

         var oWindow = document.getElementById(oWindowId);

         // <div id="subdiv">
         var ElementDiv = document.createElement("div";
         ElementDiv.setAttribute("id", "subdiv_small";
         var DivNode = oWindow.appendChild(ElementDiv);

         var content = '<?php echo str_replace("script>", "sc' + 'ript>", str_replace("\r\n", '', str_replace("'", "\'", $form_content)))?>';
         
         // Создадим скрытый SPAN для IE, в который поместим текст + скрипт.
         // Если перед <script> не будет текста, нехороший IE не увидит SCRIPT
         var span = document.createElement("span";
         span.style.display = 'none';
         span.innerHTML = "Stupid IE. " + content;
   
         runScripts(span.getElementsByTagName('SCRIPT');
         
         ElementDiv.innerHTML = content;
      }
      SlideWindow(oWindowId);
      
      </script>
      <?php
   }

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


/**
* функция для удаления элемента
*
* @param array $param
*/
function delete_item(&$param)
{
   ob_start();

   if (defined('READ_ONLY' && READ_ONLY)
   {
      $kernel = & singleton('kernel';

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

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

      $shop = & singleton('shop';

      $count = 0;

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

            $shop = & singleton('shop';

            // Определяем информацию об объекте
            $object_row = $shop->GetItem($key, array('cache_off' => true));

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

            if ($user_access->IssetUserAccessForObject($object_user_id))
            {
               if (!$shop->DeleteItem($key))
               {
                  $flag_success = false;
               }
               else
               {
                  $count++;

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

               $flag_success = false;
            }

         }

         if ($flag_success)
         {
            if ($count == 1)
            {
               show_message($GLOBALS['MSG_shops']['items_catalog_success_delete']);
            }
            else
            {
               show_message($GLOBALS['MSG_shops']['items_catalogs_success_delete']);
            }
         }
      }
      // Удаление каталога элементов
      if (isset($param['data'][0]))
      {
         foreach ($param['data'][0] as $key => $value)
         {
            // Определяем режим доступа пользователя и принадлежит ли объект пользователю
            $user_access = new user_access();

            $shop = & singleton('shop';

            // Определяем информацию об объекте
            $object_row = $shop->GetGroup($key, array('cache_off' => true));

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

            if ($user_access->IssetUserAccessForObject($object_user_id))
            {
               if (!$shop->DeleteGroup($key))
               {
                  $flag_success = false;
               }
               else
               {
                  $count++;

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

               $flag_success = false;
            }

         }

         if ($flag_success)
         {
            if ($count == 1)
            {
               show_message($GLOBALS['MSG_shops']['groups_success_delete']);
            }
            else
            {
               show_message($GLOBALS['MSG_shops']['groups_success_deletes']);
            }
         }
      }
   }

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

/**
* Добавление/редактирование элементов/каталогов магазина
*
* @param array $param
* @return boolean
*/
function edit_item(&$param)
{
   ob_start();

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

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

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

            $shop = & singleton('shop';

            // Определяем информацию об объекте
            $object_row = $shop->GetGroup($key, array('cache_off' => true));

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

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

               include(CMS_FOLDER.'admin/shop/action/form_edit_add_groups.php';
               // Устанавливаем <title> для страницы
               $param['title'] = ($id == 0)
               ? $GLOBALS['MSG_shops']['groups_add_form_title']
               : $GLOBALS['MSG_shops']['groups_edit_form_title'];
            }
            else
            {
               $user_access->MessageOnlyOwn();
               $param['error'] = ob_get_clean();
               return ;
            }
         }

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

            $shop = & singleton('shop';

            // Определяем информацию об объекте
            $object_row = $shop->GetItem($id, array('cache_off' => true));

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

            if ($user_access->IssetUserAccessForObject($object_user_id))
            {
               // Редактируем ярлык
               if ($object_row['shop_items_catalog_shortcut_id'] != 0)
               {
                  $id = $object_row['shop_items_catalog_shortcut_id'];
               }
               else
               {
                  $id = intval($id);
               }

               include(CMS_FOLDER.'admin/shop/action/form_edit_add_items_catalog.php';

               // Устанавливаем <title> для страницы
               $param['title'] = ($id == 0)
               ? $GLOBALS['MSG_shops']['items_catalog_add_form_title']
               : $GLOBALS['MSG_shops']['items_catalog_edit_form_title'];
            }
            else
            {
               $user_access->MessageOnlyOwn();
               $param['error'] = ob_get_clean();
               return ;
            }
         }
      }
   }

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

/**
* Применить изменения
*
* @param array $param
*/
function apply_changes(&$param)
{
   ob_start();
   if (defined('READ_ONLY' && READ_ONLY)
   {
      $kernel = & singleton('kernel';

      $kernel->ReadMode();
   }
   else
   {
      $shop_groups_parent_id = to_int($_REQUEST['shop_groups_parent_id']);

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

      $params = array();

      $shop = & singleton('shop';

      $DataBase = & singleton('DataBase';

      if (isset($param['data']))
      {
         // редактирование директории
         foreach ($param['data'] AS $key => $val)
         {
            foreach ($val AS $id => $value)
            {
               $id = intval($id);

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

                  $shop = & singleton('shop';

                  // Определяем информацию об объекте
                  $object_row = $shop->GetItem($id, array('cache_off' => true));
                     
                  // Ярлык
                  if ($object_row['shop_items_catalog_shortcut_id'] != 0)
                  {
                     // Сохраняем идентификатор товара/ярлыка товара
                     $original_shortcut_id = $id;
                        
                     $id = $object_row['shop_items_catalog_shortcut_id'];

                     //echo $object_row['shop_items_catalog_shortcut_id'];
                     // Получаем информацию о товаре, на который ссылается ярлык
                     $object_row = $shop->GetItem($object_row['shop_items_catalog_shortcut_id'], array('cache_off' => true));
                  }

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

                  if ($user_access->IssetUserAccessForObject($object_user_id))
                  {
                     // Есть поле расценки yandex маркет
                     if (isset($value['price_ym_bid']))
                     {
                        $price_ym_bid = intval($value['price_ym_bid']);
                        $query_price_ym_bid = ",`shop_items_catalog_yandex_market_bid` = {$price_ym_bid}";
                     }
                     else
                     {
                        $query_price_ym_bid = '';
                     }

                     if (isset($value['ym_allow']))
                     {
                        $ym_allow = intval($value['ym_allow']);
                        $query_ym_allow = ", `shop_items_catalog_yandex_market_allow` = {$ym_allow}";
                     }
                     else
                     {
                        $query_ym_allow = '';
                     }

                     $order = to_int($value['orderr']);
                     $ostatok = to_int($value['ostatok']);
                     $price = $shop->ConvertPrice($value['price']);
                     $id_disc = to_int($value['id_disc']);
                     
                     // Товар
                     if (!isset($original_shortcut_id))
                     {
                        $row_discount_item = $shop->GetAllDiscountsForItem($id);
                        
                        if($row_discount_item){
                           $query = "UPDATE `shop_item_discount_table` SET `shop_discount_id` = '$id_disc' WHERE `shop_items_catalog_item_id` = '$id'";
                           $DataBase->query($query);
                        }
                        else{
                           $query = "INSERT INTO `shop_item_discount_table` (`shop_item_discount_id`, `shop_items_catalog_item_id`, `shop_discount_id`, `users_id`) VALUES (NULL, '$id', '$id_disc', '19'";
                           $DataBase->query($query);
                        }
                        if($id_disc == 0){
                           $query = "DELETE FROM `shop_item_discount_table` WHERE `shop_items_catalog_item_id` = '$id'";
                           $DataBase->query($query);
                        }

                        
                        $query = "UPDATE `shop_items_catalog_table` SET `shop_items_catalog_order` = '$order',
                              `shop_items_catalog_rest` = '$ostatok', `shop_items_catalog_price` ='$price'
                              $query_price_ym_bid $query_ym_allow
                              WHERE `shop_items_catalog_item_id` = '$id'";
                              $DataBase->query($query);
                     }
                     
                     else // Ярлык товара
                     {
                        $query = "UPDATE `shop_items_catalog_table` SET `shop_items_catalog_rest` = '$ostatok',
                        `shop_items_catalog_price` ='$price' $query_price_ym_bid $query_ym_allow
                        WHERE `shop_items_catalog_item_id` = '$id'";

                        $DataBase->query($query);

                        // Для ярлыка "свой" порядок сортировки
                        $query = "UPDATE `shop_items_catalog_table` SET `shop_items_catalog_order` = '$order'
                        WHERE `shop_items_catalog_item_id` = '$original_shortcut_id'";

                        $DataBase->query($query);
                     }

                        
                  }
                  else
                  {
                     $user_access->MessageOnlyOwn();
                     $param['error'] = ob_get_clean();
                     return ;
                  }
               }// редактирование порядка сортировки у каталога
               if (isset($param['data'][0]))
               {
                  // Определяем режим доступа пользователя и принадлежит ли объект пользователю
                  $user_access = new user_access();

                  $shop = & singleton('shop';

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

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

                  if ($user_access->IssetUserAccessForObject($object_user_id))
                  {
                     $order = to_int($value['orderr']);

                     $query = "UPDATE `shop_groups_table` SET `shop_groups_order` = '$order' WHERE `shop_groups_id` = '$id'";

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

   $param['error'] = $error;

}

// Копирование товара
function copy_item(&$param)
{
   ob_start();
   if (defined('READ_ONLY' && READ_ONLY)
   {
      $kernel = & singleton('kernel';

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

      $count_copys = 0;

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

               $shop = & singleton('shop';

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

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

               if ($user_access->IssetUserAccessForObject($object_user_id))
               {
                  if ($shop->CopyItem($key))
                  {
                     $count_copys++;

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

            // Сообщения на странице
            // Копирование завершено успешно
            if ($flag_success_copy)
            {
               if ($count_copys == 1)
               {
                  show_message($GLOBALS['MSG_shops']['copy_one_item_success']);
               }
               else
               {
                  show_message($GLOBALS['MSG_shops']['copy_many_items_success']);
               }
            }
            // Ошибка копирования
            else
            {
               show_error_message($GLOBALS['MSG_shops']['copy_item_error']);
            }
         }
      }
   }
   $error = ob_get_clean();

   $param['error'] = $error;
}

/**
* Изменение статуса активности
*
* @param array $param
*/
function active(&$param)
{
   ob_start();

   if (defined('READ_ONLY' && READ_ONLY)
   {
      $kernel = & singleton('kernel';

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

      if (isset($param['data']))
      {
         $user_access = & singleton('user_access';
         $shop = & singleton('shop';

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

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

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

               if ($user_access->IssetUserAccessForObject($object_user_id))
               {
                  $object_row = $shop->GetGroup($key);

                  $shop->InsertGroup(array('group_id' => $key,
                  'shop_shops_id' => $object_row['shop_shops_id'],
                  'shop_groups_indexation' => $object_row['shop_groups_indexation'],
                  'shop_groups_activity' => 1 - $object_row['shop_groups_activity']));
                  /*$key = intval($key);
                   $query = "UPDATE `shop_groups_table` SET `shop_groups_activity` = 1 - `shop_groups_activity` WHERE `shop_groups_id` = '$key'";
                   $ret = $DataBase->query($query);*/
               }
               else
               {
                  $user_access->MessageOnlyOwn();
                  $param['error'] = ob_get_clean();
                  return ;
               }
            }
         }

         if (isset($param['data'][1]))
         {
            foreach ($param['data'][1] as $key => $value)
         
#
Re: Обновление данных в админке
Здравствуйте.

В Интернет-магазине при выводе списка товара я сделал, чтобы помимо всех параметров, предусмотренных системой для вывода (Название, ID, цена, сортировка и т.д.) еще выводился идентификатор скидки, присвоенной товару.
Добавил в файл admin/shop/action/load_data.php.
Но при нажатии на кнопку "Применить", значение в поле с идентификатором скидки не изменяется, а лишь только после обновления страницы. В чем может быть моя ошибка. Ниже представлю весь код, а добавленный код выделен жирным:
#
Re: Обновление данных в админке
Не могу разместить здесь код. Сообщение с кодом почему-то в итоге отображается пустым.
Модератор
#
Re: Обновление данных в админке
tomweb,
вставляйте внутри BB-тегов code (сверху синенкая кнопка <>, если код очень большой, он может не поместиться в размер для текста сообщения, тогда оставьте только добавленный код и по 10 строк до и после
#
Re: Обновление данных в админке
Я тогда просто не буду вставлять весь код этого файлы, а всавлю только то, что добавил:
$param['field_params'][1]['id_disc']['callback_function'] = 'callback_function_shop_items_discount';
   
   function callback_function_shop_items_discount($field_value, $value, $row){
      echo $value;
      $shop = & singleton('shop');
      $row_discount_item = $shop->GetAllDiscountsForItem($row['shop_items_catalog_item_id']);
      if($row_discount_item){
         foreach($row_discount_item as $result){
            $value = $result['shop_discount_id'];
         }
      }
      ?>
         <input type="text" style="<?php echo $field_value['admin_forms_field_style'];?>" name="check_1_<?php echo $row['shop_items_catalog_item_id'];?>_fv_<?php echo $field_value['admin_forms_field_id'];?>" value="<?php echo $value;?>" id="id_check_1_<?php echo $row['shop_items_catalog_item_id'];?>_fv_<?php echo $field_value['admin_forms_field_id'];?>"  onkeydown="DoModification('id_check_1_<?php echo $row['shop_items_catalog_item_id'];?>');" onchange="DoModification('id_check_1_<?php echo $row['shop_items_catalog_item_id'];?>');" />
      <?
   }


В функцию ResolveFieldName добавил:
switch ($dataset_id)
   {
      case 0: // Список каталогов документов.
         {
            switch ($field_name)
case 'id_disc':
                  {
                     $field_name = '';
                     break;
                  }
}
}

И в функцию apply_changes добавил:
$order = to_int($value['orderr']);
                     $ostatok = to_int($value['ostatok']);
                     $price = $shop->ConvertPrice($value['price']);
                     $id_disc = to_int($value['id_disc']);
                     
                     // Товар
                     if (!isset($original_shortcut_id))
                     {
                        $row_discount_item = $shop->GetAllDiscountsForItem($id);
                        
                        if($row_discount_item){
                           $query = "UPDATE `shop_item_discount_table` SET `shop_discount_id` = '$id_disc' WHERE `shop_items_catalog_item_id` = '$id'";
                           $DataBase->query($query);
                        }
                        else{
                           $query = "INSERT INTO `shop_item_discount_table` (`shop_item_discount_id`, `shop_items_catalog_item_id`, `shop_discount_id`, `users_id`) VALUES (NULL, '$id', '$id_disc', '19')";
                           $DataBase->query($query);
                        }
                        if($id_disc == 0){
                           $query = "DELETE FROM `shop_item_discount_table` WHERE `shop_items_catalog_item_id` = '$id'";
                           $DataBase->query($query);
                        }

                        
                        $query = "UPDATE `shop_items_catalog_table` SET `shop_items_catalog_order` = '$order',
                              `shop_items_catalog_rest` = '$ostatok', `shop_items_catalog_price` ='$price'
                              $query_price_ym_bid $query_ym_allow
                              WHERE `shop_items_catalog_item_id` = '$id'";
                              $DataBase->query($query);
                     }
#
Re: Обновление данных в админке
Как можно решить эту проблему?
Модератор
#
Re: Обновление данных в админке
После изменения скидок добавьте строку с очисткой кэша:
$shop->CacheDiscountsForItem = array();
#
Re: Обновление данных в админке
Спасибо!
И еще вопрос. А как сделать, чтобы этот параметр не выводился для группы интернет магазина? Сейчас там выводится, то не определена функция обратного вызова.
Модератор
#
Re: Обновление данных в админке
tomweb,
Установите тип поля в списке полей формы как обычное поле, а переопределение для первого источника делайте следующим образом:
$param['field_params'][1]['id_disc']['admin_forms_field_type'] = 10; // Вычисляемое поле

$param['field_params'][1]['id_disc']['callback_function'] = 'callback_function_shop_items_discount';
Модератор
#
Re: Обновление данных в админке
P.S. Обратите внимание, появилось дополненное руководство с примером модуля:
http://www.hostcms.ru/documentation/
Цитата:
Руководство по разработке модулей HostCMS v. 5
Пример демонстрационного модуля для HostCMS v. 5
Авторизация