Тема: Разное оформление карточки товара

Добрый день, подскажите как сделать разное оформление карточки товара в зависимости от названия категории в которой находится товар? т.е. нужно чтоб в определённой категории был один шаблон вывода товара, а в остальных стандартный который сейчас.
Делаю так и ничего не происходит...
в файле product.tpl в начале приписываю:
{if $category.name == 'Категория'}
     нужный шаблон
{else}
     стандартный шаблон
{/if}

Повысить оценку Понизить оценку

2 Отредактировано Закусило Александр (08.06.2016 12:08:54)

Re: Разное оформление карточки товара

Ну естественно. Переменной $category не существует в шаблоне карточки товара. Там есть только $product. В этой переменной хранится ORM объект товара(\Catalog\Model\Orm\Product). Вы можете вызвать метод getMainDir().
Почему?
Потому что этот метод вернёт Основную категорию товара. И из неё Вы сможете получить нужные данные.
Посмотреть все методы класса \Catalog\Model\Orm\Product можно в /modules/catalog/model/orm/product.inc.php.

Как узнать какие переменные есть в шаблоне?
В режиме правки(В публичной части слева вверху включить), навестись мышкой на середину и затем нажать на кнопку i.
Либо заглянуть в front контроллер. В данном случае карточки товара.

{$category=$product->getMainDir()}

И далее Ваши проверки.

3

Re: Разное оформление карточки товара

Как сделать для разных категорий товаров разные карточки (с карзиной и без карзины грубо говаря).

Повысить оценку Понизить оценку

4 Отредактировано Закусило Александр (02.12.2016 11:51:11)

Re: Разное оформление карточки товара

Если в шаблоне самой карточки товара product.tpl, то так.

{$category=$product->getMainDir()}
{if $category.name == 'Категория'}
     нужный шаблон
{else}
     стандартный шаблон
{/if}

5

Re: Разное оформление карточки товара

Подскажите еще что нужно вставлять вместо  нужный шаблон и стандартный шаблон(в каком формате), лучше пример. Заранее спасибо.

Повысить оценку Понизить оценку

6 Отредактировано Закусило Александр (02.12.2016 15:26:03)

Re: Разное оформление карточки товара

В соответствии с правилами шаблонизатора Smarty
Это будет в product.tpl

{$category=$product->getMainDir()} {* Главная категория товара *}
{if $category.name == 'Категория с моим названием'}
     {include file="%catalog%/product_my.tpl" product=$product} {* Свой шаблон *}
{else}
     {include file="%catalog%/product_standart.tpl" product=$product} {* Стандартный шаблон *}
{/if}

Соответственно нужно будет создать product_my.tpl и product_standart.tpl, которые будут в той же папке, что и product.tpl.
product_my.tpl - сюда вставляем, то что нам нужно
product_standart.tpl - сюда вставляем содержимое предыдущее файла product.tpl
Если изменения не существенные, то можно вставить шаблоны только с частью нужной для вывода информации, а не весь шаблон.
Если Вы только начинающий, то рекомендую к прохождению статью.