Вывод разных макетов для групп и товаров ИМ

#
Вывод разных макетов для групп и товаров ИМ
Добрый день! Необходимо вывести разные макеты для страниц с группами товаров и для страниц с описанием товара.
Поясню: для страниц
адрес_сайта/shop/  и
адрес_сайта/shop/группа_товаров/  - один макет;
для страниц адрес_сайта/shop/группа_товаров/товар/ - другой макет

Как это можно осуществить?
#
Re: Вывод разных макетов для групп и товаров ИМ
Есть еще один волнующий вопрос по путям. Путь к элементу выводится, только если этот элемент находится в информационной группе. А как сделать, чтобы путь выводился и к элементам, которые находятся в корне информационной системы?
#
Re: Вывод разных макетов для групп и товаров ИМ
gs_evach писал(а):
Как это можно осуществить?
- в коде настроек(вкладка "Настройки страницы" типовой динамической страницы магазина можно добавить проверку на то, чем является текущая страница магазина(страницей группы или страницей товара) - см. содержимое массива $GLOBALS['shop_item_path'], и в зависимости от этого по средством метода SetTemplate класса kernel установить нужный макет.
#
Re: Вывод разных макетов для групп и товаров ИМ
gs_evach писал(а):
чтобы путь выводился и к элементам, которые находятся в корне информационной системы?
- о каком пути идет речь? Где он у вас выводится? Каким образом(PHP-кодом или XSL-шаблоном, например)?
#
Re: Вывод разных макетов для групп и товаров ИМ
natalya писал(а):
— в коде настроек(вкладка «Настройки страницы" типовой динамической страницы магазина можно добавить проверку на то, чем является текущая страница магазина(страницей группы или страницей товара) — см. содержимое массива $GLOBALS['shop_item_path'], и в зависимости от этого по средством метода SetTemplate класса kernel установить нужный макет.


Я вот нашла в одной из тем
а) Для магазина добавляете получение доп. св-ва товара:
$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']))
{
   $template_id = $property_row['shop_properties_items_value'];
   $kernel->SetTemplate($template_id);
}

Мне нужно этот код вставить?
#
Re: Вывод разных макетов для групп и товаров ИМ
natalya писал(а):
— о каком пути идет речь? Где он у вас выводится? Каким образом(PHP-кодом или XSL-шаблоном, например)?


Путь выводится перед заголовком элемента посредством xsl-шаблона:
         
<!-- Путь к группе -->
         <p>
            <xsl:apply-templates select=".//group[@id=$parent_group_id]" mode="goup_path"/>
         </p>
      </xsl:if>   
#
Re: Вывод разных макетов для групп и товаров ИМ
gs_evach писал(а):
Путь выводится перед заголовком элемента посредством xsl-шаблона
- т.е. речь о хлебных крошках. В таком случае вам нужно перед строкой
<xsl:apply-templates select="//group[@id=$parent_group_id]" mode="goup_path"/>

добавить проверку: если идентификатор текущей группы(т.е. переменная $parent_group_id) равен нулю, то вывести хлебные крошки в явном виде: ссылка на главную -> ссылка на текущий товар.
#
Re: Вывод разных макетов для групп и товаров ИМ
А как сделать если:
адрес_сайта/shop/ — один макет;

адрес_сайта/shop/группа_товаров/
адрес_сайта/shop/группа_товаров/товар/ — другой макет
Что-то не получается сделать.  Подскажите пожалуйста.
Делись своими знаниями. Это путь к бессмертию.
Модератор
#
Re: Вывод разных макетов для групп и товаров ИМ
R_www, для смены макета используйте
$kernel->SetTemplate($template_id);

в настройках типовой магазина проверяете
if ($GLOBALS['shop_item_path']['item'] == 0 && $GLOBALS['shop_item_path']['group'] == 0)
{
// Смена макета
}
Авторизация