Скрипт автоматически проверяет наличие непрочитанных личных сообщений для авторизованных пользователей. При обнаружении новых ЛС скрипт выводит всплывающее окно (_uWnd) с уведомлением, в котором отображается количество новых сообщений с правильным склонением (1 сообщение, 2 сообщения, 5 сообщений), а также список отправителей и ссылки на эти сообщения. Проверка выполняется каждые 10 секунд без перезагрузки страницы.

Особенности:

  • Работает только для залогиненных пользователей ($USER_LOGGED_IN$).
  • Игнорирует системные уведомления (если $UNREAD_PM$ меньше или равно 1).
  • Использует AJAX для фоновой загрузки данных.
  • Динамически подгружает имена отправителей и ссылки.


Код
<?if($USER_LOGGED_IN$ || $UNREAD_PM$>1)?>
  <script type="text/javascript">  
  $.get('/index/14', function(data){  
  $('b.unread', data).each(function() {  
  var UserName = $(this).parent('a').next().text();  
  function tMess(n){var a=[' новое сообщение',' новых сообщения',' новых сообщений'];return a[n%10==1&&n%100!=11?0:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?1:2]}; function getPM(){$.get("/index/14",function(a){var s=$("b.unread",a).size();if (s) {var n=tMess(s),all=[],leg=(s==1)?'Сообщение':'Сообщения';$("b.unread",a).each(function(){var title = $(this).html(), href = $(this).parent().attr("href"); all.push('» <a href="'+href+'">'+title+'</a> от '+UserName+'');}); new _uWnd('ls','Новые ЛС',285,120,{align:'left'},'<fieldset><legend>Уважаемый пользователь</legend>У Вас '+s+n+'!</fieldset><fieldset><legend>'+leg+'</legend>'+all.join("<br>")+'</fieldset>');}});setTimeout(getPM,10000)};getPM();  
  });  
  });  
  </script>  
<?endif?>