msProductsComposerSelection

Привязка условий поиска\фильтрации товаров к ресурсу
Автор дополнения
Prihod
Пакетов
35
Закачек
11 279
Обычно отвечает в течение суток
Автор дополнения
Пакетов
35
Закачек
11 279
Обычно отвечает в течение суток
Версия 1.0.19-pl
Дата выпуска 18.11.2023
Загрузки 159
Просмотры 11 002
Внимание, этот компонент требует версию PHP 7.3 или выше! Если ваш сайт использует PHP ниже требуемого, установка этого дополнения может его сломать.
Внимание, этот компонент требует версию MODX не ниже 2.4 !

Дополнение позволяет сформировать условия для выборки товаров, а также фильтры для mSearch2 и привязать их к ресурсу, после чего использовать в таких сниппетах как msProducts, mSearch2, mFilter2 и прочих, которые в своей работе используют параметр where.


Видео обзор




Видео обзор устарел


Использование


После установки дополнения у всех ресурсов Modx появится вкладка “Условия\фильтры”, где можно сформировать нужные условия и фильтры для выборки товаров.



На странице /manager/?a=system/settings в настройках дополнения через запятую можно указать ID только тех шаблонов, для которых следует выводить вкладку “Условия для выбора товаров”.


В выпадающие списки «Название поля», «Метод фильтрации» и чанки можно вводить свои значения.


Сниппет msPCS


Сниппет msPCS — формирует в нужном формате условия\фильтры для выборки товаров. В зависимости от параметра mode создает следующие плейсхолдеры:

[[+mspcs.where]]
[[+mspcs.option]]
[[+mspcs.tvs]]
[[+mspcs.parents]]

[[+mspcs.filters]]
[[+mspcs.aliases]]
[[+mspcs.sortAliases]]
[[+mspcs.leftJoin]]
[[+mspcs.sort]]
[[+mspcs.tpl]]

[[+mspcs.collapses]] — состояние фильтра (1- свернутый; 0-развернутый)

Пример доступа к состоянию в чанка tpl.mFilter2.filter.outer

{var $key = $table ~ $delimeter ~ $filter}
        <fieldset id="mse2_{$key}" collapsed="{$_modx->getPlaceholder('mspcs.collapses')[$key]}">
            <h4 class="filter_title">{('mse2_filter_' ~ $table ~ '_' ~ $filter) | lexicon}</h4>
            {$rows}
        </fieldset>


Сниппет должен быть вызван до того, как будут использованы плейсхолдеры.


Если задано значения для параметра snippet то никаких плейсхолдеров создано не будет, все значения будут автоматически переданы в сниппет который указан в параметре snippet.


Параметры:

  1. rid — ID ресурса из которого брать условия. Если не указан, используется ID текущего ресурса.
  2. up — Искать условия у родителей если, у текущего ресурса их нет. Может принимать значения 0|1. По умолчанию 0
  3. mode — Тип получаемых данных. 0 — условия для выборки товаров (значение по умолчанию); 1 — фильтры для mSearch2; 2 — условия для выборки товаров и фильтры
  4. snippet — Сниппет, который будет вызываться для вывода результатов работы.


Примеры:

[[msPCS]]
        [[msProducts?
        &includeTVs=`[[+mspcs.tvs]]`
        &optionFilters=`[[+mspcs.option]]`
        &where=`[[+mspcs.where]]`
        ]]

[[!msPCS?
        &mode=`1`
        &snippet=`msProducts`
        ]]

[[msPCS?&mode=`1`]]
        [[!mFilter2?
        &class=`msProduct`
        &element=`msProducts`
        &parents=`0`
        &filters=`[[+mspcs.filters]]`
        &aliases=`[[+mspcs.aliases]]`
        &sort=`[[+mspcs.sort]]`
        [[+mspcs.tpl]]
        ]]

[[msPCS? &mode=`2`]]
        [[!mFilter2?
        &class=`msProduct`
        &element=`msProducts`
        &parents=`0`
        &filters=`[[+mspcs.filters]]`
        &aliases=`[[+mspcs.aliases]]`
        &sort=`[[+mspcs.sort]]`
        [[+mspcs.tpl]]
        &where=`[[+mspcs.where]]`
        ]]

[[!msPCS?
        &mode=`2`
        &snippet=`mFilter2`
        &class=`msProduct`
        &element=`msProducts`
        &parents=`0`
        ]]

[1.0.19] - 2023-11-15

Исправлено

  • where для Tv полей

Последние обсуждения в сообществе MODX.pro