Условие в MODX, условие and if при помощи сниппета if в MODX

Столкнулся с проблемой при верстке сайта на MODX - у меня меню - иконки, причем когда я нажимаю на конкретную иконку она пропадает и под логотипом появляется надпись - название категории.

Первое что очевидно, но делать не хочется - множественные шаблоны, благо MODX это позволяет, но решение явно не изящное. Решение есть и это пакет MODX - "if". Устанавливаем его и теперь можно сделать следующие вещи:

[ [!If? &subject=`[ [*id]]` &operator=`in_array` &operand=`1` &then=`[ [$chank1]]`]]
[ [!If? &subject=`[ [*id]]` &operator=`in_array` &operand=`2` &then=`[ [$chank2]]`]]

В чанках нужный мне кусок кода меню)

Можно сразу код:

[ [!If? &subject=`[ [*id]]` &operator=`in_array` &operand=`2` &then=`(Пункт меню1),(Пункт меню3),(Пункт меню4)`]]
[ [!If? &subject=`[ [*id]]` &operator=`in_array` &operand=`2` &then=`(Пункт меню1),(Пункт меню2),(Пункт меню4)`]]

 Можно использовать условие (опять же что бы не плодить кучу шаблонов) для некликабельного Логотипа на главной странице:

[ [!If? &subject=`[ [*id]]` &operator=`in_array` &operand=`1` &then=`<img src="logo.png" alt="" />`
&else=`<a href="http://site.ru/"><img src="logo.png" alt="" /></a>`]]

В двух словах что тут написано):

Первое - субъект, в нашем случае id и из оператора понятно что id наших документов, далее операнд - это конкретные id документа, либо документов через запятую)

Возможны также более сложные варианты:

[ [!If? &subject=`[ [*id]]` &operator=`in_array` &operand=`12,48` &then=`
[ [!If? &subject=`[ [*id]]` &operator=`in_array` &operand=`1` &then=`действие1`]]
[ [!If? &subject=`[ [*id]]` &operator=`in_array` &operand=`2` &then=`действие2`]]
`&else=`действие`]]

Очевидно что можно использовать как, например, для верхнего меню с активными классами, когда присутствует, например, боковое меню, выведенное через Wayfinder, так и довольно сложные схемы. Например для поднятия форума на MODX


Комментарии (0)



Разрешённые теги: <b><i><br>Добавить новый комментарий:


Создание сайтов в студии go-up.info