1

Тема: Другой шаблон карточки товара для конкретной категории

Добрый день. На отдельной категории товара необходимо сделать другой по стилю вывод характеристик. Каким образом можно сделать условие на вывод для конкретной категории?

2

Re: Другой шаблон карточки товара для конкретной категории

другой по стилю вывод характеристик - в фильтре имеется ввиду?

Если да, то речь значит идет о шаблоне /moduleview/catalog/blocks/sidefilters/filters.tpl
текущая категория на странице каталога записывается в кастомное extra свойство текущего маршрута.
То есть получить объект категории можно так:

{if $router->getCurrentRoute() == 'catalog-front-listproducts'} {*Проверка что мы находимся на странице категории*}
    {$dir = $router->getCurrentRoute()->getExtra('category')} {* Получаем текущую категорию *}
    {if $dir.alias == 'test'} {* Проверяем что alias текущей категории = test *}
          {$customStyle = true} {* Делаем что нам нужно *}
    {/if}
{/if}

3

Re: Другой шаблон карточки товара для конкретной категории

admin пишет:

другой по стилю вывод характеристик - в фильтре имеется ввиду?

Если да, то речь значит идет о шаблоне /moduleview/catalog/blocks/sidefilters/filters.tpl
текущая категория на странице каталога записывается в кастомное extra свойство текущего маршрута.
То есть получить объект категории можно так:

{if $router->getCurrentRoute() == 'catalog-front-listproducts'} {*Проверка что мы находимся на странице категории*}
    {$dir = $router->getCurrentRoute()->getExtra('category')} {* Получаем текущую категорию *}
    {if $dir.alias == 'test'} {* Проверяем что alias текущей категории = test *}
          {$customStyle = true} {* Делаем что нам нужно *}
    {/if}
{/if}

На самой странице продукта product.tpl.

Я так понимаю этот код тоже подходит нужно только изменить catalog-front-listproducts?

4

Re: Другой шаблон карточки товара для конкретной категории

нет, на странице просмотра товара нужен совсем другой код.

в product.tpl:

{if $product->getMainDir()->alias == 'test'}
   {include file="%catalog%/property_type_test.tpl"}
{else}
   {include file="%catalog%/property_type_default.tpl"}
{/if}

Создайте шаблоны
- /moduleview/catalog/property_type_default.tpl - для стандартного вывода характеристик.
- /moduleview/catalog/property_type_test.tpl - для кастомного вывода характеристик.

5

Re: Другой шаблон карточки товара для конкретной категории

Спасибо добрый человек)

6

Re: Другой шаблон карточки товара для конкретной категории

{if $product->getMainDir()->alias == 'test'}

а, если тож самое нужно для 20 категорий? smile

7

Re: Другой шаблон карточки товара для конкретной категории

Значит надо дополе создавать, например. Или по характеристике товара сравнивать

8

Re: Другой шаблон карточки товара для конкретной категории

Ярослав, конечно, надо создавать дополнительное поле (свойство) для категории (Шаблон вывода характеристик)
Просто if от админа улыбнул wink

9

Re: Другой шаблон карточки товара для конкретной категории

Создавать поле необязательно. В smarty же есть метод templateExists, который можно вызвать и в шаблоне, нужно искать кастомный шаблон и если его нет, то подключать дефолтный. И никаких проблем, просто формируете имя шаблона product_property_{$product->getMainDir()->alias}.tpl

10

Re: Другой шаблон карточки товара для конкретной категории

admin пишет:

Создавать поле необязательно. В smarty же есть метод templateExists, который можно вызвать и в шаблоне, нужно искать кастомный шаблон и если его нет, то подключать дефолтный. И никаких проблем, просто формируете имя шаблона product_property_{$product->getMainDir()->alias}.tpl

А условие как строить, если категорий много?
Допустим, на сайте 150 категорий. И 5 шаблонов вывода чего-либо, для простоты - карточки товара в целом.
Так раньше было сделано то ли у кораблика, то ли у детского мира - к категориям брендов/акций привязывался другой дизайн.
Если сделать поле, то можно просто в свойствах категории указать, какой шаблон используется для этой категории - и всё.
Если же делать в шаблоне категории средствами смарти, то тут будет 5 ифов и 30 условий в каждом smile
Я такое (через много ифов) делал, когда только знакомился с ридискриптом, у нас это был сайт третий-пятый примерно.

Если же делать через имя тпльки... бардак же будет в директории.

11

Re: Другой шаблон карточки товара для конкретной категории

Не спорю, безусловно поле выбора шаблона - это более гибкое и красивое решение. Через условия - это лайтовое быстрое решение если нужно несколько кастомных отображений и все остальное - дефолт