Не работают модификаторы применяемые к Ошибкам
Приветствую бойцы!
Нужна помощь!
Есть сниппет:
Если выводить вот так:
Но, если выводить с применением модификатора вот так:
Прошу помощи или разъяснения! Заранее спасибо!
Нужна помощь!
Есть сниппет:
[[!ChangePassword?
&submitVar=`change-password`
&placeholderPrefix=`cp.`
&validateOldPassword=`1`
&successMessage=`Ваш пароль успешно изменен!`
&reloadOnSuccess=`1`
&redirectToLogin=`0`
&validate=`nospam:blank`
]]и вывод плейсхолдера ошибки:[[!+cp.error_message]]Теперь странность!Если выводить вот так:
[[!+cp.error_message]] — все работает, ошибки выводятся!Но, если выводить с применением модификатора вот так:
[[!+cp.error_message:notempty=`[[!+cp.error_message]]`]] — То почему ошибка не выводится! Почему хочется так? Чтобы обернуть ошибку в красивую оболочку, что то вроде:[[!+cp.error_message:notempty=`<div class="errore">[[!+cp.error_message]]`]]</div>Ну ясное дело только труднее коснтрукция!Прошу помощи или разъяснения! Заранее спасибо!
Комментарии: 4
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Оказывается Модификатор почему то не работал именно из-за того, что вывод ошибки с модификатором стояла перед вызовом сниппета, а не после.
Но раньше работало и так, но вот опять таки вопрос, почему вызво без модификатора до вызова сниппета работает, а с модификатором отказывается?
В данном случае, парсер в первом проходе проверяет плейсхолдер [[!+cp.error_message]]. Он пустой, поэтому остается не обработанным. Далее обрабатывается тег сниппета. Он (сниппет) выставляет этот плейсхолдер. Во втором цикле парсер проверяет оставшиеся плейсхолдеры и на этот раз распарсивает этот плейсхолдер.
А когда используется фильтр notempty, то плейсхолдер обрабатывается сразу же. Т.е. парсер на первом цикле вернет или пустое значение или указанное в фильтре. На втором круге парсить уже нечего.
Как-то так.