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 КБ) Скачиваний: 358
    .
  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 КБ) Скачиваний: 358


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 КБ) Скачиваний: 18832
(версия для 3.1 от Sumanai -
phpbb3_simplechat_3.1.zip
v2.1.1 для phpBB 3.1
(78.05 КБ) Скачиваний: 3678
)

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 КБ) Скачиваний: 3582


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

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


Ссылки

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


Сообщение #441 motorist828 » 16.04.2015, 04:19

Поставил на форум чат согласно инструкции, но при открытие чата получаю лишь ошибку
Спойлер
Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at admin@example.com to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.

Apache/2.4.9 (Win32) PHP/5.5.12 Server at localhost Port 80

Форум стоит на wampserver, его логи

Спойлер
[Thu Apr 16 04:11:17.554512 2015] [core:alert] [pid 12700:tid 940] [client ::1:60005] C:/wamp/www/chat/.htaccess: Invalid command 'AddOutputFilterByType', perhaps misspelled or defined by a module not included in the server configuration
motorist828
Гость

Сообщение #442 Dr.Death » 16.04.2015, 08:20

Dr.Death M
Аватара
Репутация: 69
С нами: 10 лет 5 месяцев

Сообщение #443 motorist828 » 16.04.2015, 16:52

С Invalid command 'AddOutputFilterByType' разобрался, теперь чат открывается, но не прогружается, идёт постоянное обновление каждые пол секунды.
motorist828
Гость

Сообщение #444 Analog » 29.04.2015, 13:50

Всем здравствуйте! Реализовал текстовые ВВ коды, а вот с картинками проблемы, просто вставить получается,а вот с хайслайд не выходит. Не пойму как правильно составить правило для замены ВВ кода на html. Никто не может поделится кусочком кода?
Analog
Гость

Сообщение #445 angst66 » 30.04.2015, 18:40

Analog, Зайди посмотри у меня адрес в подписи.
Кстати, адаптировал под телефоны, убрал все лишнее, там же можно посмотреть, или сложить окно браузера.
angst66
Репутация: 13
С нами: 12 лет 3 месяца

Сообщение #446 angst66 » 28.05.2015, 17:46

Очень удобно, когда о новом сообщение или теме бот сообщает в чате. И я думаю все сталкивались, когда сообщение, одобренное модератором и опубликованное на форуме не замечается ботом. Есть ли у кого решение?
angst66
Репутация: 13
С нами: 12 лет 3 месяца

Сообщение #447 sag-sag » 28.05.2015, 17:55

angst66, ты б выложил бы в Мастерскую, готовое решение. Думаю многие б восспользовались и были благодарны.
sag-sag M
Аватара
Репутация: 411
С нами: 11 лет 3 месяца

Сообщение #448 angst66 » 29.05.2015, 10:20

sag-sag, о каком решении речь?
angst66
Репутация: 13
С нами: 12 лет 3 месяца

Сообщение #449 sag-sag » 29.05.2015, 11:14

angst66, про панель bb кодов чате
Screenshot_1.png
Screenshot_1.png (21.38 КБ) Просмотров: 13084
sag-sag M
Аватара
Репутация: 411
С нами: 11 лет 3 месяца

Сообщение #450 ЖЪРЧИК » 29.05.2015, 11:59

Чат запиливается на главную?
Как тут: http://exbb.info/community/index.php , но с функцией сворачивания (и запоминанием). :think:
ЖЪРЧИК
Аватара
Репутация: 174
С нами: 10 лет 4 месяца

Сообщение #451 angst66 » 29.05.2015, 15:00

Добавляем бб коды.
root/chat/index.php
Найти
Код: Выделить всё
if((!$show) && ($user->data['username'] != $row['username']) ) continue;
Добавить после
Код: Выделить всё
//start bbcode      
   $text = preg_replace('/\[(\/?)(b|i|u|s|sup|small|center|marquee)\s*\]/', "<$1$2>", $text);
   
   $text = preg_replace('/\[code\]/', '<pre><code>', $text);
   $text = preg_replace('/\[\/code\]/', '</code></pre>', $text);
   
   $text = preg_replace('/\[(\/?)quote\]/', "<$1blockquote>", $text);
   $text = preg_replace('/\[(\/?)quote(\s*=\s*([\'"]?)([^\'"]+)\3\s*)?\]/', "<$1blockquote>Цитата $4:<br>", $text);
   
   $text = preg_replace('/\[img](.*?)\[\/img\]/', '<a href="$1" class="highslide" onclick="return hs.expand(this)"><img src="$1" alt="Нет фото" title="Нажмите для изменения размера" style="max-width:200px; max-height:50px;" /></a>', $text);

   
   $text = preg_replace('/\[url\](.*?)\[\/url\]/', '<a class="a" href="$1" onclick="window.open(this.href); return false;">$1</a>', $text);
   $text = preg_replace('/\[url=(.*?)\](.*?)\[\/url\]/', '<a class="a" href="$1" onclick="window.open(this.href); return false;">$2</a>', $text);

   
   $text = preg_replace('/\[media\](.*?)\[\/media\]/', '<div class="bbmedia" data-url="$1" style="margin: 1px; display: inline-block; vertical-align: bottom;"><div style="width: 200px; height: 40px; border: 1px solid #999; display: table-cell; text-align: center; vertical-align: middle; font: 10px/10px Verdana; color: #555; opacity: 0.5;"><a style="color: #105289; text-decoration: none;" href="http://phpbbex.com/" target="_blank">phpBB</a> &#91;media&#93;</div><script>if (typeof bbmedia == "undefined") { bbmedia = true; var e = document.createElement("script"); e.async = true; e.src = "http://ваш сайт.com/root/bbmedia.php"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(e, s); }</script></div>', $text);
   
   $text = preg_replace('/\[media=(.*?)\](.*?)\[\/media\]/', '<div class="bbmedia" data-url="$2" data-args="$1" style="margin: 1px; display: inline-block; vertical-align: bottom;"><div style="width: 200px; height: 40px; border: 1px solid #999; display: table-cell; text-align: center; vertical-align: middle; font: 10px/10px Verdana; color: #555; opacity: 0.5;"><a style="color: #555; text-decoration: none;" href="http://phpbbex.com/" target="_blank">phpBB &#91;media&#93;</a></div><script>if (typeof bbmedia == "undefined") { bbmedia = true; var e = document.createElement("script"); e.async = true; e.src = "http://ваш сайт.com/root/bbmedia.php"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(e, s); }</script></div>', $text);
         
   $text = preg_replace('/\[icode\](.*?)\[\/icode\]/', '<code style="font-family: Monaco, Andale Mono, Courier New, Courier, monospace; font-size: 0.9em; font-style: normal; line-height: 1.3em; background: #FFF; border: 1px solid #C9D2D8; padding: 0 3px; color: #0040FF; display: inline;">$1</code>',$text);
      
   $text = preg_replace('/\[size=(.*?)\](.*?)\[\/size\]/', '<font size=$1;>$2</font>',$text);
      
   $text = preg_replace('/\[color=(.*?)\](.*?)\[\/color\]/', '<font color=$1;>$2</font>',$text);
      
   $text = preg_replace('#\[acronym=([\r\n]*)([^\'\";]*?)\](.*?)([\n]*)\[/acronym\]#si', '<acronym style="border-bottom:1px dashed red; cursor:help;" title="\2">\3</acronym>', $text);

   //End bbcode
Сохраняем в кодировке utf-8(без BOM)
ББ коды медиа и медиа=, обратите внимание что путь к файлу http://ваш сайт.com/root/bbmedia.php нужно прописать свой.
Сюда можно добавить и другие коды по аналогии, или убрать ненужные. Можно добавить все что возможно, но вывести только нужные кнопки. Для того чтобы картинка не была слишком большой, у меня выводиться превьюшка, разворачивается по клику через highslide, плагин должен быть подключен.
В данном случае у нас добавлено больше кодов, чем мы вывели кнопок.
Теперь кнопки.
Открываем root/chat/template/chat_body.html
Найти
Код: Выделить всё
<table id="color" border="0" cellspacing="0px" cellpadding="2px" width="100%"><tr>
Вставить после
Код: Выделить всё
<div id="bb">
      <button onclick="bbcode('#message', '[b]', '[/b]')" title="Жирный текст"><b>b</b></button>
      <button onclick="bbcode('#message', '[i]', '[/i]')"title="Наклонный текст"><i>i</i></button>
      <button onclick="bbcode('#message', '[u]', '[/u]')"title="Подчёркнутый текст"><u>u</u></button>
      <button onclick="bbcode('#message', '[s]', '[/s]')"title="Зачёркнутый текст"><s>s</s></button>
      <button onclick="bbcode('#message', '[sup]', '[/sup]')"title="a[sup]2[/sup]">a<small><sup>2</sup></small></button>
      <button onclick="bbcode('#message', '[url=]', '[/url]')"title="[url=Ссылка]Пояснение[/url]">url=</button>
      <button onclick="bbcode('#message', '[img]', '[/img]')"title="[img]Ссылка на изображение[/img]">img</button>
      <button onclick="bbcode('#message', '[media]', '[/media]')"title="[media]Вставить аудио, видео, карту, панораму или другое мультимедиа: [media]http://youtube.com/url[/media]">media</button>
      <button onclick="bbcode('#message', '[media=]', '[/media]')"title="[media=высота,ширина]Вставить аудио, видео, карту, панораму или другое мультимедиа: [media=200,100]http://youtube.com/url[/media]">media=</button></div>
Кнопки вы можете добавлять свои по аналогии.
Найти
Код: Выделить всё
<title>{PAGE_TITLE} - {SITENAME}</title>
Добавить после
Код: Выделить всё
<script type="text/javascript">
   <!-- INCLUDE bbcode.js -->
   </script>
Скачать и положить в папку root/chat/template файл bbcode.js
bbcode.zip
(418 байт) Скачиваний: 662


Файл bbcode.js
Код: Выделить всё
function bbcode(DOM_message, text_before, text_after, callback)
{
var dom = $(DOM_message);
//IE
if (document.selection)
{
var s = document.selection.createRange();
if(s.text)
{
s.text = text_before + s.text + text_after;
}
else
{
dom.val(dom.val() + text_before + text_after);
}
} else
{
//Firefox, Safari, Opera, Chrome, etc.

var sel =
{
start: dom[0].selectionStart,
end: dom[0].selectionEnd
};
dom.val(dom.val().substring(0, sel.start) + text_before + dom.val().substring(sel.start, sel.end) + text_after + dom.val().substring(sel.end, dom.val().length|0));
}
if (typeof callback == 'function') {
callback();
}
}

Далее открыть root/chat/template/style.css
Найти
Код: Выделить всё
#controlbox table td
{
   font: 13px Verdana,Arial,Tahoma;
}
Добавить после
Код: Выделить всё
#bb{display: inline-block;
}
Вроде все.

Добавлено спустя 15 минут 17 секунд:
Если например нам нужен бб код текст с тенью, то в файл php добавляем
Код: Выделить всё
$text = preg_replace('/\[shadow\](.*?)\[\/shadow\]/', '<span id="shadow">$1</span>',$text);
, добавляем кнопку в chat_body.html
Код: Выделить всё
<button onclick="bbcode('#message', '[shadow]', '[/shadow]')"title="Текст с тенью"><span id="shadow">s</span></button>
и добавляем стиль в style.css
Код: Выделить всё
#shadow{
      text-shadow: 1px 1px 3px #000000;
    }
angst66
Репутация: 13
С нами: 12 лет 3 месяца

Сообщение #452 sag-sag » 29.05.2015, 15:54

angst66, спасибо! Ток бы тебе это надо было написать в Мастерской, как готовое решение. И чтоб искать было легче.
sag-sag M
Аватара
Репутация: 411
С нами: 11 лет 3 месяца

Сообщение #453 Sumanai » 29.05.2015, 15:54

sag-sag:Ток бы тебе это надо было написать в Мастерской
Мы и так в мастерской. Могу добавить в первое сообщение ссылку на это.
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 10 месяцев

Сообщение #454 angst66 » 29.05.2015, 16:34

Делаем мобильный стиль. Можете поэксперементировать с размерами, я поставил такие.
chat_body html добавляем в head
Код: Выделить всё
<meta name="viewport" content="width=device-width, initial-scale=1" />
В конец файла style.css добавляем
Код: Выделить всё
@media (max-width: 900px  ) {
#footer{
visibility: hidden;
}
.transparency {display:none;}
 #main {right: 160px;}
 #users{width: 160px;}
  #smiles  {width: 160px;}
  #controlbox {right:160px;}
 #audio-notify{display:inline;padding: 5px;}
 #refresh{display:none;margin-bottom:0;}
.audio{display:inline;padding: 5px;}
}

@media (max-width: 500px  ) {
.slide_panel_wrap, #footer {
display:none;
}
.transparency{display:none;}
#main {width: 100%; bottom: 55px; padding: 5px;}
 #users{display:none;margin-bottom:0;}
 #smiles{display:none;margin-bottom:0;}
 #bb{display:none;margin-bottom:0;}
 #controlbox
{
   position: absolute;
   
    height: 30px;
   bottom: 20px;
   top: auto;
   
   left: 0;
   width: 100%;
}
#color, #sm{display:none;}
html, body{
   background: none;
   font: 11px Verdana, Arial, Tahoma;

top: auto;
   }
}
После правок увидеть эффект можно зайдя с телефона или складывая экран браузера.
angst66
Репутация: 13
С нами: 12 лет 3 месяца

Сообщение #455 sag-sag » 29.05.2015, 17:49

Sumanai, было б хорошо.
sag-sag M
Аватара
Репутация: 411
С нами: 11 лет 3 месяца

Сообщение #456 Sumanai » 29.05.2015, 18:24

Прописал в "Дополнительные правки" все полезности для чата, что нашёл.
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 10 месяцев

Сообщение #457 angst66 » 29.05.2015, 20:09

Sumanai, адаптивный стиль не заинтересовал?
angst66
Репутация: 13
С нами: 12 лет 3 месяца

Сообщение #458 Sumanai » 29.05.2015, 20:31

Не смотрел ещё.
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 10 месяцев

Сообщение #459 Dr.Death » 29.05.2015, 22:07

bb коды преобразуются стандартным парсером в пару строк
Dr.Death M
Аватара
Репутация: 69
С нами: 10 лет 5 месяцев

Сообщение #460 miha » 12.06.2015, 00:20

А на ucoz этот чат можно установить?
miha
Репутация: 0
С нами: 9 лет 6 месяцев

Пред.След.

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



cron