-0.83
Рейтинг
1.18
Сила

Мелкое улучшение юзабилити для формы логина

Если в форму логина ввести неверные логин/пароль, то появится сообщение
Что-то не так! Вероятно, неправильно указан логин (e-mail) или пароль.
Повторно вводим логин/пароль (тоже неправильные), жмем «войти» — идет проверка, надпись в это время не исчезает, проверка заканчивается, ничего не меняется. Пользователю может стать не понятно, это он снова ошибся, или это сбой какой-то на сайте — ведь визуально для него ничего не поменялось.
Если бы при повторном нажатии на «войти» сообщение исчезало и снова появлялось после окончания проверки, стало бы более понятно.
В файле \engine\lib\internal\template\js\user.js на 387 сообщение об ошибке убирается после возврата ответа функцией ls.ajaxSubmit.
Можно просто поправить файл user.js, перенеся всю конструкцию
if (typeof(form)=='string') {
    form=$('#'+form);
}
form.find('.validate-error-show').removeClass('validate-error-show').addClass('validate-error-hide');
на две строчки выше, тогда надпись будет исчезать сразу после нажатия на кнопку «войти».
Но там есть хук ls.hook.marker('loginBefore'); — возможно правильнее было бы его задействовать с помощью простенького плагина, чтобы не менять код движка.

Блок не отображается на странице ивента, созданной плагином

Плагин autoopenid создает свою страницу в настройках: settings/openid/ (добавляет свой event к стандартному action settings)

Правило для вывода блока прописано в глобальном конфиге:
$config['block']['myblock_rule'] = array(
    'action' => array('settings'),
    'blocks' => array('left' => array('myblock.tpl')
)

но блок myblock выводится на всех страницах экшена settings, кроме openid.
Почему, и как вывести блок в ивенте, создаваемом плагином?