Проверка новых комментариев в Новостях Сайта с уведомлением в uWnd окне by Apocalypse для uCoz
Около полумесяца тому назад в обратную связь поступила просьба о разработке этого скрипта. При попытке реализации я потерпел неудачу. Сегодня проснулся в 6 утра (Просто бессонница) и решил повторить попытку. Как вы можете догадаться, я всё-таки сумел реализовать задумку
Скрипт даёт возможность в любой момент проверить, есть ли новые комментарии в модуле Новости сайта. Если новые комментарии появились - информация о них будет отображена в new _uWnd() окне. Как только вы закроете окна - скрипт запомнит, что вы просмотрели эти уведомления и больше их не выдаст. При клике по ссылке рядом появится удобный индикатор, который покажет, был выполнен запрос или нет
Пришлось призвать на помощь куки, так как скрипт должен помнить, уведомления о каких комментариях пользователь уже видел. В противном случае скрипт был бы просто бесполезен
ВНИМАНИЕ! Вы должны помнить, что у информера есть своё время кеширования в 10-15 минут, так что мгновенно получать уведомления о только что поступивших комментариях не получится (Спасибо скажем системе uCoz...)
Установка:
1#: Создадим информер следующего типа:
[ Комментарии · Материалы · Дата добавления материала D · Материалы: 5 · Колонки: 1 ]
В шаблоне информера замените всё на:
1 |
<div id="$USERNAME$" class="apocom" title="$TIME$" apo="$ENTRY_TITLE$" apotxt="$ENTRY_TITLE$">$MESSAGE$</div> |
Запомните номер информера. У меня это $MYINF_1$. Если у вас другой номер - замените его во всех кодах ниже
2#: На персональную страницу пользователя:
1 |
<span id="apoinf" style="display:none;">$MYINF_1$</span> |
3#: В то место, где будет ссылка на проверку новых комментариев:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
<a href="javascript://" onclick="apotest();">Проверить</a> <img src="http://s36.ucoz.net/img/fr/ajax3.gif" id="myajapo" height="12px" style="display:none;vertical-align:-2px;"> <div id="infer2"></div> <script src="/js/cookie.js"></script> <script> // Уведомлялка о новых комментариях by Apocalypse var aponewin; var apoin = '$MYINF_1$'; if(getCookie('apoinf')) { aponewin = getCookie('apoinf'); if(aponewin!=apoin) { eraseCookie('apoinf'); setCookie('apoinf', apoin, 365); }; } else { setCookie('apoinf', apoin, 365); }; function apotest() { $('#myajapo').fadeIn(500); $('#infer2').load('/index/8-1 #apoinf', function() { $('#myajapo').fadeOut(500); $('.apocom').each(function() { if(aponewin.indexOf($(this).text())!=-1) {} else { new _uWnd($(this).attr('title'), ' Новый комментарий от '+$(this).attr('id'), 300, 120, {align:'left',autosize:0, icon:'http://s36.ucoz.net/.s/img/icon/si.png', fadetype:2, fadeclosetype:2, fadespeed:300, closeonesc:1, onclose:function() {aponewin = $('#infer2').html();}}, 'Новый комментарий: <b>'+$(this).text()+'</b><hr>Материал: <b>'+$(this).attr('apo')+'</b><hr>Время: <b>'+$(this).attr('title')+'</b>'); }; }); }); }; // apo-ucoz.com (c) 2012 </script> |
ВНИМАНИЕ! После установки скрипта при первом обновлении страницы данные заносятся в куки, так что корректно скрипт начнёт работать лишь после второго обновления страницы
Осталось лишь залить JS файл из прикреплённого архива в папку js
полезная тема очень. спасибо вам. а можно сделать что б извищение приходило в виде лс
Можно, но придётся использовать PHP
а можете сделать или это платно ?
К сожалению, моих знаний не хватит на реализацию этого