[EVO] Проверить пустой TV-параметр или нет [РЕШЕНО]

Задача такая, с помощью модификатора IF проверить пустое ли поле или нет, если пустое [*words*] не выводить, а если заполнено то вывести.

Я по совету dmi3yy написал такое условие [[if?is=`[*words*]:!=:` &then=`пусто`]]

Поле у меня это заполнено, но он всё равно выдает «пусто», если я просто вывожу параметр [*words*], то всё выводит нормально.

Что я делаю не так? Помогите! Вроде и тв параметр выводит, а вот условие не правильно работает :(

Еще нужен совет, как с помощью этого же модификатора поставить такое условие: Если в дитто пагинации одна страница — то пагинацию не выводить, а если больше одной то выводить?

Пользуюсь последней сборкой Дмитрия на базе ево 1.0.10

Всем спасибо заранее за советы и решения!

14 комментариев

avatar
Проверка на заполненность:
[[if? &is=`[*ваш_тв*]:!empty:` &then=`` ]]
avatar
Не работает :( выводит значение then, будто тв параметр пустой, а он не пустой!
avatar
Не может такого быть в принципе. Вы на странице вызываете или через Ditto? А то некоторые забывают звездочки на + менять. И вообще можно в студию как вы применили что у вас не работает? Код в смысле.
avatar
ТВ параметр на обычной главной странице. Проверка на заполненность в обычном чанке. проверяю так [[if? &is=`[*words*]:!empty:` &then=`пусто` ]]

В итоге он выводит значение «Пусто»

Если я убираю проверку, и просто пишу [*words*], то всё выводит.
avatar
Ну правильно. !empty это проверка. Если тв заполнен, то выводим, иначе нет. То есть если не вводить никого значения, то будет пусто. А если вам надо обратная проверка, то используйте isempty

А вообще рекомендую такую страничку где понятней уже некуда: wiki.modx.im/evolution:snippets:if
avatar
Попробовал вот так:
[[if? &is=`[*words*]:isempty:` &then=`пусто` ]]

Вообще ничего не выводит :(
avatar
Это удивительно, но заработал такой вариант:
[[if? &is=`[*words*]:isempty:` &then=`пусто` &else=`[*words*]` ]]
avatar
А когда делаешь правильно это всегда кажется удивительным.
avatar
Насчет пагинации — а зачем это вам если вы сборку используете? там это и так уже есть.
avatar
а да, точно, есть такое)
avatar
Еще обратите внимание на разделитель. Надо объявлять тот, которого точно не будет в строке.
avatar
Какой разделитель?
avatar
Который разделяет данные и условия в is. По-умолчанию двоеточие. проверял ссылку типа http:// и не мог понять. почему глючит. Потом разделитель указал другой и все ок.
avatar
а я бы использовал phx вместо всех эти запорочек:

[*words:ifempty=`пусто`*] — выведет [*words*] если не пусто и слово «пусто» если пусто.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.