Приветствую Вас Прохожий | RSS Четверг, 08.12.2016, 09:00
Меню сайта
ВИДЕО УРОКИ СКРИПТЫ UCOZ ШАБЛОНЫ UCOZ ФОТОШОП UCOZ КАТАЛОГ СТАТЕЙ ВЕБМАСТЕРУ UCOZ ВИДЕО ФОТОШОПА ДОПОЛНЕНИЕ САЙТА РАЗДЕЛ СТУДИИ УСЛУГИ НАШЕГО САЙТА


Мини-чат
Все вопросы задаем в форуме,
здесь они игнорируются!



Статистика
Онлайн всего: 6
Гостей: 5
Пользователей: 1
alexman91



Главная » Файлы » Скрипты для uCoz » Скрипты php для ucoz

Быстрое оповещение ЛС как на сайте VK.COM для uCoz

Быстрое оповещение ЛС как на сайте VK.COM для uCoz Быстрое, оповещение, ЛС, сайте, VK
Всем привет, вот решил написать небольшой скрипт мгн. оповещений как на ВК.
Потребление трафика минимальное, UCOZ не банит, мгн. запрос\ответ
Оповещений можно сделать сколько угодно. При изменении base.php изменения вступаю в силу без перезагрузки страницы, как на ВК

Установка:
В любом шаблоне перед </body> пишем:
В любом шаблоне перед пишем:
Code
<div class="uBox"></div>
создаём папку js и в ней два файла: cookie.js, ualert.js и вставляем перед
В ualert.js пишим:
Code
setTimeout(function () {  
   
  var source = new EventSource('/php/evstream/index.php');  
  source.addEventListener('message', function(e) {  
  // Пришли какие-то данные  
  var data = e.data;  
  data = data.split('alert: ');  
  eval('var newalert = '+data[1]+';');  

  for( i = 0; i < 4; i++ ){  
  if(!$('#uBox_'+newalert[i].id).html() && cookie('uBox_'+newalert[i].id)==null){  
  $('#pmm_player').remove();  
  $('body').append('<embed type="application/x-shockwave-flash" id="pmm_player" src="http://usite.su/images/player.swf?song_url=http://usite.su/images/new_ls.mp3&autoplay=1&loop=0" width="0" height="0"/>');  
  $('.uBox').animate({bottom:'10'}, {queue:false}).fadeIn().append('<div class="uBoxMesssge" id="uBox_'+newalert[i].id+'"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td colspan="2" valign="top" align="left" class="uBoxTitle"><div class="uBox_close"><a class="uBox_close_s" title="Закрыть" href="javascript://" onclick="ualert_hide('+newalert[i].id+')"></a></div><b>Новое уведомление от '+newalert[i].title+'</b></td></tr><tr><td rowspan="2" width="50px" valign="top"><a href="/index/8-0-"><img class="uBoxAva" src="'+newalert[i].photo+'" border="0"></a></td><td valign="top" align="left" class="uBoxTheme">Тема: '+newalert[i].message+'</td></tr><tr><td valign="top" align="left" class="uBoxMessaged"><a style="word-wrap:break-word;text-decoration:none;text-align:left" href="javascript://"></a></td></tr></table></div>');  
  }  
  }  
  }, false);  

  source.addEventListener('open', function(e) {  
  // Соединение было открыто  
  }, false);  

  source.addEventListener('error', function(e) {  
  if (e.eventPhase == EventSource.CLOSED) {  
  // Соединение закрыто  
  }  
  }, false);  

  }, 5);  

  function ualert_hide(id){  
  cookie('uBox_'+id, '1', {expires: 1});  

  $('#uBox_'+id).animate({bottom:'10'}).fadeOut();  

  }
В cookie.js пишим:
Code
function cookie(name, value, options) {  
  if (typeof value != 'undefined') {  
  options = options || {};  
  if (value === null) {  
  value = '';  
  options.expires = -1;  
  }  
  var expires = '';  
  if (options.expires && (typeof options.expires == 'number' ||  
  options.expires.toUTCString)) {  
  var date;  
  if (typeof options.expires == 'number') {  
  date = new Date();  
  date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));  
  } else {  
  date = options.expires;  
  }  
  expires = '; expires=' + date.toUTCString();  
  }  
  var path = options.path ? '; path=' + (options.path) : '';  
  var domain = options.domain ? '; domain=' + (options.domain) : '';  
  var secure = options.secure ? '; secure' : '';  
  document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain,  
  secure].join('');  
  } else {  
  var cookieValue = null;  
  if (document.cookie && document.cookie != '') {  
  var cookies = document.cookie.split(';');  
  for (var i = 0; i < cookies.length; i++) {  
  var cookie = jQuery.trim(cookies[i]);  
  if (cookie.substring(0, name.length + 1) == (name + '=')) {  
  cookieValue = decodeURIComponent(cookie.substring(name.length + 1));  
  break;  
  }  
  }  
  }  
  return cookieValue;  
  }  
  };
Создаём в папке php папку evstream, в ней создаём 2 файла: base.php, index.php
Своего рода базой является base.php, в нём пишем:
Code
<?  
  /*  
  //Автор: faforty  
  Файл: base.php  
  Назначение: исполняет роль базы оповещений  
  */  
  if (! defined ( 'FAFORTYDEV' )) {  
  die ( "Hacking attempt!" );  
  }  
  $base_alert = array(  
  '1' => array(  
  'title' => 'ВКурсе. Первый журнал', //Название оповещения  
  'message' => 'Самая редкая кошка на планете: фото', //Сообщение  
  'photo' => 'http://cs6005.userapi.com/u76040944/d_f0af6997.jpg', //Url на фото  
  'group_id' => '1,3,4', //id групп через запятую, для которых выводить оповещение, 0 - для всех групп  
  'user_id' => '0', //id пользователей для которых выводить сообщение, 0 - для всех пользователей  
  'active' => '1' //1 - оповещание активно, 0 - неактивно  
  ),  
  '2' => array(  
  'title' => 'ВКурсе. Первый журнал',  
  'message' => 'Самая быстрая машина в мире: фото',  
  'photo' => 'http://cs6005.userapi.com/u76040944/d_f0af6997.jpg',  
  'group_id' => '0',  
  'user_id' => '0',  
  'active' => '1'  
  )  
  );
В файле index.php:
Code
<?  
  //Автор: faforty  
  $___notjson = 1;  

  header('Content-Type: text/event-stream');  
  header('Cache-Control: no-cache');  

  @error_reporting ( E_ALL ^ E_WARNING ^ E_NOTICE );  
  @ini_set ( 'display_errors', true );  
  @ini_set ( 'html_errors', false );  
  @ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE );  

  define ( 'FAFORTYDEV', true );  

  $domen = "http://".$_SERVER['HTTP_HOST'];  

  require_once('./base.php');  

  function sendMsg($id, $msg) {  
  echo "id: $id" . PHP_EOL;  
  echo "data: $msg" . PHP_EOL;  
  echo PHP_EOL;  
  ob_flush();  
  flush();  
  }  
  $serverTime = time();  

  foreach($base_alert as $key => $massiv)  
  {  
  $group_id = $massiv['group_id'];  
  $user_id = $massiv['user_id'];  
  $my_user = ucoz_getinfo("SITEUSERID");  
  $v_arr = array('id' => $key, 'title' => $massiv['title'],'message' => $massiv['message'],'photo' => $massiv['photo']);  
  if($massiv['active']){  
  if($group_id==0 && $user_id==0){  
  $var_js[]= $v_arr;  
  }else{  

  $m_group = explode(',',$group_id);  
  $m_user = explode(',',$user_id);  
   
  foreach($m_group as $group){  
  foreach($m_user as $user){  
  $user_data = xmlrpc_decode(file_get_contents($domen."/api/index/8-".$my_user), "utf8");  
  if(($user == 0 || $user == $user_data["USER_ID"]) && ($group == 0 || $group == $user_data["USER_GROUPID"])){  
  $var_js[]= $v_arr;  
  }  
  }  
  }  
  }  

  }  
  }  

  sendMsg($serverTime, 'alert: '. json_encode($var_js));  
  ?>
И на последок осталось добавить css. Создаём папку css и там ualert.css:
Code
.uPM{  
  position:relative;z-index:9999  
  }  
  .uBox{  
  position:fixed;bottom:5px;right:5px;z-index:9999  
  }  
  .uBoxMesssge{  
  display:none;  
  padding: 5px;  
  margin-bottom: 10px;  
  width:300px;  
  background: url(http://usite.su/images/uContent-bg.png);  
  padding: 7px;  
  -webkit-border-radius: 5px;  
  -moz-border-radius: 5px;  
  border-radius: 5px;  
  -moz-box-shadow: 0px 2px 7px rgba(0, 0, 0, 0.70);  
  -webkit-box-shadow: 0px 2px 7px rgba(0, 0, 0, 0.70);  
  box-shadow: 0px 2px 7px rgba(0, 0, 0, 0.70);  
  }  
  .uBoxTitle b{  
  font: bold 11px Tahoma !important;  
  }  
   
  .uBoxMesssge *{  
  font: 11px Tahoma;  
  color:#fff;  
  text-shadow:0px 1px 0px rgba(0, 0, 0, 0.70);  
  }  
  .uBoxAva{  
  -webkit-border-radius: 3px;  
  -moz-border-radius: 3px;  
  border-radius: 3px;  
  width:50px;  
  }  
   
  .uBox_close{  
  background: #000;  
  -moz-border-radius: 3px;  
  -webkit-border-radius: 3px;  
  border-radius: 3px;  
  -moz-box-shadow: 0 0 2px #111;  
  -webkit-box-shadow: 0 0 2px #111;  
  box-shadow: 0 0 2px #111;  
  padding: 5px;  
  margin: 0 0 0 10px;  
  opacity: 0.6;  
  width: 7px;  
  float:right  
  }  
   
  .uBox_close_s{  
  display: block;  
  background: url("http://usite.su/images/notifier_close.gif") no-repeat scroll 0 0 transparent;  
  opacity: 0.6;  
  width: 7px;  
  height: 7px;  
  }  
  .uBox_close_s:hover{  
  opacity: 1.0;  
  }  
  .uBoxTheme{  
  padding-left:5px;  
  color:#bbb;  
  }  
  .uBoxMessaged{  
  padding-left:5px;  
  }  
  .uBoxMessaged a{  
  color:#fff;  
   
  }
Автор\Источник: http://usite.su

Для того что бы скачать архив необходимо зайти на сайт как пользователь.
Просмотров: 3841 | Комментарии: 3 | Рейтинг: 2.5/8 | |Категория: Скрипты php для ucoz | Добавил: мир | Дата: 14.05.2012 | Скачали: 0 | Теги: сайте, как, оповещение, Vk, быстрое
Похожие новости на нашем сайте
Коментарий к новости

Всего комментариев: 3
3 GHOST$RID   Дата: 11.10.2013  Время: 15:12   [№ 15007]
что то не работает( пхп подключен!

1 djvermin   Дата: 18.04.2013  Время: 07:25   [№ 14607]
Так как вы описали нихрена не работает.... Ну есть js файлы и что? Куда их включать?

2 SlowMotion   Дата: 18.04.2013  Время: 11:18   1 [№ 14608]
А у вас хоть php пакет подключен??


Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Форма входа
Логин:
Пароль:


Поиск


На форуме

1 Файловик. Уникальные те...

0

2 Куплю сайты в индексе Я...

1

3 Куплю сайты с ТИЦ/PR (п...

9

4 Предлагаю услуги для ан...

0

5 Предлагаю услуги по про...

0

6 Комплексный прогон сайт...

51

7 Сайт онлайн фильмов на ...

1

8 Проблема с таблицей

9

9 Отредактировать фото

2

10 Уже все перепробовал )

1


Подробней о форуме


Комментарии



Copyright UcozOn.ru™ © 2008-2016


Кнопка 88х31 сайта ucozon.ru