📧 jGrowl в AjaxForm: Перевизначення стилів повідомлень
10.11.2017
10.11.2017
Під час використання доповнення AjaxForm для надсилання повідомлень на пошту в MODX Revolution часто виникає потреба стилізувати вікна сповіщень і перевизначити їхню стандартну поведінку.
Давайте розглянемо способи реалізації подібних завдань:
За документацією AjaxForm для стилізації jGrowl вікон (які використовуються для відображення сповіщень) можна вказати свої css і js файли через параметри сніпету AjaxForm, це параметри:
// customize AjaxForm
$(document).ready(function(){
AjaxForm.Message.success =
function(message, sticky) {
if (message) {
$.jGrowl(message, {theme: 'taleby-message-success', sticky: true});
}
};
});
Недоліки цих методів у тому, що доведеться робити копії стандартних файлів і модефікувати їхній код. А під час оновлення плагіна код ajaxform/js/default.js може змінитися. Це не критично, але є ймовірність такої події. Що саме по собі вже не дуже приємно.
Можна у своїх js-файлах переопредлить потрібний метод AjaxForm з файлу assets/components/ajaxform/js/default.js. Давайте розглянемо приклад коду, коли для вікна успіху потрібно задати властивість sticky=true (щоб вікно не зникало без явного натискання на кнопку закриття) і вказати клас теми для сповіщення, щоб було зручніше стилізувати зовнішній вигляд віджета jGrowl:
І далі можна легко стилізувати вміст вікна сповіщення AjaxForm через селектор батька div.jGrowl div.jGrowl-notification.taleby-message-success.
І активувати будь-яку з доступних властивостей компонента jGrowl.
Дивіться також