Отображение статуса онлайн ICQ и Skype на сайте ввиде блока.

Главные вкладки

Аватар пользователя Gohh Gohh 2 августа 2009 в 19:10

Доброго дня Smile

Снова я, новичек в Drupal и снова вопрос который возник при разработке сайта.

Возникла необходимость создать блок,где будет отображаться номер ICQ и Skype с их статусом ввиде значка.

Хотелось бы узнать,какие средства и как реализовать данную задачу.

p.s. Жаль поиска нет,возможно такой вопрос уже задавался.

Комментарии

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 2 августа 2009 в 19:21

Во-первых, поиск есть, направо и наверх.
Во-вторых, вопрос мало относится к друпалу, так html-код информера статуса Skype и ICQ можно взять на icq.com и skype.com/
В-третьих, вопрос действительно обсуждлся и даже если вы не видете поиска по сайту, то гугл работает 24/7 и у него есть модификатор "site", т.е. вбиваем в гугл "site: drupal.ru статус icq" и наслаждаемся
P.S. shaman.asiadata.ru/node/82

Аватар пользователя gn@drupal.org gn@drupal.org 2 августа 2009 в 23:36

А в чём проблема с версией Друпала - D5 или D6?
Зачем специальный модуль? Берёшь код кнопки с
http://www.skype.com/share/buttons/
http://www.icq.com/features/web/indicator.html
вставляешь в блок или не в блок, дописываешь туда всё что хочешь, и выводишь.

Аватар пользователя direqtor direqtor 26 января 2010 в 10:43

Поскольку на меня уже тут ссылались добавлю программное определение статуса ICQ.

<?php
function icq_get_status($icq) {
  
$status = -1;
// Соединяемся с сервером ICQ
  
if($fp = [user=fsockopen]fsockopen[/user] ("status.icq.com"80, &$errno, &$errstr30)) {
// Отправляем ему HEAD-запрос на изображение со статусом
    
fputs($fp"HEAD /online.gif?icq=$icq HTTP/1.0\n\n");
    
$out '';
    while(!
feof($fp)) {
// Читаем построчно ответ сервера
      
$out .= $line fgets($fp1024);
// Ищем строчку перенаправления с номером изображения
// и выделяем его номер
      
if(eregi('^Location: /0/online([012])'$line$regs)) {
// Если перенаправление обнаружено,
// то прерываем обработку ответа сервера
        
$status $regs[1];
        break;
      }
    }
// Закрываем соединение
  
fclose($fp);
  }
// Анализируем полученный номер изображения.
  
switch($status) {
    case 
0:   return 'Пользователь оффлайн';
    case 
1:   return 'Пользователь онлайн';
// Эту строчку можно перенести в секцию default - 
// все равно статус пользователя не определить.
    
case 2:   return 'Пользователь отключил сервис';
    default:   return 
'Пользователя не существует или сервис недоступен';
  }
}
?>

Из функции можете выводить и свою картинку статуса. Использовать можно в темизации поля профиля, в блоке, в собственном модуле. Подробности http://shaman.asiadata.ru/node/331

Программное определение статуса Skype:

<?php
function skype_get_status($skype) {
// Задаем статус на случай отсутствия соединения со skype.com.
  
$status "Сервис недоступен";
  
$size 0;
// Соединяемся с сервисом картинок статусов.
  
if($fp = [user=fsockopen]fsockopen[/user] ("mystatus.skype.com"80, &$errno, &$errstr30)) {
// Отсылаем HEAD-запрос.
    
fputs($fp"HEAD /smallicon/$skype HTTP/1.0\n\n");
    
$out '';
    while(!
feof($fp)) {
      
$out .= $line fgets($fp1024);
// Если сервер отдает загодовок размера файла, то парсим его.
      
if(eregi('^Content-Length: ([0-9][0-9][0-9])'$line$regs)) {
        switch(
$regs[1]) {
          case 
428$status "Онлайн"; break;
          case 
376$status "Оффлайн"; break;
          case 
502$status "Позвони мне!"; break;
          case 
546$status "Отсутствую"; break;
          case 
490$status "Недоступен"; break;
          case 
500$status "Не беспокоить!"; break;
          default: 
$status "Статус неизвестен";
        }
      }
    }
  
fclose($fp);
// Если размер файла не получен, например, ошибка 404,
// то такого пользователя нет.
  
if($status == "Сервис недоступен"$status "Пользователь неизвестен";
  }
  return 
$status;
}
?>

Использование тоже самое. Подробности http://shaman.asiadata.ru/node/340

Аватар пользователя Artu Artu 13 октября 2010 в 8:12

Не получается дат ссылку на абонента скайп, друпал не обрабатывает ссылку.

<a href="skype:nic?chat"> - получается mysite.org/nic?chat
<a href="/skype:nic?chat"> - получается mysite.org//skype:nic?chat

В форме контакта.

Аватар пользователя Enemy Enemy 11 ноября 2010 в 13:56

Artu wrote:
Не получается дат ссылку на абонента скайп, друпал не обрабатывает ссылку.

<a href="skype:nic?chat"> - получается mysite.org/nic?chat
<a href="/skype:nic?chat"> - получается mysite.org//skype:nic?chat

В форме контакта.


Решилась?

Аватар пользователя sergeymix sergeymix 30 ноября 2010 в 1:10

Если несмотря на все усилия, статус показывает Offline, хотя пользователь Online. Идем в настройки Skype клиента: Инструменты - Настройки - Безопасность - ставим галочку, Показывать мой сетевой статус в интернете.
(Голову сломал пока допер.. ну не пользуюсь я скайпом Smile )

Аватар пользователя Slider Slider 21 мая 2011 в 16:29

Подскажите плиз, как использовать программное определение статуса ICQ в views, где в табличном виде выводятся номера ICQ?