Использование разных макетов для вывода товаров

Модератор
#
Re: Использование разных макетов для вывода товаров
dimidos,
Поясните Ваш вопрос.
#
Re: Использование разных макетов для вывода товаров
HostCMS писал(а):
Поясните Ваш вопрос.

Спешу наверное - задал этот вопрос уже в поддержке ))) подумал может тут быстрее кто ответит, так что извините если с Вами и в тикетах общаемся - тогда здесь будет дублирование. Итак вопрос такой :

Как менять xsl-шаблон для определённой группы товаров? (добавить этим способом к стандартному 55.xsl "МагазинКаталогТоваров" ещё шаблон например "МагазинКаталогТоваров2" )

Решение предложено было такое:

В случае с XSL-шаблоном, Вам необходимо внести код не в настройки, а перед использованием имени XSL-шаблона. Соответственно в доп. св-ве хранить нужно не ID, а имя XSL-шаблона.


$shop_items_catalog_item_id = $GLOBALS['shop_item_path']['item'];
// Укажите код созданного свойства
$shop_list_of_properties_id = 123;
$property_row = $shop->GetValueItemProperty($shop_items_catalog_item_id, $shop_list_of_properties_id);

// Значения свойства задано
if ($property_row && !empty($property_row['shop_properties_items_value']))
{
$xsl_catalog = $property_row['information_propertys_items_value'];
}


этот код выводится перед:
$shop->ShowShop($current_shop_id, $xsl_catalog, $param, $external_propertys);


Что было сделано но не дало результата:

1)Создал xsl шаблон - "МагазинКаталогТоваров2"

2)Создал доп.св-во товара с названием
"МагазинКаталогТоваров2"(Id доп. св-ва получилось 258)

3)Активировал это свойство только для одной из групп товаров.

4)Внёс код -

// Значения свойства задано
$shop_items_catalog_item_id = $GLOBALS['shop_item_path']['item'];
// Укажите код созданного свойства
$shop_list_of_properties_id = 258;
$property_row = $shop->GetValueItemProperty($shop_items_catalog_item_id, $shop_list_of_properties_id);
// Значения свойства задано
if ($property_row && !empty($property_row['shop_properties_items_value']))
{
$xsl_catalog = $property_row['information_propertys_items_value'];
}

в код типовой динамической перед
$shop->ShowShop($current_shop_id, $xsl_catalog, $param, $external_propertys);


Что сделано не правильно? Спасибо.
#
Re: Использование разных макетов для вывода товаров
Сорри но я уже ничего не понимаю, зачем все эти сложности ...
Нельзя по аналогии как в этой теме для подгруппы http://www.hostcms.ru/forums/17/3930/


// Если подгруппа
if ($param['current_group_id'] != 0)
{
$xsl_catalog = "МагазинКаталогТоваров2";
}

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


сделать для группы?
#
Re: Использование разных макетов для вывода товаров
так и сделайте )

// Если подгруппа
if ($param['current_group_id'] == ID группы)
{
$xsl_catalog = "МагазинКаталогТоваров2";
}


или используйте
http://hostcms.ru/api/HostCMS_5/shop.html#methodGetPropertiesGroupValue

GetValueItemProperty - доп. свойство элемента, не группы
#
Re: Использование разных макетов для вывода товаров
h4mpy,
Пробовал не работает эта конструкция.

if ($param['current_group_id'] == 999)
{
$xsl_catalog = 'МагазинКаталогТоваров2';
}


и эта "GetPropertiesGroupValue" тоже.
#
Re: Использование разных макетов для вывода товаров
посмотрите чему он равен, находясь в группе
добавьте строку
echo $param['current_group_id'];

посмотрите ID, находясь в группе, если действительно 999 - не может не работать

если через метод GetPropertiesGroupValue:
посмотрите массив доп. свойства

$params = array();
$params['shop_groups_id'] = $param['current_group_id'];
$params['shop_properties_group_id'] = 258;
$property_row = $shop->GetPropertiesGroupValue($params);
print_r $property_row;

и после
if ($property_row && !empty($property_row['???']))
{
$xsl_catalog = 'МагазинКаталогТоваров2';
}

вместо знаков вопроса - элемент массива, в котором хранится значение свойства группы...по моему "shop_properties_groups_value"
#
Re: Использование разных макетов для вывода товаров
h4mpy, спасибо за Вашу помощь, с ID группы всё нормально - echo лишний раз подтверждает.

Не обратил внимание сразу одну проблему - при добавлении в тип.дин.

if ($param['current_group_id'] == 999)
{
$xsl_catalog = 'МагазинКаталогТоваров2';
}


т.к. обновлял лишь страницу группы - если провалится из группы в товар увидим ошибку:

Замечание: Undefined index: current_group_id в файле C:\server\site\www\hostcmsfiles\lib\lib_6\lib_6.php (строка 809)

- Что не так?

P.S. A с этим ошибка сразу в группе и кракозябры
$params = array();
$params['shop_groups_id'] = $param['current_group_id'];
$params['shop_properties_group_id'] = 258;
$property_row = $shop->GetPropertiesGroupValue($params);
print_r $property_row;
#
Re: Использование разных макетов для вывода товаров
если код прямо перед вызовом ShowShop - в товарах не должно быть ошибки
выложите часть типовой с этим кодом
#
Re: Использование разных макетов для вывода товаров
h4mpy,
спасибо Вам за помощь, решено этим вариантом:

if ($param['current_group_id'] == 999)
{
$xsl_catalog = 'МагазинКаталогТоваров2';
}


стоило просто поспать
#
Re: Использование разных макетов для вывода товаров
Подскажите, пожалуйста. Как сменить шаблон страницы для товара, без создания доп.свойств? Чтобы при любом просмотре единицы товара шаблон по умолчанию (для интернет магазина) сменялся на другой. Создавать доп.свойство для уже загруженного в большом количестве товара очень неудобно. Спасибо.
iNikSite - дизайн и фронтенд разработка
Авторизация