UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: ann_caly от 14 Февраля 2018, 13:26:30

Название: Фильтр каталога по допполю товара
Отправлено: ann_caly от 14 Февраля 2018, 13:26:30
Здравствуйте!
Недавно работаю с umi и xslt, пока очень непонятны многие вещи.
Вопрос следующий. На сайте есть каталог товаров (разделы и подразделы, в подразделах товары). В товарах есть доп.поля. Нужно создать отдельные страницы, куда будут выводиться отфильтрованные по допполю товары.
Например, есть поле "Производитель" с селектом. Я хочу вывести на страницу /sony все товары данного производителя. Важно, что урл страницы должен быть без параметров, статический (насколько я поняла, н-р, fields_filter предусматривает использование параметров). Страницы нужны будут для нескольких допполей и всех их значений селекта.

Запрос для всех товаров из всех категорий (модуль catalog, метод category):
 <xsl:apply-templates select="document('udata://catalog/getObjectsList/notemplate/(/catalog/naushniki/)///2//?extProps=photo,name,is_hit,is_preview,is_recommended,common_quantity,is_preorder,artikul,anons,old_price,vendor')"/>
На этом этапе нужна фильтрация по допполю или же проверка при выводе карточек товара. Не понимаю, как это реализовать средствами xslt и umi.

Название производителя:
<xsl:variable name="select" select="//property[@name='vendor']/value/item/@name"/>
Название: Re: Фильтр каталога по допполю товара
Отправлено: aghigay от 14 Февраля 2018, 15:47:07
Не очень понятно в чем вопрос.
XSLT - это шаблонизатор. Он ничего не фильтрует (ну или не должен фильтровать). Все, что выполняется - работает через макрос getObjectsList. И именно этот макрос возвращает отфильтрованные данные.
Во-первых стоит отказаться от использования этого макроса, так как он устарел и в некоторых версиях его нет. Пользуйтесь getSmartCatalog  (http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/katalog/catalog_getsmartcatalog/)
Во-вторых, чтобы фильтр был построен правильно, пользуйтесь для его построения макросом getSmartFilters (http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/katalog/catalog_getsmartfilters/)

Тогда getSmartFilters будет генерировать правильные данные для фильтра, а getSmartCatalog правильно их принимать.
И не забудьте переиндексировать каталог