Фильтр для интернет-магазина

Модератор
#
Re: Фильтр для интернет-магазина
#
Re: Фильтр для интернет-магазина
HostCMS,
спасибо. изучил.
Вывести скопопм весь товар из ниже лежащих групп получилось, но появилась проблема с группами - выводятся либо Уровня 1, Либо Уровень1+ ссылки на Уровень 2 - и это независимо от того в какой группе реально находишься (может и 3 и 4 уровня а выводится все равно 1-2 первых)
Поэтому такой вариант мне не подходит к сожалению.

Вот в этой теме вопрос задается такой же как у меня - http://www.hostcms.ru/forums/17/1189/
только было это 3 с лишним года назад и без переделки это неполучится использовать в 5 версии.
Переделать по причине скудных знаний php я не сообразил как
Если кто подскажет как это должно быть в нынешних реалиях буду благодарен.

Либо подскажите как мне в showshop передать в $external_propertys товары из подчиненных текущей группе групп - в таком случае и сохранится вся структура xml в которой будет только нужная ветка каталога и отдельно добавятся товары из ниже лежащего уровня групп.
Логику я понимаю как это сделать но толчины не хватает правильно код написать:

//это кусок кода для обработки массива подгрупп
$mas_group = array();  
$mas_group = $GLOBALS['shop']->GetGroupsTree($GLOBALS['shop_item_path']['group'],
$current_shop_id, $mas_group);
$set = array();
$set = SetGroups($mas_group, $set);
$elements = array();


//Зесь, как я понимаю, должен быть цикл в котором последовательно копим товары из тех групп которые присутсвуют в массиве (подчиненных текущей)
foreach ($set as $key =>$value)
{
//данная конструкция приводит к тому что в xml товары попадают, но при обработки его лезут ошибки :(
//судя по всему из-за имен индексов - они получаются просто цифровые - 1,2,3 и т.д.... хотя может и заблуждаюсь
$external_propertys[]= $shop->GetAllItems($shop_id, $value);

}
$shop->ShowShop($current_shop_id, $xsl_catalog, $param, $external_propertys);


ошибки следущие:
Предупреждение: DOMDocument::loadXML() [domdocument.loadxml]: StartTag: invalid element name in Entity, line: 5 в файле /home/x/xandr99/detski-style.ru/public_html/modules/Xsl/Xsl.class.php (строка 272)
Предупреждение: DOMDocument::loadXML() [domdocument.loadxml]: StartTag: invalid element name in Entity, line: 5 в файле /home/x/xandr99/detski-style.ru/public_html/modules/Xsl/Xsl.class.php (строка 272)
Предупреждение: DOMDocument::loadXML() [domdocument.loadxml]: expected '>' in Entity, line: 50 в файле /home/x/xandr99/detski-style.ru/public_html/modules/Xsl/Xsl.class.php (строка 272)
Предупреждение: DOMDocument::loadXML() [domdocument.loadxml]: Opening and ending tag mismatch: shop line 2 and unparseable in Entity, line: 50 в файле /home/x/xandr99/detski-style.ru/public_html/modules/Xsl/Xsl.class.php (строка 272)
Предупреждение: DOMDocument::loadXML() [domdocument.loadxml]: Extra content at the end of the document in Entity, line: 50 в файле /home/x/xandr99/detski-style.ru/public_html/modules/Xsl/Xsl.class.php (строка 272)


кусок xml:
<?xml version="1.0" encoding="UTF-8"?>
<shop id="1" current_group_id="2891">
   <user_id>0</user_id>
   <items_rest>1</items_rest>
   <1><1><shop_items_catalog_item_id>5321</shop_items_catalog_item_id>
         <shop_items_catalog_shortcut_id>0</shop_items_catalog_shortcut_id>
         <shop_tax_id>0</shop_tax_id>
         <shop_sallers_id>0</shop_sallers_id>
         <shop_groups_id>2898</shop_groups_id>
         <shop_currency_id>1</shop_currency_id>
         <shop_shops_id>1</shop_shops_id>
         <shop_producers_list_id>0</shop_producers_list_id>
         <shop_mesures_id>27</shop_mesures_id>
         <shop_items_catalog_type>0</shop_items_catalog_type>
         <shop_items_catalog_name>Легинсы р.110</shop_items_catalog_name>
         <shop_items_catalog_marking>wjparislga5/110</shop_items_catalog_marking>
         <shop_vendorcode></shop_vendorcode>
         <shop_items_catalog_description></shop_items_catalog_description>
         <shop_items_catalog_text></shop_items_catalog_text>
         <shop_items_catalog_image>shop_items_catalog_image5321.jpeg</shop_items_catalog_image>
         <shop_items_catalog_small_image>small_shop_items_catalog_image5321.jpeg</shop_items_catalog_small_image>
         <shop_items_catalog_weight>0.10</shop_items_catalog_weight>
         <shop_items_catalog_price>550.00</shop_items_catalog_price>
         <shop_items_catalog_is_active>1</shop_items_catalog_is_active>
         <shop_items_catalog_access>-1</shop_items_catalog_access>
         <shop_items_catalog_order>0</shop_items_catalog_order>
         <shop_items_catalog_path>item_5321</shop_items_catalog_path>
         <shop_items_catalog_seo_title></shop_items_catalog_seo_title>
         <shop_items_catalog_seo_description></shop_items_catalog_seo_description>
         <shop_items_catalog_seo_keywords></shop_items_catalog_seo_keywords>
         <shop_items_catalog_indexation>1</shop_items_catalog_indexation>
         <shop_items_catalog_small_image_height>200</shop_items_catalog_small_image_height>
         <shop_items_catalog_small_image_width>200</shop_items_catalog_small_image_width>
         <shop_items_catalog_big_image_height>600</shop_items_catalog_big_image_height>
         <shop_items_catalog_big_image_width>600</shop_items_catalog_big_image_width>
         <shop_items_catalog_yandex_market_allow>1</shop_items_catalog_yandex_market_allow>
         <shop_items_catalog_rambler_pokupki_allow>1</shop_items_catalog_rambler_pokupki_allow>
         <shop_items_catalog_yandex_market_bid>0</shop_items_catalog_yandex_market_bid>
         <shop_items_catalog_yandex_market_cid>0</shop_items_catalog_yandex_market_cid>
         <shop_items_catalog_yandex_market_sales_notes></shop_items_catalog_yandex_market_sales_notes>
         <users_id>22</users_id>
         <site_users_id></site_users_id>
         <shop_items_catalog_date_time>2011-03-21 22:54:39</shop_items_catalog_date_time>
         <shop_items_catalog_modification_id>0</shop_items_catalog_modification_id>
         <shop_items_cml_id>c5e1f4d2-530f-11e0-8ded-90e6ba7130ef</shop_items_cml_id>
         <shop_items_catalog_putoff_date>0000-00-00 00:00:00</shop_items_catalog_putoff_date>
         <shop_items_catalog_putend_date>0000-00-00 00:00:00</shop_items_catalog_putend_date>
         <shop_items_catalog_show_count>4</shop_items_catalog_show_count>
         
      </1>
      <2><shop_items_catalog_item_id>5322</shop_items_catalog_item_id>
         <shop_items_catalog_shortcut_id>0</shop_items_catalog_shortcut_id>
         <shop_tax_id>0</shop_tax_id>
         <shop_sallers_id>0</shop_sallers_id>
         <shop_groups_id>2898</shop_groups_id>
         <shop_currency_id>1</shop_currency_id>
         <shop_shops_id>1</shop_shops_id>
         <shop_producers_list_id>0</shop_producers_list_id>
         <shop_mesures_id>27</shop_mesures_id>
         <shop_items_catalog_type>0</shop_items_catalog_type>
         <shop_items_catalog_name>Легинсы р.116</shop_items_catalog_name>
         <shop_items_catalog_marking>wjparislga5/116</shop_items_catalog_marking>
         <shop_vendorcode></shop_vendorcode>
         <shop_items_catalog_description></shop_items_catalog_description>
         <shop_items_catalog_text></shop_items_catalog_text>
         <shop_items_catalog_image>shop_items_catalog_image5322.jpeg</shop_items_catalog_image>
         <shop_items_catalog_small_image>small_shop_items_catalog_image5322.jpeg</shop_items_catalog_small_image>
         <shop_items_catalog_weight>0.10</shop_items_catalog_weight>
         <shop_items_catalog_price>550.00</shop_items_catalog_price>
         <shop_items_catalog_is_active>1</shop_items_catalog_is_active>
         <shop_items_catalog_access>-1</shop_items_catalog_access>
         <shop_items_catalog_order>0</shop_items_catalog_order>
         <shop_items_catalog_path>item_5322</shop_items_catalog_path>
         <shop_items_catalog_seo_title></shop_items_catalog_seo_title>
         <shop_items_catalog_seo_description></shop_items_catalog_seo_description>
         <shop_items_catalog_seo_keywords></shop_items_catalog_seo_keywords>
         <shop_items_catalog_indexation>1</shop_items_catalog_indexation>
         <shop_items_catalog_small_image_height>200</shop_items_catalog_small_image_height>
         <shop_items_catalog_small_image_width>200</shop_items_catalog_small_image_width>
         <shop_items_catalog_big_image_height>600</shop_items_catalog_big_image_height>
         <shop_items_catalog_big_image_width>600</shop_items_catalog_big_image_width>
         <shop_items_catalog_yandex_market_allow>1</shop_items_catalog_yandex_market_allow>
         <shop_items_catalog_rambler_pokupki_allow>1</shop_items_catalog_rambler_pokupki_allow>
         <shop_items_catalog_yandex_market_bid>0</shop_items_catalog_yandex_market_bid>
         <shop_items_catalog_yandex_market_cid>0</shop_items_catalog_yandex_market_cid>
         <shop_items_catalog_yandex_market_sales_notes></shop_items_catalog_yandex_market_sales_notes>
         <users_id>22</users_id>
         <site_users_id></site_users_id>
         <shop_items_catalog_date_time>2011-03-21 22:54:39</shop_items_catalog_date_time>
         <shop_items_catalog_modification_id>0</shop_items_catalog_modification_id>
         <shop_items_cml_id>c5e1f4cc-530f-11e0-8ded-90e6ba7130ef</shop_items_cml_id>
         <shop_items_catalog_putoff_date>0000-00-00 00:00:00</shop_items_catalog_putoff_date>
         <shop_items_catalog_putend_date>0000-00-00 00:00:00</shop_items_catalog_putend_date>
         <shop_items_catalog_show_count>4</shop_items_catalog_show_count>
         
      </2>
.......


чувствую что решение где то рядом, но никак не удается
#
Re: Фильтр для интернет-магазина
Дамы и господа, крик души... буксую беспросветно
неужели никто не знает как правильно загнать товары в $external_propertys ?
#
Re: Фильтр для интернет-магазина
есть типовое решение или мануал по настройке фильтра - просто включению его в демоверсии, чтоб списки "Диагональ" "Формат экрана" выводился, устал уже копаться в faq, форуме?
#
Re: Фильтр для интернет-магазина
Реально ли вывести случайные товары из разных магазинов, к примеру у меня 3 каталога, и они все над под сайтах.. как я могу на главной в случайном товаре сделать вывод?
#
Re: Фильтр для интернет-магазина
Вместо
$set = SetGroups($mas_group, $set);

я использовал
$set = array_keys($mas_group);

И всё работает..
Антон
#
Re: Фильтр для интернет-магазина
Нашел наиболее короткий вариант:
$shop = & singleton('shop');
$shop_id = '<ваш номер интернет-магазина>';

$result = $shop->GetItemPath($shop_id, '', false);
$item = $result['item'];
$group = $result['group'];

$mas_group = array_keys($shop->GetGroupsTree($group,$shop_id));
foreach ($mas_group as $k => $v){
   $row = $shop->GetGroup($v);
   if (!$row['shop_groups_activity']) unset($mas_group[$k]);
}
$param['current_group_id'] = $mas_group;

if ($item){
  $shop->ShowItem($item, '<ваш шаблон товара>');
} else {
  $shop->ShowShop($shop_id, '<ваш шаблон каталога>', $param);
}
Антон
#
Re: Фильтр для интернет-магазина
не поняла применим  ли код от natalya сейчас (для вывода на странице раздела всех товаров из его подразделов) , но у меня ошибка:

Цитата:
Parse error: syntax error, unexpected $end in /home/r/rainbowdru/public_html/hostcmsfiles/lib/lib_6/lib_6.php on line 872


вот часть кода ТДС

      // При выводе списка товаров получать подробное описание каждого товара не нужно
      $param['show_text'] = false;

      // При выводе списка товаров получать сопутствующие товары не нужно
      $param['xml_show_tying_products'] = true;

      // Запрещаем передачу в XML свойств групп
      $param['xml_show_group_property'] = true;

/* Вывод списка */
if(!$GLOBALS['shop_item_path']['item'])
{
$mas_group = array();
$mas_group = $shop->GetGroupsTree($GLOBALS['shop_item_path']['group'],
$current_shop_id, $mas_group);
$set = array();
$set = SetGroups($mas_group, $set);
$elements = array();

$in = $GLOBALS['shop_item_path']['group'];

foreach ($set as $key => $value)
{
        $in .= ','.$value;
}

$elements['type']=0;
$elements['prefix'] = ' and (';
$elements['name'] = 'shop_items_catalog_table.shop_groups_id';
$elements['if'] = ' IN ('.$in.') ';
$elements['value'] = '';
$elements['sufix']=')';
$param['select'][]=$elements;
$param['current_group_id']=false;

$GLOBALS['shops']->ShowShop($current_shop_id, $xsl_catalog, $param, $external_propertys);



   }
   else
   {
      /* Вывод конкретного элемент */
      //$param['show_catalog_item_type'] = array('active', 'inactive');
      $param['xml_show_group_type'] = 'tree';
      $param['current_group_id'] = $GLOBALS['shop_item_path']['group'];

      // Запрещаем передачу в XML свойств групп
      $param['xml_show_group_property'] = false;

      /* Вывод конкретного элемент */
      $shop->ShowItem($GLOBALS['shop_item_path']['item'], $xsl_item, $param, $external_propertys);
   }
}
?>


кто подскажет как правильно?
Email: golden-puma@yandex.ru; Skype: golden_puma; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
#
Re: Фильтр для интернет-магазина
так кто подскажет как вывести под списком подразделов товары из них постранично?
Email: golden-puma@yandex.ru; Skype: golden_puma; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
#
Re: Фильтр для интернет-магазина
Скажите пожалуйста, что нужно изменить в ТДС что бы сделать вывод каталога интернет магазита следующим образом.

РАЗДЕЛ(только название)
Подраздел(только название)
товар из подраздела
и как можно сделать вывод только 2-х разделов на странице? Спасибо.
как пример: http://bordeaux.orange-themes.com/menu-card/
В говно может вступить любой желающий. (с)
Авторизация