Применения multiTV в Ditto multiTvFilter экстендер Ditto PHx модификаторы.
Так как строка JSON в multiTV начинается с (Примечание 1), вы не можете проверить multiTV на пустоту, т.е. .
Но вы могли бы использовать в этом случае PHx модификаторы из папки phx-modifier. Переместите два файла из этой папки в assets/plugins/phx/modifiers.
Пример использования:
Если docid не установлен, по умолчанию используется текущий документ.
Для фильтрации строк, отображаемых Ditto воспользуйтесь экстендером multiTvFilter.
| Параметр | Описание |
|---|---|
| multiTvFilterBy | (обязательный параметр) имя переменной multiTV |
| multiTvFilterOptions | json-массив параметров фильтра |
Могут быть использованы следующие параметры фильтра
| Параметр | Описание |
|---|---|
| name | имя поля mulitTV, которое используется для фильтрации |
| type | тип содержимого поля multiTV (возможные варианты: date, text) |
| value | Значение поля multiTV для фильтрации |
| mode | режим фильтрации содержимого поля multiTV |
| conjunction | Логическая связь с предыдущим фильтром (AND/OR) |
Следующие режимы могут быть использованы для поля типа text:
| Тип сравнения | Описание |
|---|---|
| contains | фильтровать, если хотя бо одно поле содержит текст критерия |
| allcontains | фильтровать, если все поля содержат текст критерия |
| containsnot | фильтровать, если одно из полей не содержит текст критерия |
| allcontainsnot | фильтровать, если все поля не содержат текст критерия |
| is | фильтровать если одно поле соответствует критерию |
| allis | фильтровать если все поля соответствуют критерию |
| isnot | фильтровать, если одно из полей не соответствует критерию |
| allisnot | фильтровать, если все поля не соответствуют критерию |
Следующие режимы могут быть использованы для поля типа date:
| Тип сравнения | Описание |
|---|---|
| before | фильтровать, если одно поле меньше критерия |
| beforeall | фильтровать, если все поля меньше критерия |
| equal | фильтровать, если одно поле равно критерию |
| equalall | фильтровать, если все поля равны критерию |
| after | фильтровать, если одно поле больше критерия |
| afterall | фильтровать, если все поля больше критерия |
Показать все дочерние документы контейнеров 3, 4 и 5, у которых переменная шаблона multiTV event в столбце title не содержит Important
Если вы хотите фильтровать по нескольким значениям multiTV, добавьте еще один массив в multiTvFilterOptions. В этом примере отобразятся все дочерние документы контейнеров 3, 4, и 5 у которых переменная шаблона multiTV event в столбце title не содержит Important и все столбцы location соответствуют Outdoor.
Версия 1.4.11 multiTV использует новый формат данных (имена столбцов сохраняются в виде ключ - значение). Переменная и сниппет поддерживают старый и новый форматы, так что вам не придется обновлять multiTVs. Но вам это потребуется, если вы захотите добавить/удалить столбцы в multiTVs. Вызовите сниппет в документе MODX следующим образом:
[!updateTV? &tvNames=`yourMultiTVname1,yourMultiTVname2`!]
| Параметр | Описание | Значение по умолчанию |
|---|---|---|
| tvNames | (обязательно) разделенный запятыми список имен переменных, которые содержат данные multiTV | - |