Оповещение о ЛС со звуком для uCoz

1825 просмотров Alan_Writer 23.04.2015

Наткнулся недавно на скрипт оповещения о ЛС для uCoz, естественно я давным-давно еще знал что такие скрипты существуют, но мне они казались не особо полезными и нужными, впрочем я и сейчас так считаю. Как по мне не стоит нагружать сайт дополнительным скриптом, суть которого сводиться к такой необязательной функции, проще просто где-то установить мини-профиль и там отображать кол-во непрочитанных сообщений (а чтоб они были заметней, выделить как-нибудь в css).

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

Минус именно этой версии пожалуй лишь в том, что она выводит не конкретно само пришедшее сообщение, а просто весь текст из блока со страницы сообщений, то есть если вам приходит первое сообщение в одной теме - то в оповещении вы видите именно его, но когда начинается переписка и вы получаете по этой теме второй, третий, четвертый и тд. ответы - то в уведомлении о каждом из этих ответов, вы уже не будете видеть конкретно этот ответ, а будете видеть опять таки просто текст из блока со страницы сообщений (то есть первое сообщение пришедшее в этой теме).

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

Ну и неприятной особенностью всех без исключения уведомлений о ЛС для uCoz является то, что они работают по .get-запросу, и если в скрипте будет слишком большой интервал с которым выполняется запрос - сайт вас тупо забанит по IP на три часа (это делается в целях защиты от дудоса). Решается эта проблема легко, нужно просто выставлять интервал с которым срабатывает запрос как можно больше, хотя в этом скрипте выставлено 10 сек - и норм, но в других версиях это слишком мало.

Установка скрипта

В нижнюю часть сайта ставим скрипт и небольшой кусочек стилей (скрипт можно залить в файл и подключить ссылкой, как и стиль):
Код
<script type="text/javascript">
function icqmess(){
$.get('/index/14',function(data){
$('.unread',data).each(function(){
username = $(this).parent().next().text()
link = $(this).parent().attr('href')
$.get($(this).parent().attr('href'),function(data1){
mytext = $('td[colspan=2]:odd',data1).text().split('[ Написать ответ ]')
if(mytext[0].length>40){
mn = ' ...'  
}else {mn = ''}
_uWnd.alert('<a class="messlink" target="blank" href="'+link+'">' + mytext[0].slice(0, 40) + mn + '</a>' ,username,{name: 'ls' +mytext, close:1,tm:60000})
}//data1
);//get1
$('body').append('<embed type="application/x-shockwave-flash" src="http://s104.ucoz.net/flash/audio1.swf?song_url=http://webo4ka.ru/Ucoz8/1188937250_icq.mp3&autoplay=1&loop=0" width="0" height="0"/>')
})//each
} //data
);//get
setTimeout(icqmess,10000);
}//function
icqmess();
</script>
<style>
.messlink {text-decoration: none!important;}
</style>

По сути тут только скрипт, никаких блоков и стилей нет, т.к само уведомление - это стандартное uWnd-окно.

Теперь небольшой разбор, что и за что отвечает:
  • .length>40 - максимальная длина выводимого сообщения (40 знаков).
  • tm:60000 - таймер, по истечению которого уведомление исчезает (60000 = 60 сек).
  • http://webo4ka.ru/Ucoz8/1188937250_icq.mp3 - ссылка на звуковой эффект.
  • setTimeout(icqmess,10000); - и вот самое главное, это тот самый интервал с которым срабатывает .get-запрос (10000 = 10 сек), с этим надо быть аккуратным и не ставить слишком мало.

    Ну в принципе все.

  • Теги: uWnd, сообщения, лс, оповещение, Уведомление, Звук
    0 Комментариев