Смена уведомлений с jGroul на ModPNotify

Добрый день. Ни кто на практике не сталкивался со сменой уведомлений с jGroul на ModPNotify. Подскажите пожалуйста где и что менять.
taxsin
12 августа 2016, 12:40
modx.pro
10
3 075
0

Комментарии: 2

Александр
12 августа 2016, 19:03
1
+5
Речь идет видимо о уведомления PNotify которые использую в выше обозначенном пакете. Вам необходимо поменять js компонента который работает с jGrowl. Вы не уточнили компонент, который выводит окошки. Если нужно поменять скрипт для всех событий на сайте связанных с отображением окошек оповещений, то для это нужно проделать операцию описанную ниже для всех компонентов. Принцип работ один и тот-же.

На примере компонента miniShop2 скопируйте файл по пути написанному ниже в отдельную папку чтобы не затрагивать исходники минишопа. Пропишите новый путь в системную настройку ms2_frontend_js (данная настройка есть у AjaxForm также и у других стандартных компонентов из modstore)

/assets/components/minishop2/js/web/default.js

Подключите на сайте: PNotify

<script type="text/javascript" src="pnotify.custom.min.js"></script>
<link href="pnotify.custom.min.css" media="all" rel="stylesheet" type="text/css" />

Найдите следующий кусок кода в js файле:

if (typeof($.fn.jGrowl) != 'function') {
                $.getScript(miniShop2Config.jsUrl + 'lib/jquery.jgrowl.min.js', function () {
                    miniShop2.Message.initialize();
                });
            }
            else {
                $.jGrowl.defaults.closerTemplate = '<div>[ ' + miniShop2Config.close_all_message + ' ]</div>';
                miniShop2.Message.close = function () {
                    $.jGrowl('close');
                };
                miniShop2.Message.show = function (message, options) {
                    if (message != '') {
                        $.jGrowl(message, options);
                    }
                }
            }

Удалите следующий код:

if (typeof($.fn.jGrowl) != 'function') {
                $.getScript(miniShop2Config.jsUrl + 'lib/jquery.jgrowl.min.js', function () {
                    miniShop2.Message.initialize();
                });
            }
            else {
...... не удаляемое ....

}

Замените данный код:

$.jGrowl.defaults.closerTemplate = '<div>[ ' + miniShop2Config.close_all_message + ' ]</div>';
                miniShop2.Message.close = function () {
                    $.jGrowl('close');
                };
                miniShop2.Message.show = function (message, options) {
                    if (message != '') {
                        $.jGrowl(message, options);
                    }
                }

на это:

miniShop2.Message.close = function () {
                    PNotify.removeAll()
                };
miniShop2.Message.show = function (message, options) {
                    if (message != '') {
new PNotify({
            title: 'Сообщение',
            text: message
        });
}
                }

Данная инструкция условная, не проверялась.
    Роман Садоян
    12 августа 2016, 21:22
    0
    Как приятно читать грамотный комментарий, исправился, аж самому захотелось сменить jGrowl)))
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2