Динамические выпадающие списки

Вы можете использовать выпадающий список для показа опций значений ТВ в менеджере, но что делать если вам нужно это же только во фронтэнде? Простейшим решением является создание обычной текстовой Переменной шаблона и сниппета для генерирования выпадающего списка во фронтэнде.

Эта техника пригодится, когда пользователю нужно выбрать варианты из имеющихся в списке разделённом запятыми, который задан в Переменной шаблона и показать эти опции в виде выпадающего списка в форме.

Создайте TV с названием DropdownOptions. Значение по умолчанию можно оставить как есть, но можете создать его (например, красный, синий, зелённый или @INHERIT).

Создайте сниппет "ShowDropdown" с этим кодом:

Там где нужно вывести выпадающий список вызовите его следующим образом:

MODX передаст список через запятые, который хранится в ТВ, как параметр в сниппет, который пропарсится и возвратится в виде HTML списка. Если вы хотите сделать список с мультивыбором, задайте параметр &multiple равным 1.

С некоторыми изменениями, этот приём может быть использован для создания радиокнопок, чекбоксов или (не)упорядоченных списков.

Оригинал статьи