Оператор IF вывод меню
Ребят, помогите разобраться. Пытаюсь вывести разное меню на разных страницах.
Оператор сравнения с subject (&operator=`EQ`)
И если равен 8 странице, то выводится меню 1, иначе, выводится другое меню.
И всё это дело не работает, поправьте пожалуйста, что делаю не так?
[[!If? &subject=`[[*id]]` &operator=`EQ` &operand=`8`
&then=`[[pdoMenu? &level=`3` &parents=`8` &resources=`0` &rowClass=`tab`]]`
&else=`[[pdoMenu? &level=`3` &parents=`0` &resources=`0` &rowClass=`tab`]]`
]]Т.е. как я понимаю параметр, по которому выполняются условия id страницы, на которой выводится меню (&subject=`[[*id]]`).Оператор сравнения с subject (&operator=`EQ`)
И если равен 8 странице, то выводится меню 1, иначе, выводится другое меню.
И всё это дело не работает, поправьте пожалуйста, что делаю не так?
Комментарии: 9
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
И вызывать как
На странице с id == 8 параметр &parents будет заменён.
Вот как можно решить вашу задачу встроенными фильтрами модкса:
Теперь по поводу сниппета if и процесса обработки тегов модкса в целом: в отличие от чистого php, принцип работы тегов модкса такой, что вначале выполняются вложенные функции, а уже после — внешние.
Например, возьмем пример реализации одной и той же задачи при помощи php и функционала modx'a:
Php
Теги modx
Если с примером на php логика работы понятна, то последовательность выполнения второго примера следующая:
— выполняем сниппет 1
— выполняем сниппет 2
— проверяем страницу и показываем нужный результат
Из-за такой особенности в свое время сайты на modx'e становились жутко тормозными. И заслуга сниппета if в этом деле далеко не на последнем месте…
Надеюсь, объяснил достаточно понятно)
Остановился на этом решении
Варианта 2 (если без сниппетов)
т.е. в идеале нужно добавить два сниппета разных меню, и вывести?
про fenom читал, но тоже я так понял нужно использовать сниппеты?