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

Список разделов phpBBex 1.x (поддерживается) Мастерская 1.x

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

Сообщение #1 VEG » 02.06.2012, 20:05

Простой чат для phpBB3, вдохновлённый чатом сайта delphi.mastak.ru 2001 года. Подходит как для phpBB 3.0.x, так и для phpBBex 1.x.x. Если вам понравился этот чат, вы сделали какие-то модификации, или просто установили его на свой форум — пожалуйста, поделитесь этим здесь, укажите ссылку на ваш форум.

screenshot.png


Возможности

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

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

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

Установка

Для того, чтобы установить этот чат на свой форум, необходимо выполнить несколько простых операций:
  1. Скачайте
    phpbb3_simplechat.7z
    v2.1.2 [2023/11/19]
    (69.71 КБ) Скачиваний: 64
    .
  2. Скопируйте содержимое каталога root в корень вашего форума.
  3. Выполните содержимое install.sql в вашей базе.
  4. Пройдите по адресу http://example.com/forum/chat/ и удостоверьтесь что чат работает.
  5. Добавьте ссылку на чат там где вам это удобно.

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

phpBB Simple Chat v2.1.2 [2023/11/19]
  • Совместимость с phpBBex v1.9.7.
  • Поддержка emoji (при обновлении со старой версии надо пересоздать таблицы).
  • В подсказке ко времени сообщения отображается дата.
  • Формат даты и времени можно настроить.
  • Незначительные косметические изменения.
Скачать:
phpbb3_simplechat.7z
v2.1.2 [2023/11/19]
(69.71 КБ) Скачиваний: 64


phpBB Simple Chat v2.1.1 [2014/01/10]
  • При попадании в базу сообщения с переводом строки чат не перестаёт работать (спасибо Sumanai за замечание)
  • Настройки JOIN_MESSAGES и LEFT_MESSAGES позволяют отключать сообщения о том, что пользователи заходят в чат и покидают его
  • Настройки ANTIFLOOD_DURATION (продолжительность автоматической блокировки в секундах), ANTIFLOOD_SENSITIVITY (чувствительность, чем меньше значение, тем более чувствительна система) и ANTIFLOOD_EXTINCTION (скорость угасания, чем меньше значение, тем более чувствительна система) позволяют настраивать защиту от флуда
  • Лёгкий рефакторинг
  • Комментарии переведены на английский язык
  • Код для поддержки устаревшего IE8 удалён
Скачать:
phpbb3_simplechat.zip
v2.1.1 [2014/01/10]
(78 КБ) Скачиваний: 18521
(версия для 3.1 от Sumanai -
phpbb3_simplechat_3.1.zip
v2.1.1 для phpBB 3.1
(78.05 КБ) Скачиваний: 3416
)

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

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

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

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

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

Форумский бот для phpBB Simple Chat
Скачать:
phpbb3_simplechat_bot.zip
(19.87 КБ) Скачиваний: 3317


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

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


Ссылки

Русскоязычная поддержка на phpbbguru.net
Англоязычная поддержка на phpbb.com
Последний раз редактировалось VEG 19.11.2023, 20:28, всего редактировалось 18 раз(а).
Причина: phpBB Simple Chat v2.1.2
VEG M
Автор темы, Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 11 лет 11 месяцев


Сообщение #181 Гость » 29.07.2013, 22:00

Установил на форумы
langforum.net
ascienceforum.com

А можно сделать, чтобы для каждого форума был свой отдельный чат, а не один чат на весь форум?
Гость
Гость

Сообщение #182 VEG » 29.07.2013, 22:01

Гость:А можно сделать, чтобы для каждого форума был свой отдельный чат, а не один чат на весь форум?
Вы имеете в виду на каждый раздел одного форума по чату? Такой функции не предусмотрено.
VEG M
Автор темы, Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 11 лет 11 месяцев

Сообщение #183 Гость » 29.07.2013, 22:55

Да. Жалко, что не предусмотрено :sad:
Гость
Гость

Сообщение #184 Girl » 20.08.2013, 22:03

Всем привет)
Как сделать так, чтобы пользователь не мог писать в чате ? Т.е. он заблокирован,группа была выставлена по умолчанию - заходит и пишет себе спокойненько :evil: Перенесла в группу "гости " , сделала по умолчанию- нет, опять заходит пишет.... В правах выставила всё "никогда", бесполезно. Как мне ему закрыть чат? А то как-то совсем непорядок получается :( запретить его емейл ...?
Girl
Аватара
Репутация: 18
С нами: 11 лет 5 месяцев

Сообщение #185 VEG » 21.08.2013, 07:24

Girl, нет, его нужно просто внести в чёрный список (забанить). Правда, в таком случае перекроется доступ полностью ко всему форуму, включая сайт. Где-то здесь пробегали куски кода для реализации такого права, но по умолчанию система прав игнорируется. Учитывается только бан.
VEG M
Автор темы, Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 11 лет 11 месяцев

Сообщение #186 Girl » 31.08.2013, 19:53

Это снова я :smile: Один пользователь говорит что его постоянно выкидывает с чата (встроен в главную стр.) , т.е. за день 3 раза , хотя в то же время на форуме всё нормально- под своим логином висит . В чем может быть причина выбрасывания с чата?
Girl
Аватара
Репутация: 18
С нами: 11 лет 5 месяцев

Сообщение #187 Юрий » 01.09.2013, 09:04

Евгений, добрый день!
Попробовал вчера Ваш чат, поделюсь впечатлениями!
1. Ужасно раздражает Нас приветствует Нас покидает, скажите, можно ли это отключить?
2. Задержка флуда 30 секунд, как отключить?
3. Ограничение сообщения 255 символов как исправить на 2000?
4. Как банить пользователей? (В коде есть проверка, но она неактивна.)
5. Как удалять сообщения не правя напрямую базу данных?
Юрий
Гость

Сообщение #188 VEG » 01.09.2013, 11:07

Юрий:1. Ужасно раздражает Нас приветствует Нас покидает, скажите, можно ли это отключить?
Удалите в index.php чата этот код:
Код: Выделить всё
// Помечаем тех кто ушел
$die_time = time() - SESSION_LIFE;
$sql = "SELECT *
   FROM " . CHAT_SESSIONS_TABLE . "
   WHERE last_active < '{$die_time}'
   ORDER BY last_active";
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
   // Сообщение что ушел пользователь
   $message = array(
      'user_id'   => $row['user_id'],
      'username'   => $row['username'],
      'time'      => $row['last_active'] + SESSION_LIFE,
      'text'      => MSG_LEFT,
      'color'      => '000000'
   );
   $sql = "INSERT INTO " . CHAT_MESSAGES_TABLE . " " . $db->sql_build_array('INSERT', $message);
   $db->sql_query($sql);   
}
И вот этот:
Код: Выделить всё
   // Сообщение что зашел новый пользователь
   $message = array(
      'user_id'   => $user->data['user_id'],
      'username'   => $user->data['username'],
      'time'      => time(),
      'text'      => MSG_JOIN,
      'color'      => '000000'
   );
   $sql = "INSERT INTO " . CHAT_MESSAGES_TABLE . " " . $db->sql_build_array('INSERT', $message);
   $db->sql_query($sql);

Юрий:2. Задержка флуда 30 секунд, как отключить?
Вся логика этого находится здесь (можете подстраивать, изменяя цифры):
Код: Выделить всё
   // Обновляем время последней активности и необходимость блокировки
   $chat_session['user_activity'] -= time() - $chat_session['last_active'];
   if($chat_session['user_activity'] < 0) $chat_session['user_activity'] = 0;
   if(!$chat_session['user_blocked'] && $action == ACT_SAY)
   {
      $chat_session['user_activity']+=3;
      if($chat_session['user_activity'] > 9)
      {
         $chat_session['user_activity'] = 30; // секунд блокировки
         $chat_session['user_blocked'] = 1;
      }
   }
   if($chat_session['user_activity'] == 0)
   {
      $chat_session['user_blocked'] = 0;
   }

Юрий:3. Ограничение сообщения 255 символов как исправить на 2000?
Изменить тип колонки с текстом сообщения с VARCHAR(255) на TEXT, затем изменить значение максимума вот тут:
Код: Выделить всё
      // Длина фразы не более 255
      if(utf8_strlen($text) > 255) $text = utf8_substr($text, 0, 255);
Ну и в HTML коде лимит убрать.

Юрий:4. Как банить пользователей? (В коде есть проверка, но она неактивна.)
Не предусмотрено чатом. Вы можете забанить пользователя на форуме, и он «забанится» в чате тоже.

Юрий:5. Как удалять сообщения не правя напрямую базу данных?
Не предусмотрено. Сообщения всё равно удаляются из истории достаточно быстро, смысла их править нет.

Добавлено спустя 4 минуты 53 секунды:
Girl:Это снова я :smile: Один пользователь говорит что его постоянно выкидывает с чата (встроен в главную стр.) , т.е. за день 3 раза , хотя в то же время на форуме всё нормально- под своим логином висит . В чем может быть причина выбрасывания с чата?
Возможно, плохое соединение. Допустим, Firefox при проблемах с соединением пробует отправить второй запрос без cookies (и без авторизации соответственно), и если на запрос без cookies пришёл корректный ответ, он «забывает» cookies что знал. Соответственно авторизация и слетает. Ну а чат регулярно запрашивает обновления, и встроен он у вас в фрейме. Соответственно может получиться так, что во фрейме отобразится форма входа, а в главной странице будет отображаться, что пользователь авторизован. Но если пользователь обновит страницу, то на сайте тоже не будет авторизации в таком случае.
VEG M
Автор темы, Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 11 лет 11 месяцев

Сообщение #189 Юрий » 01.09.2013, 14:52

Евгений, спасибо, все получилось! :smoke:

Для выборочного доступа юзеров в чат сделал группу и проверку в чат-бади:
Код: Выделить всё
<!-- IF S_USER_LOGGED_IN and S_GROUP_21 and not S_IS_BOT -->
Прокатит на первое время, потом буду думать.
Чат понравился, хотя нужно многое допиливать! :smile:

Добавлено спустя 58 минут 56 секунд:
Или можно в самом php коде сделать проверку!
Код: Выделить всё
// Задаем идентификаторы (id) групп, членам которых разрешен доступ в чат.
    $allowed = array(2,8,21);       // Список id групп, разделенных запятыми

    // Проверяем, является ли юзер членом перечисленных групп.
    $sql = 'SELECT user_id
        FROM ' . USER_GROUP_TABLE . '
        WHERE ' . $db->sql_in_set('group_id', $allowed) . '
              AND user_id = '  . $user->data['user_id'];
    $result = $db->sql_query_limit($sql, 1, 0);
    if (!$data = $db->sql_fetchfield('user_id', false, $result))
    {
        trigger_error('Доступ в чат для данной учетной записи закрыт!');
    }
Юрий
Гость

Сообщение #190 Sumanai » 01.09.2013, 18:20

Юрий:Для выборочного доступа юзеров в чат сделал группу и проверку в чат-бади:

Здесь где- то был рецепт с форумным правом доступа к чату. Хардкод номера группы в коде- не очень красиво.
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 1 месяц

&&

Сообщение #191 Юрий » 02.09.2013, 15:42

VEG:Удалите в index.php чата этот код:
Евгений, другая проблема,Ю с удалением кода, теперь все пользователи, однажды зашедшие в чат, висят в списке справа, как так сделать, чтобы они удалялись при закрытии окна чата или длительной неактивности?
Юрий
Гость

Сообщение #192 Sumanai » 02.09.2013, 15:49

Юрий:как так сделать, чтобы они удалялись при закрытии окна чата или длительной неактивности?

Кажись VEG дал больно большой кусок. Вставь обратно, откуда удалил первый кусок, вот эту часть:
Код: Выделить всё
// Помечаем тех кто ушел
$die_time = time() - SESSION_LIFE;
$sql = "SELECT *
   FROM " . CHAT_SESSIONS_TABLE . "
   WHERE last_active < '{$die_time}'
   ORDER BY last_active";
$result = $db->sql_query($sql);
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 1 месяц

Сообщение #193 Юрий » 02.09.2013, 15:52

Спасибо Вам, попробую!
Юрий
Гость

Сообщение #194 VEG » 04.09.2013, 15:36

Sumanai, Юрий, по идее только вот эту строчку нужно вернуть:
Код: Выделить всё
// Помечаем тех кто ушел
$die_time = time() - SESSION_LIFE;
С ней я действительно погорячился, не заметил :)
VEG M
Автор темы, Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 11 лет 11 месяцев

Сообщение #195 Joliat » 18.09.2013, 21:49

Мужики, первый раз прикручиваю чат, сильно не пинайте, остановился на Вашем. Вот на этот форум http://prt.zp.ua/forum/. Скажите в какую часть темы вставлять код?
Joliat
Репутация: 0
С нами: 10 лет 6 месяцев

Сообщение #196 HD321kbps » 18.09.2013, 23:09

VEG:Установка

Для того, чтобы установить этот чат на свой форум, необходимо выполнить несколько простых операций:
Скачайте
phpbb3_simplechat.zip
Скопируйте содержимое каталога root в корень вашего форума
Выполните содержимое install.sql в вашей базе
Пройдите по адресу http://example.com/forum/chat/ и удостоверьтесь что чат работает
Добавьте ссылку на чат там где вам это удобно
HD321kbps M
Аватара
Откуда: Армянск
Репутация: 376
С нами: 11 лет

Сообщение #197 VEG » 19.09.2013, 13:18

Joliat:Скажите в какую часть темы вставлять код?
Имеете в виду куда вставлять код из файла SQL? Поищите в админке хостинга PhpMyAdmin, там выберите БД, в которую вы установили форум, затем зайдите на вкладку SQL, вставьте содержимое файла install.sql и выполните его.
VEG M
Автор темы, Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 11 лет 11 месяцев

Сообщение #198 angst66 » 25.09.2013, 12:31

Реально прикрутить этот мод http://www.phpbbguru.net/community/topic40257.html#p410489 к чату?
angst66
Репутация: 13
С нами: 11 лет 6 месяцев

Сообщение #199 VEG » 25.09.2013, 21:15

Прикрутить не получится, нужно заниматься портированием. Вообще на сколько я вижу там используются экспериментальные возможности Google Chrome, что не очень хорошо. По крайней мере до тех пор, пока это не войдёт в стандарты. Вроде как Google обещал избавиться от префиксов webkit (в связи с переходом на собственный форк движка под названием Blink), так что может вообще перестать работать при одном из обновлений.
VEG M
Автор темы, Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 11 лет 11 месяцев

Сообщение #200 Boroda » 10.10.2013, 02:49

Если сообщение склеивается с предыдущим бот не информирует об этом. Как исправить?
И чет как-то появилась задержка при размещении новых сообщений. :(
Boroda M
Репутация: 38
С нами: 11 лет 10 месяцев

Пред.След.

Вернуться в Мастерская 1.x