Единый форум поддержки

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Единый форум поддержки » Новые возможности форумов » Собственный чат для форумов MyBB - ChatX


Собственный чат для форумов MyBB - ChatX

Сообщений 1 страница 20 из 48

1

© 2017-2019, C3La-NS

На MyBB сейчас редко выходят новые скрипты, поэтому решил, что пришло время внести свою небольшую лепту.

Чат для форума Chat X

https://i.imgur.com/3rx8zKE.png

На MyBB мне всегда не хватало двух функций: портала и мгновенного чата.
Первое было реализовано, вернее подобие, но тем не менее оно работает и многие оценили, многие предлагали свои наработки, за что им большое спасибо.
Когда-то я занимался и чатом, сделал перетаскиваемое окошко в виде мини-диалога для сервиса Cbox. Правда, так как я не сриптописец, код вышел кривой, сложный, сложный в установке и с глюками, в общем, не рекомендую.

Последние, скажем, два года, периодическими набегами, я работал над новой версией чата. За основу был взят интересный скрипт на Tutorialzine, и доведен до такой степени, что от оригинального кода едва ли что-то осталось, за исключением разве что зависимых библиотек. Работа была проделана действительно большая, я начинал с нуля, с абсолютно нулевым знанием PHP и JavaScript, переделал все, что только было в моих силах, дошел до уровня "что-то знаю и понимаю в PHP и JavaScript" (за это моему чату отдельное спасибо, давно хотел освоить хотя бы на базовом уровне). Конечно, поскольку я любитель, красивый, четкий код совсем не обещаю. В дальнейшем буду приводить к более логичному виду, упрощать, и тут не помешала бы помощь умельцев.

Чат вроде работает, при этом работает в современных браузерах, например в IE не работает, но думаю, на дворе 2019 год, очень мало людей все еще используют тот же IE.

Количество багов сведено к минимуму, надеюсь не заметите, а если что-то и есть или обнаружится - будем править.

Также заранее хочу внести ясность. Идея чата для форумов MyBB не нова, люди до меня использовали различные сервисы. Я же свою разработку позиционирую не как сервис, а как скрипт (по крайней мере текущие наработки). Это ключевое отличие. Здесь вам не будет рекламы, копирайтов, платных услуг. Кроме того, текущие наработки скрипта бесплатны. Вы можете делать все что угодно с кодом: любая модификация приветствуется. Также, я не обязуюсь оказывать тех. поддержку пользователей, то есть моя помощь и обслуживание будет зависеть от желания, настроения, положения планет. На текущем этапе проекта мне все равно будут ли люди пользоваться скриптом или нет. Разработка велась в собственное удовольствие.

Дополнительно смею заранее сообщить о концепции и задумке ChatX.
Возможно данный чат заметно отличается своей концепцией от других сайтовых и форумных аналогов. Этот продукт - по большей части моё личное видение на то, каким чат может быть. Я не опирался на аналоги, лишь на базовые принципы. Выбранная исходная идея - компактный мини-диалог, нечто похожее на мини-диалоги в соцсетях (а-ля Вконтакте).

https://imgur.com/8KD7BIK.png

 

https://i.imgur.com/ZRCvmH0.png   Демонстрация


Требования:
Данный скрипт имеет ряд требований, которые, с одной стороны, могут отпугнуть, с другой - без некоторых требований скрипт попросту не мог бы существовать.

1) Наличие сервера. Мы собираемся отправлять и выводить сообщения, для этого нам нужно где-то их хранить. MyBB такой возможности не предоставляет, поэтому вам понадобится аккаунт на хостинге, с поддержкой PHP не ниже версии 5.5. У вас нет хостинга? - Можете купить. Не хотите покупать? - Можете зарегистрироваться бесплатно например на Beget.free, сам скрипт там же и разрабатывался (мигрируя с платного на бесплатный время от времени). Для скрипта не требуется база данных MySQL, потому что он настолько простой, что будем хранить сообщения прямо в файлах. На этом заканчиваются требования от хостинга.

2) Готовность внести некоторые правки в код (минимальные и простые). Хотя скрипт и так разрабатывался из соображений наименьшего вмешательства пользователя в настройку, установку, есть вещи которые я не смог автоматизировать или из-за недостатка знаний или потому, что это невозможно физически. Благо, они необязательные.

На этом, пожалуй, все.

Возможности чата:
Перечисляю основный возможности и особенности чата:

Свернутый текст

Внешний вид мини-диалога, перетаскивается по экрану, при этом запоминает координаты. Для удобства чтения, можно изменять размер по вертикали. Сворачивается в правый нижний угол по клику, запоминает состояние. Если чат уйдет по какой-либо причине за видимую область - координаты будут сброшены. Подгружает последние 20 сообщений, для этого парсит Json. Быстрое и медленное обновление (запросы к серверу): как часто обновляется контент (настраивается в панели), также отдельная кнопочка ручного обновления контента. Чат поддерживает основные BB-теги, работает по схожей схеме, что и на MyBB. Эмоджи + преобразование текстовых смайликов в графические, при включённой соответствующей опции. Есть загрузка графических файлов на сторонний фотохостинг (imgur.com) и вставка их в сообщения. Отправка по кнопке самолетика или по клавише ENTER. Публичный режим работы - когда каждый может публиковать и просматривать сообщения просто указав свой ник-нейм. Приватный режим - когда читать сообщения и писать могут только авторизованные пользователи. Модераторская панель, где вы можете управлять сообщениями, пользователями, изменять настройки чата. Есть возможность автоматического удаления, после N-ого времени (кроме последних 50 сообщений (опционально)), но требует ручного добавления скрипта в CRON. Работает на большинстве сайтов, где установлен код и указан соответствующий домен через настройки (необходимо для соблюдения политики CORS). Гибкая настройка цветовой гаммы чата (отдельным файлом). Русская версия интерфейса, английская. Безопасно (вроде): Cookies защищены, пароли хэшируются современными методами, JSON-файлы (которые выступают в роли БД) недоступны извне. Скрипт подгружается асинхронно, следовательно замедлять работу форума не будет. База данных организована непосредственно в файлах. Наиболее простая процедура установки, работа приложения из коробки.

Интеграция с MyBB:
Скрипт имеет достаточно простенькую, но рабочую систему авторизации по данным форума. Далее описывается принцип работы, варианты работы и некоторые особенности, которые следует знать:

Свернутый текст

1. Принцип работы авторизации по данным форума
1.1 Интеграция с MyBB должна быть включена в настройках чата.
1.2 Чат использует две переменные на форуме UserLogin (логин текущего пользователя) и UserUniqueID (уникальный идентификатор, служащий паролем для чата).
1.3 Чат попытается авторизовать автоматически при загрузке страницы, при условии, что этот пользователь - не гость.
1.4 Если чат определит, что в базе данных чата такого пользователя не существует и при этом на форуме такой пользователь существует, пользователю будет предложено "войти в конференцию", после нажатия соответствующей кнопки, пользователь будет зарегистрирован в базе данных чата.

2. Варианты работы чата с интеграцией для MyBB
2.1 Интеграция с MyBB выключена: в таком случае пользователям придется самостоятельно регистрироваться в чате и самостоятельно авторизовываться (если данные опции включены).
2.2 Интеграция с MyBB включена, читать сообщения могут все, регистрация новых пользователей разрешена: в таком случае все пользователи вашего форума смогут состоять в чате, при этом процесс авторизации будет интегрирован с MyBB; кроме того, в чате смогут состоять гости форума, предварительно указав свое имя. Обратите внимание, для гостей будет отсутствовать специальная иконка https://i.imgur.com/d69Oq8H.png (индикатор авторизованного пользователя).
2.3 Интеграция с MyBB включена, читать сообщения могут только авторизованные пользователи, регистрация новых пользователей разрешена: в таком случае все пользователи вашего форума смогут состоять в чате, при этом процесс авторизации будет интегрирован с MyBB; гости, тем не менее, не смогут состоять в чате.
2.4 Интеграция с MyBB включена, читать сообщения могут только авторизованные пользователи, регистрация новых пользователей запрещена: в таком случае все существующие пользователи вашего форума смогут состоять в чате, при этом процесс авторизации будет интегрирован с MyBB; новые пользователи не смогут состоять в чате; гости также не смогут состоять в чате.
2.5 Интеграция с MyBB включена, читать сообщения могут все, регистрация новых пользователей запрещена: в таком случае все существующие пользователи вашего форума смогут состоять в чате, при этом процесс авторизации будет интегрирован с MyBB; новые пользователи не смогут состоять в чате; гости, тем не менее, смогут состоять в чате.

3. Особенности работы чата с интеграцией для MyBB
3.1 Чат более уязвим к взлому доступа к чату (форум остается незатронутым)
3.2 Являясь модератором чата, ни при каких условиях не передавайте третьим лицам (к которым у вас нет доверия) свой UserUniqueID. Не передавайте третьим лицам исходный код вашего форума, поскольку он может содержать ваш UserUniqueID.

Работоспособность и ограничения:

Скрипт работает в современных браузерах. Поддержка браузеров выглядит следующим образом:

https://i.imgur.com/pjD0L4z.png

https://i.imgur.com/8HEkxSy.png

https://i.imgur.com/69ZEiRE.png

https://i.imgur.com/qB2Eaxb.png

https://i.imgur.com/VBRAvKR.png

https://i.imgur.com/JMjwj9B.png

Работоспособность подтверждена
Работоспособность отсутствует

Использование скрипта на RusFF возможно, но требует дополнительной настройки (из-за их библиотек), могут быть некоторые изъяны. В текущей версии я не предоставляю поддержку RusFF, но надеюсь реализовать в дальнейшем. Если Вы, тем не менее, хотите установить чат на RusFF, пожалуйста, напишите мне в Личные Сообщения.




Установка:

Итак, если Вы хотите подключить чат к себе на форум, сделать это можно следующими способами:

Установка вручную на сервер:
Данный способ имеет важное преимущество - чат будет полностью ваш, вы ни от кого не зависите, вы восхитительны и молодцы. Минусы - устанавливать надо самому, нужен хостинг.
Шаги довольно логичные:

1) Скачайте архив ChatX (ЗЫ: рекомендуется самая последняя версия). СКАЧАТЬ / ИСТОЧНИК 2.
2) разархивируйте zip-файл на хостинге в предпочтительной вам директории (рекомендуется, чтобы хостинг был подключен к домену, с IP-адресом не тестировали).

Подробная процедура на примере Beget.Free

1) Пройдите процедуру регистрации на Beget.Free. Внимание! Требуется рабочий номер телефона!
2) Вам будет предоставлен бесплатный домен третьего уровня, который будет выглядеть примерно так: fh5415z7.bget.ru;
3) Авторизовавшись в аккаунте, перейдите в панель управления (https://cp.beget.com/main);
4) Перейдите в Файловый менеджер. Откроется новая вкладка с содержимым вашего сайта;
5) Вы должны перейти в директорию вашего сайта (то есть, например, fh5415z7.bget.ru => public_html);
6) Загрузите через файловый менеджер скаченный архив ChatX, кликнув по пункту "Загрузить файлы";
7) Как только архив будет загружен, распакуйте его. Для этого нажмите по файлу правой кнопкой мыши и выберите опцию "Распаковать архив";
8) Если Вы сделали все правильно, архив должен распаковаться в автоматически создавшуюся папку "chatx";
9) Наберите адрес вашего сайта в новой вкладке и добавьте после домена директорию chatx (то есть, fh5415z7.bget.ru/chatx/);
10) Вы должны увидеть серый фон страницы, а в нижнем правом углу будет свернутый виджет чата. Теперь остается только авторизоваться как модератор чата, перейти в модер-панель, скопировать код виджета и вставить его на форум. Установка завершена!


Дополнительно: сервис Beget позволяет бесплатно подключать SSL-сертификаты через сервис Let's Encrypt. В панели управления откройте ссылку "Домены и поддомены", напротив вашего домена найдите иконку SSL-сертификата - https://i.imgur.com/1E4mtMG.png. Пройдите требуемые шаги установки.
SSL-сертификат заметно повысит безопасность чата, а также получит бОльшее доверие со стороны браузера.

3) Зайдите на ваш сайт, в директорию /chatx/
Если перед вами страница с серым фоном, а в правом нижнем углу свернутый виджет чата - Вы сделали все правильно.
4) Протестируйте чат, чтобы понять совместим ли он с вашим хостингом. Если все работает - супер.
5) Авторизуйтесь в модераторскую панель, перейдите в "Настройки чата" введите в поле "Внешний домен" адрес вашего форума без конечного слэша ( / ). Затем перейдите на главную модераторской панели, скопируйте готовый виджет и добавьте куда-нибудь на форум.
Готово.

Установка через меня на мой сервер:
Внимание! Количество заявок ограничено, я не располагаю мощным сервером, поэтому буду смотреть по нагрузке.

1) Оставьте заявку под этой темой:

Код:
[b]Адрес форума[/b]
[b]Имя администратора чата[/b]
[b]Количество зарегистрированных пользователей[/b]

2) Если есть свободные места - я отправлю данные личным сообщением.

(!) Используя ChatX через мой сервер вы обязуетесь исполнять правила.

Пользовательское соглашение

Используя чат "ChatX" Вы обязуетесь исполнять пользовательское соглашение MyBB, а также соглашение CELANS.RU (XLNS.RU).

Пользователь в полной мере ответственен за все действия, производимые под его регистрационным именем и паролем его виджета ChatX, расположенного на серверах CELANS.RU, приведённое далее.

Пользователь обязуется не использовать услуги CELANS.RU для целей, противоречащих Российскому законодательству, нарушающих конфиденциальность информации или вызывающих сбои в работе системы. В случае нарушения этого обязательства любые данные пользователя могут быть удалены без предупреждения.

Пользователь не может требовать изменения предоставляемых услуг. Любые предложения носят лишь рекомендательный и ознакомительный характер, которые администрация CELANS.RU вправе не учитывать.

Публичное обсуждение действий представителя услуг может повлечь приостановку оказания услуг в одностороннем порядке без разъяснения причин.

Администрация CELANS.RU имеет право в одностороннем порядке прекратить оказание услуг.

Администрация CELANS.RU имеет право изменять пользовательское соглашение без предупреждения пользователей.


Мой сайт с новостями, полезными инструкциями и проч. — XLNS.RU

+12

2

слишком сложно все
и сделайте вход через вк, гугл
белый фон

0

3

tartar1
Установка должна быть одна из самых простых среди скриптов чата.

tartar1 написал(а):

сделайте вход через вк, гугл

Скрипт поддерживает автоматическую авторизацию по данным форума, поэтому не вижу смысла во входе по гуглу и вк. По крайней мере пока что.

tartar1 написал(а):

белый фон

Цветовая гамма меняется достаточно просто. Для этого я создал отдельный CSS-файл с цветовой палитрой чата. сделать свой шаблон можно за 5 минут.

+3

4

C3La-NS
:cool:  :jumping:

+3

5

Чат обновлен до версии 1.9.0.
Это небольшое обновление скрипта направлено на улучшение модераторской панели чата.
Теперь выбор сообщений реализован через чек-боксы. Кроме того, теперь поддерживается множественный выбор и удаление сообщений.

https://imgur.com/KuP48Ah.png

Также были добавлены две новые настройки чата: 1) максимальное число сообщений в виджете (стандартно 20), 2) максимальное число сообщений в истории чата (стандартно 50).

+5

6

Чат обновлен до версии 2.0.0.

https://i.imgur.com/ojqNUiC.png

Теперь новые сообщения отображаются снизу — так же, как это реализовано в большинстве популярных мессенджерах.
Загруженные изображения (в том числе вставленные по внешней ссылке, но кроме форматов .png и .gif) отображаются в чате в миниатюре. Полный размер доступен по ссылке на источник или, при включенной библиотеке Featherlight, по клику в модальном окне. В теории это позволит виджету загружаться быстрее и экономить трафик.
Всем изображениям теперь автоматически указывается высота, что позволяет избежать дерганье контента чата происходивших ранее в некоторых случаях.
Переработан интерфейс загрузки изображений по внешней ссылке. Также изображения вставленные по внешней ссылке перезагружаются на imgur.com.
Кнопка «ответить» теперь сокращена до значка-иконки.
Помощь по чату отныне скрыта и отображается по клику на спойлер.
Изменение высоты чата теперь интуитивно понятнее.

Была проведена небольшая работа над кодом. Скорость загрузки виджета на странице должна быть увеличена.

+5

7

C3La-NS написал(а):

Теперь новые сообщения отображаются снизу — также, как это реализовано в большинстве популярных мессенджерах.

:jumping:  :cool:

Слегка прорекламил на ролках  :flag:

Отредактировано Deff (Пн, 6 Янв 2020 21:47:26)

+3

8

Deff
Спасибо (=

+2

9

Я категорически против чатов на форумах МайББ. Там разно или поздно начинают спамить. А сидеть на форуме круглосуточно невозможно, чтобы его контролировать.
Вот сами убедитесь http://politforum.1bb.ru/

0

10

Faony
Дело такое.

Хотя, в моем чате в ранней версии иногда спамили боты. Я переделывал код и сделал два поля для ник-нейма, одно настоящее, одно получается ложное генерируемое на JavaScript, но требующее заполнения для отправки формы. Собственно, цель переделки такой была в другом, но на удивление это остановило спам-ботов, ни разу спам не проходил.
А позже я сделал приватный режим для своего чата, чтобы только пользователи (/форума) могли общаться в чате. Можно пойти дальше и выдавать инвайты в чат, тогда спам будет почти на 100% исключен. Все таки тот чат, что Вы показали - публичный. Мой имеет очень простую, но рабочую интеграцию с форумом MyBB.

+3

11

Faony
Вообще то тут "Новые возможности форумов" а не обсуждение.
По моему мнению, тут желательно писать только заявки:

Установка через меня на мой сервер:
Внимание! Количество заявок ограничено, я не располагаю мощным сервером, поэтому буду смотреть по нагрузке.

1) Оставьте заявку под этой темой:

Код:
[b]Адрес форума[/b]
[b]Имя администратора чата[/b]
[b]Количество зарегистрированных пользователей[/b]

Отредактировано ACT3255 (Вт, 7 Янв 2020 11:53:55)

+4

12

Чат обновлен до версии 2.1.0.
В этой версии:
• Добавлена возможность модифицировать CSS стиль никнеймов отдельных зарегистрированных пользователей. Данное дополнение может быть удобно для выделения некоторых пользователей определенным цветом. CSS правило лучше добавлять до кода скрипта и будет выглядит так:

<style>
.shoutbox-username b[data-name="admin"] /* где admin - никнейм пользователя */ {
    color: red; /* где red - цвет выделения пользователя */
}
</style>

• Исправлены известные баги.

+4

13

Чат обновлен до версии 2.2.0.

https://imgur.com/8KD7BIK.png https://imgur.com/vIsYzWl.png

Это достаточно серьезное обновление. Чат получил не хватавшую ему ранее систему уведомлений:

Теперь, при наличии нового сообщения, в свернутом виде чат покажет цифру "один" для всех пользователей: https://imgur.com/o4xdFbm.png
В развернутом виде, при условии, что Вы вошли в чат как пользователь, вам будут приходить звуковые оповещения о новых сообщениях. В модераторской панели Вы можете выбрать один из трех вариантов звука для уведомления, либо полностью отключить их для всех.

https://imgur.com/PLWCgS9.png

Авторизованный пользователь также может индивидуально отключать звук для оповещений нажав по шестеренке, а затем по значку звука.

Теперь, при условии, что Вы авторизованы в чат как пользователь, ваши сообщения в ленте будут подсвечиваться.

Кроме того, мы отказались от использования "брендовой" надписи ChatX в верхнем левом крае виджета. Теперь, в зависимости от локализации, пользователю будет показываться заглавие "Чат" или "Chat".

Упрощена возможность создания индивидуального цветового оформления для чата. Теперь стиль чата можно настроить всего за пару минут с помощью новый универсальных переменных. В дальнейшем мы планируем создать генератор стилей для чата.

Исправлен ряд недочетов и ошибок.


Скрипт выводится из активной фазы тестирования, так как его работоспособность на MyBB была полностью подтверждена. До сих пор остается несколько нерешенных вопросов: скрипт из коробки не работает на RusFF (видимо сервис мертв, смысла оптимизировать чат под него нет); недочет с хранением сессий не распространяется на MyBB при включенной с ним интеграции. Таким образом, чат не имеет серьезных нареканий в работе, а мелкие ошибки и недочеты практически полностью исправлены.

+4

14

C3La-NS

Теперь, при наличии нового сообщения, в свернутом виде чат покажет цифру "один" для всех пользователей

В развернутом виде, при условии, что Вы вошли в чат как пользователь, вам будут приходить звуковые оповещения о новых сообщениях.

Вот этого я ждал.
Спасибо  :cool:

Отредактировано ACT3255 (Вт, 3 Мар 2020 14:11:25)

0

15

Постоянно выскакивает уведомление "1" когда чат пустой, как побороть?
https://i.imgur.com/egujdj0m.png
https://i.imgur.com/JfHOfu6m.png

0

16

ACT3255 написал(а):

Постоянно выскакивает уведомление "1" когда чат пустой, как побороть?

Чат не пустой, раз вы на этой  странице, он вас считает

0

17

nebelka
Теперь, при наличии нового сообщения, в свернутом виде чат покажет цифру "один" для всех пользователей: https://imgur.com/o4xdFbm.png
Чат закрыт, сообщений нет, уведомление не должно как бы выскакивать о новых сообщениях.

Отредактировано ACT3255 (Пн, 30 Мар 2020 11:10:44)

0

18

ACT3255
Принял, готовлю ряд исправлений  :hobo:

+3

19

C3La-NS
Не то что раздражает, а ...

Отредактировано ACT3255 (Вт, 31 Мар 2020 08:36:13)

0

20

ACT3255
Обновил тебе код скрипта. Удали кэш.
Добавлено спустя 31 минуту 47 секунд:
и еще раз подправил.

Свернутый текст

Решение пока что не идеальное, хотя работает, пока пойдет. В идеале нужно реализовать функцию "запомнить меня", чтоб сессии дольше жили. Собственно, на MyBB c автоматической авторизацией этот недостаток скрипта почти не проявляется, но решить проблему в любом случае надо, очень постараюсь исправить к новой версии...

+3


Вы здесь » Единый форум поддержки » Новые возможности форумов » Собственный чат для форумов MyBB - ChatX