Тема: Другой шаблон карточки товара для конкретной категории
Добрый день. На отдельной категории товара необходимо сделать другой по стилю вывод характеристик. Каким образом можно сделать условие на вывод для конкретной категории?
Форум ReadyScript Вопросы по созданию тем оформления Другой шаблон карточки товара для конкретной категории
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Добрый день. На отдельной категории товара необходимо сделать другой по стилю вывод характеристик. Каким образом можно сделать условие на вывод для конкретной категории?
другой по стилю вывод характеристик - в фильтре имеется ввиду?
Если да, то речь значит идет о шаблоне /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}
другой по стилю вывод характеристик - в фильтре имеется ввиду?
Если да, то речь значит идет о шаблоне /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?
нет, на странице просмотра товара нужен совсем другой код.
в 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 - для кастомного вывода характеристик.
Спасибо добрый человек)
{if $product->getMainDir()->alias == 'test'}
а, если тож самое нужно для 20 категорий?
Значит надо дополе создавать, например. Или по характеристике товара сравнивать
Ярослав, конечно, надо создавать дополнительное поле (свойство) для категории (Шаблон вывода характеристик)
Просто if от админа улыбнул
Создавать поле необязательно. В smarty же есть метод templateExists, который можно вызвать и в шаблоне, нужно искать кастомный шаблон и если его нет, то подключать дефолтный. И никаких проблем, просто формируете имя шаблона product_property_{$product->getMainDir()->alias}.tpl
Создавать поле необязательно. В smarty же есть метод templateExists, который можно вызвать и в шаблоне, нужно искать кастомный шаблон и если его нет, то подключать дефолтный. И никаких проблем, просто формируете имя шаблона product_property_{$product->getMainDir()->alias}.tpl
А условие как строить, если категорий много?
Допустим, на сайте 150 категорий. И 5 шаблонов вывода чего-либо, для простоты - карточки товара в целом.
Так раньше было сделано то ли у кораблика, то ли у детского мира - к категориям брендов/акций привязывался другой дизайн.
Если сделать поле, то можно просто в свойствах категории указать, какой шаблон используется для этой категории - и всё.
Если же делать в шаблоне категории средствами смарти, то тут будет 5 ифов и 30 условий в каждом
Я такое (через много ифов) делал, когда только знакомился с ридискриптом, у нас это был сайт третий-пятый примерно.
Если же делать через имя тпльки... бардак же будет в директории.
Не спорю, безусловно поле выбора шаблона - это более гибкое и красивое решение. Через условия - это лайтовое быстрое решение если нужно несколько кастомных отображений и все остальное - дефолт
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форум ReadyScript Вопросы по созданию тем оформления Другой шаблон карточки товара для конкретной категории