General > Русский (ru)

Мигающий favicon для плагина Title Notification

(1/1)

R.V.:
Приветствую.

Поскольку, мигающий Title не всегда виден, я решил поделиться своим небольшим тюнингом для официального плагина Title Notification.
Данное решение позволит оператору не пропустить новый диалог или сообщение благодаря мигающему favicon. Мигание прекращается как только оператор откроет вкладку браузера с чатом или страницей посетителей.

1. В _layout.handlebars шаблонов по путям ниже необходимо добавить id="favicon", в шестой строке.
/styles/chats/default/templates_src/server_side/_layout.handlebars
/styles/pages/default/templates_src/server_side/_layout.handlebars
Вместо:

--- Code: ---<link rel="shortcut icon" href="{{asset "@CurrentStyle/images/favicon.ico"}}" type="image/x-icon" />
--- End code ---
Это:

--- Code: ---<link rel="shortcut icon" id="favicon" href="{{asset "@CurrentStyle/images/favicon.ico"}}" type="image/x-icon" />
--- End code ---

2. В двух файлах, chat_plugin.js и users_plugin.js, в каталоге /plugins/Mibew/Mibew/Plugin/TitleNotification/js

Заменяем строку 38

--- Quote ---Mibew.Objects.Collections.messages.on('add', function(model) {
--- End quote ---
На

--- Quote ---Mibew.Objects.Collections.messages.on('add', function(model) {
            var icon        = '/styles/pages/default/images/favicon.ico';
            var iconNew     = '/styles/pages/default/images/favicon.gif';
             document.getElementById('favicon').href = iconNew;   
            $(window).bind("focus", function() {
            document.getElementById('favicon').href = icon;
            });
--- End quote ---

3. Залить в каталог /styles/pages/default/images/ анимированный  favicon.gif который прикреплен к этой теме.

Думаю, можно доработать плагин, что-бы данная возможность стала опциональной через конфиг. Или вообще, выделить новый плагин на это дело, хотя я бы скрестил с текущим.

Надеюсь, кому-то пригодится  8)

P.S. Возможно, анимированный favicon не работет в Chrome.


Dmitriy Simushev:
Если Вы создадите pull request в репозиторий плагина (https://github.com/Mibew/title-notification-plugin), мы обязательно рассмотрим возможность включения изменений в официальную версию.

R.V.:

--- Quote from: Dmitriy Simushev on April 29, 2015, 08:59:33 AM ---Если Вы создадите pull request в репозиторий плагина (https://github.com/Mibew/title-notification-plugin), мы обязательно рассмотрим возможность включения изменений в официальную версию.

--- End quote ---

До этого не приходилось, поэтому пока не совсем разобрался как собственно pull request  сделать без создания fork'a. Или без него никак, и с него и нужно начинать? Пару строк же добавить.

Плюс, нужно внести небольшое дополнение и в шаблон админки, а это отдельно от плагина.
 

Dmitriy Simushev:

--- Quote ---До этого не приходилось, поэтому пока не совсем разобрался как собственно pull request  сделать без создания fork'a. Или без него никак, и с него и нужно начинать?
--- End quote ---

Без fork'а никак. Алгоритм работы примерно следующий:
1. Создать fork
2. Создать ветку для изменений
3. Сделать изменения в коде
4. Сделать коммит в ветку из пункта 2
5. Сделать pull request

Подробнее процесс описан в документации GitHub: https://help.github.com/articles/using-pull-requests/


--- Quote ---Плюс, нужно внести небольшое дополнение и в шаблон админки, а это отдельно от плагина.
--- End quote ---
А вот тут Вы не правы. Не обязательно использовать ID для досупа к тегу link содержащему favicon. В Mibew есть jQuery, а это значит, что Вы можете использовать селектор вида:

--- Code: ---$('link[rel*="icon"]')
--- End code ---
для получения нужного тега link. Таким образом, нет необходимости менять ядро Mibew.

Navigation

[0] Message Index

Go to full version