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

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

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

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

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: Другой шаблон карточки товара для конкретной категории

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

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