Доброго дня
Снова я, новичек в Drupal и снова вопрос который возник при разработке сайта.
Возникла необходимость создать блок,где будет отображаться номер ICQ и Skype с их статусом ввиде значка.
Хотелось бы узнать,какие средства и как реализовать данную задачу.
p.s. Жаль поиска нет,возможно такой вопрос уже задавался.
Комментарии
Во-первых, поиск есть, направо и наверх.
Во-вторых, вопрос мало относится к друпалу, так html-код информера статуса Skype и ICQ можно взять на icq.com и skype.com/
В-третьих, вопрос действительно обсуждлся и даже если вы не видете поиска по сайту, то гугл работает 24/7 и у него есть модификатор "site", т.е. вбиваем в гугл "site: drupal.ru статус icq" и наслаждаемся
P.S. shaman.asiadata.ru/node/82
http://shaman.asiadata.ru/taxonomy/term/93
Skype примерно также, на сайте их должен быть генератор статуса для сайта
А в чём проблема с версией Друпала - D5 или D6?
Зачем специальный модуль? Берёшь код кнопки с
http://www.skype.com/share/buttons/
http://www.icq.com/features/web/indicator.html
вставляешь в блок или не в блок, дописываешь туда всё что хочешь, и выводишь.
Поскольку на меня уже тут ссылались добавлю программное определение статуса ICQ.
<?php
function icq_get_status($icq) {
$status = -1;
// Соединяемся с сервером ICQ
if($fp = [user=fsockopen]fsockopen[/user] ("status.icq.com", 80, &$errno, &$errstr, 30)) {
// Отправляем ему HEAD-запрос на изображение со статусом
fputs($fp, "HEAD /online.gif?icq=$icq HTTP/1.0\n\n");
$out = '';
while(!feof($fp)) {
// Читаем построчно ответ сервера
$out .= $line = fgets($fp, 1024);
// Ищем строчку перенаправления с номером изображения
// и выделяем его номер
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, &$errstr, 30)) {
// Отсылаем HEAD-запрос.
fputs($fp, "HEAD /smallicon/$skype HTTP/1.0\n\n");
$out = '';
while(!feof($fp)) {
$out .= $line = fgets($fp, 1024);
// Если сервер отдает загодовок размера файла, то парсим его.
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
Не получается дат ссылку на абонента скайп, друпал не обрабатывает ссылку.
<a href="skype:nic?chat">
- получается mysite.org/nic?chat<a href="/skype:nic?chat">
- получается mysite.org//skype:nic?chatВ форме контакта.
Решилась?
Не пихайте её в l(), расписывайте тег A в коде
так и делалось. Код в форме контакта.
ВОзможно Формат ввода чудит.
Если несмотря на все усилия, статус показывает Offline, хотя пользователь Online. Идем в настройки Skype клиента: Инструменты - Настройки - Безопасность - ставим галочку, Показывать мой сетевой статус в интернете.
(Голову сломал пока допер.. ну не пользуюсь я скайпом )
Подскажите плиз, как использовать программное определение статуса ICQ в views, где в табличном виде выводятся номера ICQ?
Темизируйте вывод поля views.