Author Topic: Мигающий favicon для плагина Title Notification  (Read 6304 times)

0 Members and 1 Guest are viewing this topic.

R.V.

  • Full Member
  • ***
  • Posts: 6
Приветствую.

Поскольку, мигающий 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: [Select]
<link rel="shortcut icon" href="{{asset "@CurrentStyle/images/favicon.ico"}}" type="image/x-icon" />Это:
Code: [Select]
<link rel="shortcut icon" id="favicon" href="{{asset "@CurrentStyle/images/favicon.ico"}}" type="image/x-icon" />
2. В двух файлах, chat_plugin.js и users_plugin.js, в каталоге /plugins/Mibew/Mibew/Plugin/TitleNotification/js

Заменяем строку 38
Quote
Mibew.Objects.Collections.messages.on('add', function(model) {
На
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;
            });

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

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

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

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


« Last Edit: April 28, 2015, 08:17:58 PM by R.V. »

Dmitriy Simushev

  • Moderator
  • Native
  • *****
  • Posts: 345
Re: Мигающий favicon для плагина Title Notification
« Reply #1 on: April 29, 2015, 08:59:33 AM »
Если Вы создадите pull request в репозиторий плагина (https://github.com/Mibew/title-notification-plugin), мы обязательно рассмотрим возможность включения изменений в официальную версию.

R.V.

  • Full Member
  • ***
  • Posts: 6
Re: Мигающий favicon для плагина Title Notification
« Reply #2 on: April 29, 2015, 09:56:47 PM »
Если Вы создадите pull request в репозиторий плагина (https://github.com/Mibew/title-notification-plugin), мы обязательно рассмотрим возможность включения изменений в официальную версию.

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

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

Dmitriy Simushev

  • Moderator
  • Native
  • *****
  • Posts: 345
Re: Мигающий favicon для плагина Title Notification
« Reply #3 on: April 30, 2015, 09:45:10 AM »
Quote
До этого не приходилось, поэтому пока не совсем разобрался как собственно pull request  сделать без создания fork'a. Или без него никак, и с него и нужно начинать?

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

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

Quote
Плюс, нужно внести небольшое дополнение и в шаблон админки, а это отдельно от плагина.
А вот тут Вы не правы. Не обязательно использовать ID для досупа к тегу link содержащему favicon. В Mibew есть jQuery, а это значит, что Вы можете использовать селектор вида:
Code: [Select]
$('link[rel*="icon"]')для получения нужного тега link. Таким образом, нет необходимости менять ядро Mibew.