Не работают модификаторы применяемые к Ошибкам
        Приветствую бойцы!
Нужна помощь!
Есть сниппет:
Если выводить вот так:
Но, если выводить с применением модификатора вот так:
Прошу помощи или разъяснения! Заранее спасибо!
    
    
                                                                                
            Нужна помощь!
Есть сниппет:
[[!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
                Так и думал, но все же, раньше работало, почему перестало не пойму.
Оказывается Модификатор почему то не работал именно из-за того, что вывод ошибки с модификатором стояла перед вызовом сниппета, а не после.
Но раньше работало и так, но вот опять таки вопрос, почему вызво без модификатора до вызова сниппета работает, а с модификатором отказывается?
                    Оказывается Модификатор почему то не работал именно из-за того, что вывод ошибки с модификатором стояла перед вызовом сниппета, а не после.
Но раньше работало и так, но вот опять таки вопрос, почему вызво без модификатора до вызова сниппета работает, а с модификатором отказывается?
                потому что модификатор это тоже в некотором роде сниппет, и он пытается отработать до того, как отработает сниппет, возвращающий ошибку. То есть в этот момент еще никто ничего не вернул, и модификатор обрабатывает пустое место. Это и раньше работать не могло, если только Вы ошибки без восклицательного знака вызывали.            
                    Это и раньше работать не могло, если только Вы ошибки без восклицательного знака вызывали.Могло и может. Всё очень просто. Парсер по умолчанию гоняет 10 циклов. Если за 9 циклов он не обработает какой-нибудь плейсхолдер, то на 10-й раз он его удалит.
В данном случае, парсер в первом проходе проверяет плейсхолдер [[!+cp.error_message]]. Он пустой, поэтому остается не обработанным. Далее обрабатывается тег сниппета. Он (сниппет) выставляет этот плейсхолдер. Во втором цикле парсер проверяет оставшиеся плейсхолдеры и на этот раз распарсивает этот плейсхолдер.
А когда используется фильтр notempty, то плейсхолдер обрабатывается сразу же. Т.е. парсер на первом цикле вернет или пустое значение или указанное в фильтре. На втором круге парсить уже нечего.
Как-то так.
                рмишщзлхз            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.