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

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

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

Сообщение #1 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 КБ) Скачиваний: 18006
    (версия для 3.1-
    phpbb3_simplechat_3.1.zip
    Исправленная версия для работы на 3.1
    (78.05 КБ) Скачиваний: 2313
    )
  • Скопируйте содержимое каталога 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 КБ) Скачиваний: 2204


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

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


Ссылки

Русскоязычная поддержка на phpbbguru.net
Англоязычная поддержка на phpbb.com
Последний раз редактировалось VEG 01.03.2020, 17:13, всего редактировалось 6 раз(а).
Причина: Дополнения для чата
С наилучшими пожеланиями, Евгений
VEG M
Автор темы, Администратор
Аватара
Возраст: 34
Откуда: Минск, Беларусь
Репутация: 1637
С нами: 9 лет 9 месяцев


Сообщение #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
С нами: 7 лет 6 месяцев

Сообщение #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
С нами: 9 лет 4 месяца

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

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

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

angst66, ты б выложил бы в Мастерскую, готовое решение. Думаю многие б восспользовались и были благодарны.
Заметки администратора [TEHADM.RU]
sag-sag M
Гуру
Аватара
Возраст: 35
Репутация: 411
С нами: 8 лет 5 месяцев

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

sag-sag, о каком решении речь?
angst66
Бывалый
Репутация: 13
С нами: 9 лет 4 месяца

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

angst66, про панель bb кодов чате
Screenshot_1.png
Screenshot_1.png (21.38 КБ) Просмотров: 10742
Заметки администратора [TEHADM.RU]
sag-sag M
Гуру
Аватара
Возраст: 35
Репутация: 411
С нами: 8 лет 5 месяцев

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

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

Сообщение #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 байт) Скачиваний: 394


Файл 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
С нами: 9 лет 4 месяца

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

angst66, спасибо! Ток бы тебе это надо было написать в Мастерской, как готовое решение. И чтоб искать было легче.
Заметки администратора [TEHADM.RU]
sag-sag M
Гуру
Аватара
Возраст: 35
Репутация: 411
С нами: 8 лет 5 месяцев

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

sag-sag:Ток бы тебе это надо было написать в Мастерской
Мы и так в мастерской. Могу добавить в первое сообщение ссылку на это.
Использование поиска продлевает жизнь.
Это форум поддержки форка phpBBex. Поддержка по phpBB осуществляется в других местах.
Sumanai M
Гуру
Аватара
Репутация: 1677
С нами: 8 лет 11 месяцев

Сообщение #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
С нами: 9 лет 4 месяца

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

Sumanai, было б хорошо.
Заметки администратора [TEHADM.RU]
sag-sag M
Гуру
Аватара
Возраст: 35
Репутация: 411
С нами: 8 лет 5 месяцев

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

Прописал в "Дополнительные правки" все полезности для чата, что нашёл.
Использование поиска продлевает жизнь.
Это форум поддержки форка phpBBex. Поддержка по phpBB осуществляется в других местах.
Sumanai M
Гуру
Аватара
Репутация: 1677
С нами: 8 лет 11 месяцев

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

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

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

Не смотрел ещё.
Использование поиска продлевает жизнь.
Это форум поддержки форка phpBBex. Поддержка по phpBB осуществляется в других местах.
Sumanai M
Гуру
Аватара
Репутация: 1677
С нами: 8 лет 11 месяцев

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

bb коды преобразуются стандартным парсером в пару строк
Моды не пишу, программированию не обучаю. Ваше незнание и нежелание знать, ваши проблемы, а не повод меня оскорблять. Минусите на здоровье, вдруг поможет.
Dr.Death M
Гуру
Аватара
Репутация: 69
С нами: 7 лет 6 месяцев

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

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

Пред.След.

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