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 16692 times
    (версия для 3.1-
    phpbb3_simplechat_3.1.zip
    Исправленная версия для работы на 3.1
    (78.05 KiB) Downloaded 1441 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 1787 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: 30
Location: Минск, Беларусь
Reputation: 1574
With us: 5 years 7 months


Post #441by motorist828 » 16.04.2015, 04:19

Поставил на форум чат согласно инструкции, но при открытие чата получаю лишь ошибку
Spoiler
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, его логи

Spoiler
[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
Гость

Post #442by Dr.Death » 16.04.2015, 08:20

Моды не пишу, программированию не обучаю. Ваше незнание и нежелание знать, ваши проблемы, а не повод меня оскорблять. Минусите на здоровье, вдруг поможет.
Dr.Death M
Гуру
Avatar
Reputation: 69
With us: 3 yaers 5 months

Post #443by motorist828 » 16.04.2015, 16:52

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

Post #444by Analog » 29.04.2015, 13:50

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

Post #445by angst66 » 30.04.2015, 18:40

Analog, Зайди посмотри у меня адрес в подписи.
Кстати, адаптировал под телефоны, убрал все лишнее, там же можно посмотреть, или сложить окно браузера.
angst66
Бывалый
Reputation: 13
With us: 5 years 3 months

Post #446by angst66 » 28.05.2015, 17:46

Очень удобно, когда о новом сообщение или теме бот сообщает в чате. И я думаю все сталкивались, когда сообщение, одобренное модератором и опубликованное на форуме не замечается ботом. Есть ли у кого решение?
angst66
Бывалый
Reputation: 13
With us: 5 years 3 months

Post #447by sag-sag » 28.05.2015, 17:55

angst66, ты б выложил бы в Мастерскую, готовое решение. Думаю многие б восспользовались и были благодарны.
Заметки системного администратора [TEHADM.RU]
sag-sag M
Гуру
Reputation: 359
With us: 4 yaers 3 months

Post #448by angst66 » 29.05.2015, 10:20

sag-sag, о каком решении речь?
angst66
Бывалый
Reputation: 13
With us: 5 years 3 months

Post #449by sag-sag » 29.05.2015, 11:14

angst66, про панель bb кодов чате
Screenshot_1.png
Screenshot_1.png (21.38 KiB) Viewed 4434 times
Заметки системного администратора [TEHADM.RU]
sag-sag M
Гуру
Reputation: 359
With us: 4 yaers 3 months

Post #450by ЖЪРЧИК » 29.05.2015, 11:59

Чат запиливается на главную?
Как тут: http://exbb.info/community/index.php , но с функцией сворачивания (и запоминанием). :think:
плешивый кот
ЖЪРЧИК
Гуру
Avatar
Reputation: 174
With us: 3 yaers 4 months

Post #451by angst66 » 29.05.2015, 15:00

Добавляем бб коды.
root/chat/index.php
Найти
Code: Select all
if((!$show) && ($user->data['username'] != $row['username']) ) continue;
Добавить после
Code: Select all
//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
Найти
Code: Select all
<table id="color" border="0" cellspacing="0px" cellpadding="2px" width="100%"><tr>
Вставить после
Code: Select all
<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>
Кнопки вы можете добавлять свои по аналогии.
Найти
Code: Select all
<title>{PAGE_TITLE} - {SITENAME}</title>
Добавить после
Code: Select all
<script type="text/javascript">
   <!-- INCLUDE bbcode.js -->
   </script>
Скачать и положить в папку root/chat/template файл bbcode.js
bbcode.zip
(418 Bytes) Downloaded 219 times


Файл bbcode.js
Code: Select all
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
Найти
Code: Select all
#controlbox table td
{
   font: 13px Verdana,Arial,Tahoma;
}
Добавить после
Code: Select all
#bb{display: inline-block;
}
Вроде все.

Added after 15 minutes 17 seconds:
Если например нам нужен бб код текст с тенью, то в файл php добавляем
Code: Select all
$text = preg_replace('/\[shadow\](.*?)\[\/shadow\]/', '<span id="shadow">$1</span>',$text);
, добавляем кнопку в chat_body.html
Code: Select all
<button onclick="bbcode('#message', '[shadow]', '[/shadow]')"title="Текст с тенью"><span id="shadow">s</span></button>
и добавляем стиль в style.css
Code: Select all
#shadow{
      text-shadow: 1px 1px 3px #000000;
    }
angst66
Бывалый
Reputation: 13
With us: 5 years 3 months

Post #452by sag-sag » 29.05.2015, 15:54

angst66, спасибо! Ток бы тебе это надо было написать в Мастерской, как готовое решение. И чтоб искать было легче.
Заметки системного администратора [TEHADM.RU]
sag-sag M
Гуру
Reputation: 359
With us: 4 yaers 3 months

Post #453by Sumanai » 29.05.2015, 15:54

sag-sag wrote:Ток бы тебе это надо было написать в Мастерской
Мы и так в мастерской. Могу добавить в первое сообщение ссылку на это.
Использование поиска продлевает жизнь.
Это форум поддержки форка phpBBex. Поддержка по phpBB осуществляется в других местах.
Sumanai M
Гуру
Avatar
Reputation: 1612
With us: 4 yaers 10 months

Post #454by angst66 » 29.05.2015, 16:34

Делаем мобильный стиль. Можете поэксперементировать с размерами, я поставил такие.
chat_body html добавляем в head
Code: Select all
<meta name="viewport" content="width=device-width, initial-scale=1" />
В конец файла style.css добавляем
Code: Select all
@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
Бывалый
Reputation: 13
With us: 5 years 3 months

Post #455by sag-sag » 29.05.2015, 17:49

Sumanai, было б хорошо.
Заметки системного администратора [TEHADM.RU]
sag-sag M
Гуру
Reputation: 359
With us: 4 yaers 3 months

Post #456by Sumanai » 29.05.2015, 18:24

Прописал в "Дополнительные правки" все полезности для чата, что нашёл.
Использование поиска продлевает жизнь.
Это форум поддержки форка phpBBex. Поддержка по phpBB осуществляется в других местах.
Sumanai M
Гуру
Avatar
Reputation: 1612
With us: 4 yaers 10 months

Post #457by angst66 » 29.05.2015, 20:09

Sumanai, адаптивный стиль не заинтересовал?
angst66
Бывалый
Reputation: 13
With us: 5 years 3 months

Post #458by Sumanai » 29.05.2015, 20:31

Не смотрел ещё.
Использование поиска продлевает жизнь.
Это форум поддержки форка phpBBex. Поддержка по phpBB осуществляется в других местах.
Sumanai M
Гуру
Avatar
Reputation: 1612
With us: 4 yaers 10 months

Post #459by Dr.Death » 29.05.2015, 22:07

bb коды преобразуются стандартным парсером в пару строк
Моды не пишу, программированию не обучаю. Ваше незнание и нежелание знать, ваши проблемы, а не повод меня оскорблять. Минусите на здоровье, вдруг поможет.
Dr.Death M
Гуру
Avatar
Reputation: 69
With us: 3 yaers 5 months

Post #460by miha » 12.06.2015, 00:20

А на ucoz этот чат можно установить?
miha
Новичок
Reputation: 0
With us: 2 yaers 5 months

PreviousNext

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