Модуль Кричалка (Shoutbox).

Автор: HolyGun
Опубликовано: 414 дня назад (5 апреля 2011)
Рубрика: Модули
Редактировалось: 2 раза — последний 5 апреля 2011
+46
Голосов: 46
Всем привет. Предлагаю Вашему вниманию простейшую кричалку для сайта.
Кричалка - это некое подобие чата. Кричалка позволяет общаться пользователям сайта в реальном времени.
Это моя первая попытка написать модуль по правилам InstantCMS, так что не судите строго. :)

Особенности:
Форма ввода сообщения доступна только зарегистрированным пользователям. Гости лишь могут наблюдать за эфиром.
Обновление кричалки каждые 2 секунды без перезагрузки основной страницы благодаря ajax'у.
Выводится 20 последних сообщений.
Работает в позициях sidebar и maintop.

Скриншоты:
В позиции sidebar


В позиции maintop


Установка:
Для начала качаем архив с модулем: http://www.o-bike.ru/files/mod_shoutbox_v.1.0.zip
Процесс установки описан в файле Установка.txt внутри архива.

Благодарности в виде добровольного материального поощрения по прежнему принимаются тут:
Webmoney WMID: 200447737040
Z219463200364, R359781226955

Яndex.Деньги: 41001903510475
Карта сайта. Планы на будущее. | Кричалка 2.0
imprint # 5 апреля 2011 в 11:37 0
все скопировал....модуль в админке на видет....при установки модуля...
Fuze # 5 апреля 2011 в 11:44 +5
Молодец!
только вот это
Код PHP:
	
$user_id = $_POST['user_id'];
$message = $_POST['message'];
лучше заменить на вот это
Код PHP:
$user_id = $inCore->request('user_id', 'int', 0);
$message = $inCore->request('message', 'str', '');
так же индекс на поле user_id крайне желателен, при разросшейся таблице будет тормозить
тип таблиц конечно для чата желателен innodb...
ну и чтобы совсем по феншую, задание в крон на очистку старых записей.
HolyGun # 5 апреля 2011 в 21:49 0
Спасбо за замечания. Учту. :)
lezginka.ru # 5 апреля 2011 в 13:20 0
HolyGun,одни положительные эмоции!!!
а где тот Shoutbox, который делал максисофт, с сайта удалили ?
lezginka.ru # 5 апреля 2011 в 13:22 0
а на 1,6,2 можно установить ?
Fuze # 5 апреля 2011 в 13:44 0
можно по идее, только запрос на создание модуля вручную писать придется
Ruslan # 5 апреля 2011 в 13:37 +1
Прикольная штука, замена чату. Ставлю плюсик +
lezginka.ru # 5 апреля 2011 в 14:00 0
добавить бы несколько настроек(хотя это в чате есть):
ширина/высота окна
цвет фона
размер/цвет текста окна
добавить/убрать пиктограммы-автары
HolyGun # 5 апреля 2011 в 21:50 +2
Я пока только разбираюсь со внутренним устройством движка. Думаю что и это реализовать не проблема.
0 # 5 апреля 2011 в 14:09 0
аха..увидел что Хулиган..сразу понял..пахнет вкусным) приятная вещица..только вот у меня встало в позиции right  и размер явно не тот что прописан  в css там высота 220 тут же просто маленькое окошко..что делать?
HolyGun # 5 апреля 2011 в 21:50 +1
В таблице стилей поменять высоту у дива. :)
0 # 5 апреля 2011 в 14:10 -1
по моему когда пишешь он увеличивается..но не больше чем 220 высота..я правильно понял?
WALTERZ # 5 апреля 2011 в 14:37 +1
спасибо, плюсую
А старые записи с базы данных удаляются?
кто поставил, дайте взглянуть...возможности нет сейчас проверить
Katerina # 5 апреля 2011 в 14:55 0
walter, На личном сайте у автора стоит модуль.
HolyGun, большое спасибо.
HolyGun # 5 апреля 2011 в 21:51 +1
пока не удаляются. но это тоже реализуемо :)
0 # 5 апреля 2011 в 15:25 0
Подскажите кто имеет время, что у меня на сайте www.ok2net.kz с этим модулем..либо он работает только на стандартном шаблоне правильно? справа сверху  этот модуль..
HolyGun # 5 апреля 2011 в 21:53 0
Делал под стандартный шаблон. Но я думаю, что перенос шаблона модуля в персональный шаблон + правильное подключение стилей исправит данную проблему.
lezginka.ru # 5 апреля 2011 в 23:54 0
opariks , ты скопировал содержимое из shoutbox.css в свой файл ?
Алхимик # 5 апреля 2011 в 16:51 0
Классно реализовал.
Думал тоже сделать на основе iChat от Максисофта.
Юрий # 5 апреля 2011 в 18:19 0
Отличная вещь! Вот бы еще добавить смайлы... smile
HolyGun # 5 апреля 2011 в 21:54 +3
Думал про смайлы. Сделаем. :)
Тихонов # 5 апреля 2011 в 20:07 0
как раз то что я хотел! еще б смайлы и было б ваще супер!!!!!
Тихонов # 5 апреля 2011 в 20:08 0
кстате не по теме...но у меня слетел аватар
HolyGun # 5 апреля 2011 в 21:54 +1
Модуль тут не причем.
Тихонов # 5 апреля 2011 в 22:04 -1
не я не про модуль...
ByMind # 5 апреля 2011 в 20:38 +1
все отлично, спасибо
saymon21 # 5 апреля 2011 в 21:46 +1
подскажите что сделать что бы незарегистрированные пользователи тоже могли оставлять сообщения?
HolyGun # 5 апреля 2011 в 21:55 +3
Сделаем.smileВ принципе ничего сложного.
saymon21 # 6 апреля 2011 в 01:11 0
будем ждать!! Тебе огромное спасибо!!!
Юрий # 6 апреля 2011 в 00:00 +2
HolyGun, брат! В правильном направлении идешь! Ждем, ценим, поддерживаем! Будешь у нас - с меня пиво!
lezginka.ru # 6 апреля 2011 в 06:41 +1
еще парочка предложений:
1. авто-скроллинг кричалки(опционально,регулировка скорости)
2. установка 1 кричалки на несколько сайтов(хорошо оживляет кричалку)
fact # 6 апреля 2011 в 10:10 0
Супер!
pasplus # 6 апреля 2011 в 15:07 0
Новые люди, новые идеи! Спасибо!!! ))))
Thanatognozija # 6 апреля 2011 в 19:59 +1
Великолепный модуль, просто супер. Одно но я заметил, это нагрузка на сервер до 18%. Информация на хостинге такая:
по файлам:
17.38 % - modules/mod_shoutbox/ajax/ajax.php
Очень жаль, но все равно поставил бы тысячу плюсов за этот модуль. Очень актуально. Спасибо!
0 # 6 апреля 2011 в 22:26 -1
У меня не работает, сообщения не отправляет
EVV # 7 апреля 2011 в 10:07 +1
Извиняюсь, может быть за глупый вопрос, но как изменить строку 66 в ajax.php, чтобы при наведении на ник срабатывал плагин usertip?
Thanatognozija # 7 апреля 2011 в 11:51 +1
Интересно, неужели никого не насторожила 17%-ная нагрузка на сервер одного лишь файла...?
fact # 7 апреля 2011 в 12:46 0
меня насторожила. Модуль отличный, но 17 процентов это много, скорей всего буду отключать.
Thanatognozija # 7 апреля 2011 в 12:49 +1
Может есть варианты при которых можно снизить этот порог нагрузки. Прошу прощения, я не разбираюсь по какой причине это вообще может происходить...
HolyGun # 7 апреля 2011 в 12:57 +2
Стесняюсь спросить, а где вы нашли такую статистику? Просто я с этим ниразу не сталкивался, поэтому вот и мучаюсь вопросом, как это можно посмотреть...

А по существу - теоретически можно снизить нагрузку, установив интервал выполнения функции Load().
В файле /modules/mod_shoutbox/js/shoutbox.js в функции setInterval(Load, 2000); поменять интервал, скажем так, на 5 сек, поставив вместо 2000 мсек 5000 мсек.
fact # 7 апреля 2011 в 13:06 0
вот это уже ближе к делу. Вроде должно по идее снизить. Вечером попробую.
Проверьте ещё кто нибудь нагрузку. Кстати я сам не знаю где )
Thanatognozija # 7 апреля 2011 в 13:43 0
Нагрузку я проверяю у своего хостера. Я думаю у каждого хостера есть такая функция как проверка нагрузки.
HolyGun # 7 апреля 2011 в 13:15 +1
Просто функция Load() каждый раз дергает одноименную функцию в /modules/mod_shoutbox/ajax/ajax.php в которой, в свою очередь, выполняется запрос к базе на вывод 20 (устанавливается лимитом в запросе) последних сообщений, и формируется html для вывода в лог кричалки...
Fuze # 7 апреля 2011 в 13:33 +2
fuze:
так же индекс на поле user_id крайне желателен, при разросшейся таблице будет тормозить  тип таблиц конечно для чата желателен innodb...  ну и чтобы совсем по феншую, задание в крон на очистку старых записей.
HolyGun # 7 апреля 2011 в 13:48 +4
Делаю новую версию. Уже учел эти рекомендации. Спасибо. :)
Fuze # 7 апреля 2011 в 13:49 +3
имейте в виду, innodb не везде будет работать... возможно надо сделать проверку.
Виктор # 8 апреля 2011 в 10:05 +1
Ещё предложение:
для незарегистрированных пользователей не прятать поле для ввода сообщения, а заменять его на надпись "Для того, чтобы послать сообщение нужно зарегистрироваться/авторизироваться на сайте"
HolyGun # 8 апреля 2011 в 10:17 +3
Сделал возможность гостям отправлять сообщение, но с интервалом, например, 1 раз в 60 секунд. :)
Еще доделаю настройки для админки, чтобы можно было настроить кричалку по своему. :)

Так что, ждите новую версию. :)
Тихонов # 8 апреля 2011 в 19:45 0
жду с нетерпением!!! Спасибо!
Иван # 9 апреля 2011 в 15:03 0
Если можно, подскажите почему у меня проблемы с кодировкой !!!
0 # 9 апреля 2011 в 13:36 0
Не отправляются сообщения,чат пустой.
Иван # 9 апреля 2011 в 14:46 0
А , у меня почему-то кубики , или точнее что-то с кодировкой !!! Не могу разобратся в чем проблема....
Смотрите тут www.rubalka.net
HolyGun # 9 апреля 2011 в 20:16 +1
Возможно на хостинге не установлено расширение php iconv. Именно оно отвечает за перекодировку из utf-8 в cp1251.
Иван # 9 апреля 2011 в 20:42 0
Спасибо !!! А как узнать или посмотреть ???
Иван # 9 апреля 2011 в 20:45 0
Посмотрел, есть iconv.so  и оно включено !!!
Иван # 9 апреля 2011 в 20:47 0
У меня отключены ZendExtensionManager.so  и  pgsql.so, может их включить ????
HolyGun # 9 апреля 2011 в 21:00 0
зенд и pgsql тут точно не причем. попробуй напиши без использования украинских/латинских символов...
Иван # 9 апреля 2011 в 21:51 0
Пробовал, надпись отображается , а дата и логин в неправильной кодировке !!! ХЗ
EVV # 9 апреля 2011 в 22:53 0
http://instantcms.ru/forum/thread5782.html
Иван # 10 апреля 2011 в 10:29 0
Я так понимаю что нужно стучать к maxisoft
Vanka # 21 февраля 2012 в 07:25 0
у меня хостер блокирует сайт, если я включаю кричалку, фиг знает что такое