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

Дополнение: ModPNotify, minishop2

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

Комментарии (2)

  1. Александр 12 августа 2016, 19:03 # +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
            });
    }
                    }
    

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