phpBB Simple Chat v2.1.1 — AJAX чат с оповещениями о новых темах и ответах

Board index phpBBex 1.x Мастерская

Description: Только готовые решения! Статьи, заметки, моды и другие полезности для phpBBex 1.x и phpBB 3.0.x.
Moderator: Поддержка

Post #1by VEG » 02.06.2012, 20:05

Простой чат для phpBB3 в стиле чата сайта delphimaster.ru. Подходит как для phpBB, так и для phpBBex. Если вам понравился этот чат, вы сделали какие-то модификации, или просто установили его на свой форум — обязательно напишите об этом здесь, укажите ссылку на ваш форум. Мне будет очень приятно.

screenshot.png


Возможности

  • Всё AJAX
  • Приватные сообщения
  • Звуковое оповещение
  • Выбор цвета сообщений
  • Поддержка смайликов
  • Автоопределение ссылок
  • Автоблокировка флуда

Демонстрация работы

http://phpbbex.com/chat/
Имя: demo_ru
Пароль: demo_ru

Установка

Для того, чтобы установить этот чат на свой форум, необходимо выполнить несколько простых операций:
  • Скачайте
    phpbb3_simplechat.zip
    (78 KiB) Downloaded 15573 times
    (версия для 3.1-
    phpbb3_simplechat_3.1.zip
    Исправленная версия для работы на 3.1
    (78.05 KiB) Downloaded 1267 times
    )
  • Скопируйте содержимое каталога root в корень вашего форума
  • Выполните содержимое install.sql в вашей базе
  • Пройдите по адресу http://example.com/forum/chat/ и удостоверьтесь что чат работает
  • Добавьте ссылку на чат там где вам это удобно

История версий

phpBB Simple Chat v2.1.1 [10.01.2014]
  • При попадании в базу сообщения с переводом строки чат не перестаёт работать (спасибо Sumanai за замечание)
  • Настройки JOIN_MESSAGES и LEFT_MESSAGES позволяют отключать сообщения о том, что пользователи заходят в чат и покидают его
  • Настройки ANTIFLOOD_DURATION (продолжительность автоматической блокировки в секундах), ANTIFLOOD_SENSITIVITY (чувствительность, чем меньше значение, тем более чувствительна система) и ANTIFLOOD_EXTINCTION (скорость угасания, чем меньше значение, тем более чувствительна система) позволяют настраивать защиту от флуда
  • Лёгкий рефакторинг
  • Комментарии переведены на английский язык
  • Код для поддержки устаревшего IE8 удалён

phpBB Simple Chat v2.1 [03.09.2012]
  • HTML5 шаблон
  • HTML5 <audio> для уведомлений
  • Настройки хранятся в локальном хранилище (а не в куках как было раньше)
  • Свежий jQuery из Google CDN
  • Код для поддержки устаревших IE6-IE7 удалён

phpBB Simple Chat v2.0 [27.05.2011] (не публиковалась)
  • Отображение времени в корректном часовом поясе (что выбрал пользователь в профиле)
  • Счётчик количества сообщений за всё время и счётчик количества обновлений за сеанс
  • Когда кто-то переписывается в привате другие не пользователи не слышат звуковое уведомление
  • Хранение 100 последних сообщений вместо 30
  • Сессия длится 3 минуты вместо 1.5
  • Максимальная длина сообщения 250 символов вместо 200
  • По умолчанию звук включен

phpBB Simple Chat v2.0b [18.01.2009]
  • Портирован на phpBB 3
  • Без пасхальных яиц и гостевого входа

phpBB Simple Chat v1.0a [21.03.2008]
  • Стабильная версия для phpBB 2
  • Полная совместимость с IE6
  • Звуковые уведомления через Flash
  • Было несколько забавных пасхальных яиц (робот отвечал на приветствие и слово «упячка»)
  • Была отдельная версия с гостевым входом без регистрации

phpBB Simple Chat v0.0 [23.03.2006] (не публиковалась)
  • Первые наброски

Форумский бот для phpBB Simple Chat
Скачать:
phpbb3_simplechat_bot.zip
(19.87 KiB) Downloaded 1684 times


Небольшой аддон к phpBB Simple Chat, который оповещает в чате о новых темах и ответах в форуме.
Image
Установка требует всего 2 небольшие модификации в одном файле. Пока что все строковые переменные находятся прямо в коде. Все это не сложно перевести на другой язык, изменить имя бота и т.д. В следующей версии постараюсь вынести все это в языковые переменные.

Дополнительные правки


Ссылки

Русскоязычная поддержка на phpbbguru.net
Англоязычная поддержка на phpbb.com
Last edited by Sumanai on 03.12.2015, 20:07, edited 5 times in total.
Reason: Дополнения для чата
С наилучшими пожеланиями, Евгений
VEG M
Topic author, Администратор
Avatar
Age: 29
Location: Минск, Беларусь
Reputation: 1573
With us: 5 years 2 months


Post #81by K--H.ru » 15.10.2012, 18:36

Верно.

DELETE FROM " . CHAT_MESSAGES_TABLE . " WHERE msg_id < " . ($last_id - MESSAGES_LIMIT)
удаляет старые сообщения без разбора (приват это или нет). А теперь представьте ситуацию, когда долго общаются в привате и из CHAT_MESSAGES_TABLE удаляются старые сообщения. Все, кто в следующий раз зайдут в чат - не увидят общую историю чата или увидят лишь несколько сообщений, за исключением тех, кому были адресованы приватные сообщения: у них история чата будет = MESSAGES_LIMIT, а у остальных в истории отобразятся только те сообщения, которые ещё не успели удалиться за давностью MESSAGES_LIMIT.

Наглядно:
Code: Select all
msg_id, text

1, общее сообщение в чат
2, общее сообщение в чат
3, общее сообщение в чат
4, общее сообщение в чат
5, приватное сообщение
6, приватное сообщение
7, приватное сообщение
8, приватное сообщение
9, приватное сообщение
10, приватное сообщение

Теперь представьте, что в конфиге для данного примера MESSAGES_LIMIT=5. Получается, что старые msg_id 1-5 удаляются, и в таблице CHAT_MESSAGES_TABLE остаются только msg_id 6-10 ($last_id) с чьими-то приватами. Следовательно, если кто-то зайдёт в чат, кому эти приваты не адресованы, то увидит пустое окно без истории. А по идее должна быть последняя история "общака" - разве не так задумано?
Просто сам с этим столкнулся.
K--H.ru M
Новичок
Age: 30
Reputation: 13
With us: 4 yaers 8 months

Post #82by Girl » 18.10.2012, 20:12

VEG , где чистить вот этот архив сообщений ?
Image
А то боюсь подумать какая цифра через месяц будет :biggrin:
Girl
Мастер
Avatar
Reputation: 18
With us: 4 yaers 8 months

Post #83by angst66 » 18.10.2012, 21:07

Не боись
Безымянный.png
Безымянный.png (4.02 KiB) Viewed 6348 times
angst66
Бывалый
Reputation: 13
With us: 4 yaers 9 months

Post #84by VEG » 19.10.2012, 03:06

Girl, это просто число сообщений за всё время. Они нигде не сохраняются. Если хотите, отображение этой статистики можно убрать в шаблоне.
С наилучшими пожеланиями, Евгений
VEG M
Topic author, Администратор
Avatar
Age: 29
Location: Минск, Беларусь
Reputation: 1573
With us: 5 years 2 months

Post #85by Girl » 19.10.2012, 04:56

VEG wrote:Если хотите, отображение этой статистики можно убрать в шаблоне.

Тогда скажите пожалуйста какую именно строчку ? А то некоторые начали думать что я их где-то сохраняю а потом ПМ чужие в свободное время читаю :twisted:
Girl
Мастер
Avatar
Reputation: 18
With us: 4 yaers 8 months

Post #86by VEG » 19.10.2012, 11:06

Girl, в файле ./chat/template/chat_body.html просто удалите:
Code: Select all
 :: [<span id="msg_counter">0</span> {L_N_MESSAGES} | <span id="upd_counter">0</span> {L_N_UPDATES}]
С наилучшими пожеланиями, Евгений
VEG M
Topic author, Администратор
Avatar
Age: 29
Location: Минск, Беларусь
Reputation: 1573
With us: 5 years 2 months

Post #87by K--H.ru » 19.10.2012, 16:29

Посетители чата жалуются, что порой сообщения не отправляются и не показываются (красный кружок). Сам пару раз столкнулся с этим. Заглянул в таблицу - всё в порядке, никаких запрещённых символов нет. Почистил таблицу - сразу всё заработало.
VEG, как можно посмотреть DEBUG чтобы выявить косяк? Просто не занимаюсь JQuery, поэтому не знаю, что для этого нужно. Подозрения на вывод в PHP inline-ошибки или какого-нибудь нотиса, который убивает формат JQuery.
K--H.ru M
Новичок
Age: 30
Reputation: 13
With us: 4 yaers 8 months

Post #88by VEG » 19.10.2012, 17:36

K--H.ru, работа чата в режиме DEBUG не гарантируется. Посмотреть что отвечает сервер можно в Firebug на вкладке Net (Сеть).
С наилучшими пожеланиями, Евгений
VEG M
Topic author, Администратор
Avatar
Age: 29
Location: Минск, Беларусь
Reputation: 1573
With us: 5 years 2 months

Post #89by K--H.ru » 19.10.2012, 19:41

Спасибо, вспомнил, что у меня есть HttpFox - гораздо легче FireBug и с задачей успешно справился. Как я и предполагал, inline ошибка о попытке вставить строку в колонку messages сверх лимита (на этот раз в таблицу логов, в которой забыл увеличить text до 500 тоже).
Странно, что SetUsers выводится при каждом рефреше, хотя логичнее было бы только при изменении списка чатовцев он-лайн.
K--H.ru M
Новичок
Age: 30
Reputation: 13
With us: 4 yaers 8 months

Post #90by rewuxiin » 23.10.2012, 22:34

сегодня получил вот такою ошибку. причем не у всех а только у некоторых пользователей
SQL ERROR [ mysqli ]
Code: Select all
Out of range value for column 'user_activity' at row 1 [1264]

SQL

UPDATE phpbb_chat_sessions SET user_id = '54', username = 'Ola_ok', last_active = 1351020698, user_status = '0', user_activity = 62726, user_blocked = '0' WHERE user_id = 54

BACKTRACE

FILE: [ROOT]/includes/db/mysqli.php
LINE: 182
CALL: dbal->sql_error()

FILE: [ROOT]/chat/index.php
LINE: 142
CALL: dbal_mysqli->sql_query()

у кого косяк?
rewuxiin
Гость

Post #91by VEG » 23.10.2012, 22:44

rewuxiin, user_activity — это нестандартное поле. Скорее всего проблема в моде, который добавил это поле в таблицу phpbb_sessions.

Добавлено спустя 3 минуты 2 секунды:
Как вариант попробуйте увеличить размерность этого поля. Поставьте тип INTEGER. По крайней мере указанный запрос выполнится. Не знаю, решит ли это проблему целиком — нужно уже смотреть код мода, который работает с этим полем.
С наилучшими пожеланиями, Евгений
VEG M
Topic author, Администратор
Avatar
Age: 29
Location: Минск, Беларусь
Reputation: 1573
With us: 5 years 2 months

Post #92by rewuxiin » 24.10.2012, 08:26

VEG, спасибо.
Видимо мост Joomla - Jfusion снова гдето косячит
rewuxiin
Гость

Post #93by Andrey » 27.10.2012, 22:39

Приветствую!

Подскажите пожалуйста, как встроить кнопку чата на главной странице форума рядом с кнопками главного меню наверху (Личный раздел•F.A.Q.•Поиск и т.д.) на стиле "whiteb"?

Я не сильно продвинутый юзер в плане программирования, а заходить в чат через ссылку в созданной теме не совсем удобно для посетителей форума, хотелось бы вывести отдельную кнопочку.

Подскажите пожалуйста, люди добрые, разобраться. Спасибо!
Andrey
Гость

Post #94by VEG » 27.10.2012, 23:37

Andrey, вы можете через админку создать форум-ссылку (как на главной phpbbex.com ссылка на phpbbguru.net). При создании форума просто выбирайте тип форума — ссылка.
С наилучшими пожеланиями, Евгений
VEG M
Topic author, Администратор
Avatar
Age: 29
Location: Минск, Беларусь
Reputation: 1573
With us: 5 years 2 months

Post #95by Andrey » 28.10.2012, 01:09

Спасибо большое! Так гораздо удобнее!

Вы меня очень выручили...
Andrey
Гость

Post #96by Апельсин » 07.11.2012, 16:08

VEG, можно ли убрать уведомления о изменении статуса админа?
Есть ли возможность удалять / изменять сообщения?
Апельсин
Гость

Post #97by VEG » 07.11.2012, 16:16

Апельсин wrote:VEG, можно ли убрать уведомления о изменении статуса админа?
А где вы увидели такие уведомления? И да, в этой версии чата статусов нет ;)
Апельсин wrote:Есть ли возможность удалять / изменять сообщения?
Такой возможности нет. Сообщения всё равно автоматически удаляются при достижении лимита. В ручном удалении или редактировании сообщений смысла не очень много.
С наилучшими пожеланиями, Евгений
VEG M
Topic author, Администратор
Avatar
Age: 29
Location: Минск, Беларусь
Reputation: 1573
With us: 5 years 2 months

Post #98by Апельсин » 07.11.2012, 16:28

VEG wrote:А где вы увидели такие уведомления? И да, в этой версии чата статусов нет ;)

Значит, я неправильно выразился. Используется последняя версия.Я имел в виду, что во время открытия страницы чата появляется строка, свидетельствующая о входе на чат.

Как сделать так, чтобы она появлялась при входе всех пользователей, кроме админа?
Апельсин
Гость

Post #99by VEG » 07.11.2012, 17:13

Апельсин, такой функции этот чат также не предоставляет.
С наилучшими пожеланиями, Евгений
VEG M
Topic author, Администратор
Avatar
Age: 29
Location: Минск, Беларусь
Reputation: 1573
With us: 5 years 2 months

Post #100by Грейпфрут » 07.11.2012, 19:39

Но ведь теоретически её можно реализовать?
Грейпфрут
Гость

PreviousNext

Return to Мастерская