
- MODX 2
- MODX 3
- miniShop2
- miniShop3
- PHP 7.2


Главный сниппет: панель фильтров, счётчики, сортировка, поиск, постраничность и карточки товаров. Вызывается без кэша.
[[!msCatalyst?
&parents=`5`
&facets=`vendor, parent, option:color, ms:price|range`
]]| Параметр | По умолчанию | Описание |
|---|---|---|
facets | vendor, parent | Список фасетов, синтаксис ниже. |
parents | текущий ресурс | ID разделов через запятую. |
depth | 10 | Глубина поиска товаров внутри разделов. |
includeCategories | 1 | Учитывать дополнительные категории товаров. |
templates | Только товары с этими ID шаблонов. | |
showUnpublished | 0 | Показывать неопубликованные товары. |
showHidden | 1 | Показывать товары со снятой галкой «Показывать в меню». |
sorts | menuindex, pagetitle, ms:price:asc, ms:price:desc | Варианты сортировки. Первый действует по умолчанию и не попадает в адрес. |
limits | 12, 24, 48 | Варианты количества на странице. Первый действует по умолчанию. |
search | 1 | Показывать поле поиска. |
searchFields | pagetitle^3, longtitle, ms:article^5, introtext, description, content | Поля поиска с весами: поля ресурса, ms:, tv:, option:. Совпадение в названии поднимает товар выше совпадения в описании. |
searchParam | search | Параметр адреса для поиска. Смените, если search на сайте занят. |
searchMin | 2 | Минимальная длина запроса. |
searchMode | filter | filter, page, live или live+page, см. msCatalystSearch. |
searchPage | ID или адрес страницы результатов для page и live+page. | |
suggestLimit | 8 | Число подсказок в живом поиске. |
richSearch | 1 | Словоформы, транслит и опечатки. |
set | Имя набора фильтров, см. ниже. | |
seo | off | off, native, seofilter или both, см. SEO. |
pagination | both | pages (номера), more (кнопка «Показать ещё»), both или none. |
first | 8 | Сколько вариантов группы видно до кнопки «Показать все». 0 показывает все. |
hideSingle | 1 | Скрывать группы, где меньше двух вариантов. |
hideUnavailable | 1 | Скрывать варианты без товаров при текущих фильтрах. Доступные варианты стоят вверху группы. С 0 недоступные остаются серыми внизу списка. |
lang | Язык каталога, например en. Если пусто, язык определяется сам, см. Мультиязычность. | |
langStrict | 1 | Localizator: скрывать товары без перевода на текущий язык. С 0 такие товары показываются с исходными полями. |
view | 1 | Переключатель «плиткой / списком». |
noindexFiltered | 1 | noindex, follow на страницах с фильтрами. |
element | msProducts | Сниппет вывода карточек. |
tpl | msCatalyst.card | Чанк карточки, msCatalyst передаёт его в element. Со своим чанком задайте &rowsClass под сетку темы. |
tplOuter | msCatalyst.outer | Чанк всего блока. |
tplGroup | msCatalyst.group | Чанк группы с чекбоксами. |
tplOption | msCatalyst.option | Чанк одного чекбокса. |
tplRange | msCatalyst.range | Чанк диапазона. |
tplEmpty | msCatalyst.empty | Чанк «ничего не найдено». |
rowsClass | msc-grid | Класс контейнера карточек. Со своим чанком карточки можно указать класс сетки темы, например row. |
breakpoint | 992 | Ширина в пикселях, ниже которой панель становится выезжающей. |
toPlaceholder | Записать вывод в плейсхолдер. | |
css, js, cacheTime | из настроек | Переопределяют системные настройки для одного вызова. |
Параметры, которых msCatalyst не знает, уходят в сниппет element. Так передаются &includeTVs, &includeThumbs и другие параметры msProducts. msCatalyst сам задаёт resources, parents, sortby, limit и offset, а where и tvFilters отбрасывает: фильтрацией занимается он.
Фасеты перечисляются через запятую. Фасет состоит из источника, имени и модификаторов через |:
источник:имя|модификатор|модификатор=значение| Источник | Пример | Откуда берутся значения |
|---|---|---|
vendor | vendor | Производитель товара. Подпись: название производителя. |
parent | parent | Родительский раздел товара. Подпись: pagetitle. |
ms | ms:color, ms:price | Поле таблицы ms2_products (в MiniShop3 ms3_products). JSON-массивы color, size, tags раскладываются на отдельные значения. |
tv | tv:color | TV. Несколько значений делятся по ||. Подписи и порядок берутся из «Возможных значений» TV в формате Подпись==значение. |
option | option:size | Опция товара (ms2_product_options или ms3_product_options). Заголовок группы: подпись опции. |
resource | resource:template | Поле ресурса: template, publishedon, createdby и другие. |
msop, variant | msop:price|range | Поля модификаций msOptionsPrice2 и ms3Variants, см. MODX 3 и модификации. |
| Модификатор | Пример | Что делает |
|---|---|---|
range | ms:price|range | Диапазон «от и до» вместо чекбоксов. Не работает для vendor и parent. |
step | |step=100 | Шаг ползунка. |
title | |title=Цвет | Заголовок группы. |
alias | |alias=c | Ключ в адресе вместо имени: ?c=red. Обязателен, если два фасета получают одинаковое имя. |
sort | |sort=count | Порядок вариантов: label (по подписи, по умолчанию), count (по количеству), value (по значению, числа в натуральном порядке), index (порядок из TV или menuindex разделов). |
lex | |lex=color_ | Подпись значения red берётся из записи лексикона color_red, если она есть. |
first | |first=5 | Свой порог «Показать все» для группы. |
open, closed | |closed | Группа раскрыта или свёрнута по умолчанию. Без модификатора раскрыты первая группа, диапазоны и группы с выбранными значениями. |
and | |and | Товар должен иметь все выбранные значения. По умолчанию хватает любого. |
label | parent|label=menutitle | Для parent: подпись из menutitle или longtitle. |
delimiter | tv:tags|delimiter=, | Разделитель значений TV вместо ||. |
Вместо строки можно передать JSON-массив. Это удобно, если в заголовке нужна запятая:
&facets=`[
{"source": "vendor", "sort": "count"},
{"source": "ms", "name": "price", "range": true, "step": 100},
{"source": "tv", "name": "color", "title": "Цвет, оттенок", "lex": "color_"}
]`Ключи mscatalyst, sort, limit, page, параметр поиска и параметры адреса MODX (q, id) заняты. Если имя фасета совпадает с ними, задайте |alias=. Ошибки конфигурации msCatalyst пишет в журнал ошибок MODX с префиксом [msCatalyst], и сниппет в этом случае ничего не выводит.
/catalog/?vendor=1,3&size=10%2C5%20mm&price=1000..2000&search=шланг&sort=ms-price-desc&limit=24&page=2%2C.vendor[]=1&vendor[]=3. msCatalyst понимает оба вида.price=1000..2000, price=1000.. или price=..2000. Форма без JavaScript отправляет price_min и price_max, это тоже работает.pagetitle-asc, ms-price-desc, tv-rating-desc.mscatalyst=<хэш>. В адресную строку этот параметр не попадает.Набор хранит фасеты, сортировки и поля поиска для нескольких каталогов сразу. &set=`catalog` читает системную настройку mscatalyst_set_catalog или файл core/components/mscatalyst/sets/catalog.json. Пример лежит в sets/catalog.example.json. Наборы удобно вести на вкладке «Наборы фильтров» страницы компонента.