Фильтр через checkbox в modx revo как правильно вывести?

Для создания фильтра через checkbox в MODX Revolution (Revo) следуйте следующим шагам:

  1. Создание TV (Template Variable):
  • Зайдите в раздел "Элементы управления" в административной панели MODX.
  • Нажмите на "Пользовательские шаблоны переменных".
  • Нажмите на кнопку "Создать модуль переменных" и заполните необходимые поля, такие как "Название" и "Имя поля".
  • В поле "Параметры" укажите input Option A==Option A||input Option B==Option B, где "Option A" и "Option B" - это значения фильтра checkbox. Вы можете добавить больше значений, разделяя их двумя вертикальными палками ||. Нажмите "Сохранить".
  1. Добавление TV к шаблону:
  • Откройте редактор шаблонов в разделе "Разработка" в административной панели MODX.
  • Выберите шаблон, к которому хотите добавить фильтр через checkbox, и нажмите на кнопку "Редактировать".
  • В поле "TVs" выберите созданный вами TV с фильтром checkbox. Нажмите на "Сохранить".
  1. Создание сниппета для вывода фильтра:
  • В административной панели MODX перейдите в раздел "Элементы управления" и выберите "Сниппеты".
  • Нажмите на кнопку "Создать" и заполните необходимые поля, такие как "Название" и "Код сниппета".
  • В коде сниппета вы можете использовать функции MODX API для получения значения TV, например:
     <?php
     $filterValue = $modx->resource->getTVValue('tvName');
     return $filterValue;
     ?>

Вместо 'tvName' укажите имя вашего TV.

  • Нажмите "Сохранить" для создания сниппета.
  1. Создание чанка для отображения результатов фильтрации:
  • В разделе "Элементы управления" перейдите в "Чанки".
  • Нажмите на кнопку "Создать" и заполните необходимые поля, такие как "Название" и "Код чанка".
  • В коде чанка вы можете использовать полученное значение $filterValue для фильтрации контента, например:
     <ul>
     [[!pdoResources?
         &parents=`0`
         &tpl=`yourTemplate`
         &depth=`-1`
         &where=`{"tvName:=": "[[+filterValue]]"}`
     ]]
     </ul>

Здесь yourTemplate - это имя вашего шаблона для отображения результатов фильтрации.

  • Нажмите "Сохранить" для создания чанка.
  1. Вставка сниппета и чанка на страницу:
  • Откройте редактор ресурсов в административной панели MODX.
  • Найдите страницу, на которой вы хотите вставить фильтр через checkbox, и нажмите на кнопку "Редактировать".
  • Вставьте сниппет, созданный в пункте 3, на страницу с помощью тега [[!snippetName]].
  • Вставьте чанк, созданный в пункте 4, на страницу с помощью тега [[+chunkName]].
  • Нажмите "Сохранить" для применения изменений.

Теперь вы должны иметь фильтр через checkbox на вашей странице MODX Revo. При выборе значения checkbox контент будет фильтроваться и показываться только соответствующий результат.