Фасетный фильтр для каталогов miniShop2 (MODX 2.8) и MiniShop3 (MODX 3). Один некэшированный сниппет выводит фильтры со счётчиками, диапазоны цены и других числовых полей, поиск, сортировку, постраничность и карточки товаров. Без JavaScript фильтр работает как GET-форма. С JavaScript страница обновляется через AJAX, а адрес меняется вместе с фильтрами.
Faceted filter for miniShop2 (MODX 2.8) and MiniShop3 (MODX 3) catalogs. One uncached snippet renders filters with counters, price and numeric ranges, search, sorting, pagination and product cards. It works as a plain GET form without JavaScript and updates over AJAX with JavaScript.
[[!msFacets?
&facets=`vendor, parent, option:color, ms:price|range`
]]
Скачайте msfacets-*.transport.zip из Releases, положите в core/packages/ и установите через «Пакеты» → «Установщик» → «Поиск локальных пакетов».
Download msfacets-*.transport.zip from Releases, put it into core/packages/ and install it from Extras → Installer → Search Locally for Packages.
- MODX 2.8 + miniShop2, или MODX 3 + MiniShop3
- pdoTools
- PHP 7.2+ (MODX 3.2 requires PHP 8.1+)
Проверено / Tested: MODX 2.8.8 + miniShop2 3.0.7 / 4.4.2 + pdoTools 2.13.3 + PHP 7.4. MODX 3.2.0 + MiniShop3 1.14.1-beta2 + pdoTools 3.0.3 + PHP 8.4.
powershell -File tests/run.ps1
php _build/build.transport.php
Тесты идут без MODX, на поддельном modX с SQLite. Для сборки нужен установленный MODX 2.8: путь к ядру берётся из MODX_CORE_PATH или из config.core.php выше по дереву. Пакет, собранный на MODX 2.8, ставится и на MODX 3.
The tests run without MODX on a fake modX with SQLite. The build needs a MODX 2.8 install. Set MODX_CORE_PATH or keep a config.core.php in a parent folder. A package built on MODX 2.8 installs on MODX 3 too.
GPLv2, see core/components/msfacets/docs/license.txt.