© 2017-2019, C3La-NS
На MyBB сейчас редко выходят новые скрипты, поэтому решил, что пришло время внести свою небольшую лепту.
Чат для форума Chat X
На MyBB мне всегда не хватало двух функций: портала и мгновенного чата. Последние, скажем, два года, периодическими набегами, я работал над новой версией чата. За основу был взят интересный скрипт на Tutorialzine, и доведен до такой степени, что от оригинального кода едва ли что-то осталось, за исключением разве что зависимых библиотек. Работа была проделана действительно большая, я начинал с нуля, с абсолютно нулевым знанием PHP и JavaScript, переделал все, что только было в моих силах, дошел до уровня "что-то знаю и понимаю в PHP и JavaScript" (за это моему чату отдельное спасибо, давно хотел освоить хотя бы на базовом уровне). Конечно, поскольку я любитель, красивый, четкий код совсем не обещаю. В дальнейшем буду приводить к более логичному виду, упрощать, и тут не помешала бы помощь умельцев. Чат вроде работает, при этом работает в современных браузерах, например в IE не работает, но думаю, на дворе 2019 год, очень мало людей все еще используют тот же IE. Количество багов сведено к минимуму, надеюсь не заметите, а если что-то и есть или обнаружится - будем править. Также заранее хочу внести ясность. Идея чата для форумов MyBB не нова, люди до меня использовали различные сервисы. Я же свою разработку позиционирую не как сервис, а как скрипт (по крайней мере текущие наработки). Это ключевое отличие. Здесь вам не будет рекламы, копирайтов, платных услуг. Кроме того, текущие наработки скрипта бесплатны. Вы можете делать все что угодно с кодом: любая модификация приветствуется. Также, я не обязуюсь оказывать тех. поддержку пользователей, то есть моя помощь и обслуживание будет зависеть от желания, настроения, положения планет. На текущем этапе проекта мне все равно будут ли люди пользоваться скриптом или нет. Разработка велась в собственное удовольствие. Дополнительно смею заранее сообщить о концепции и задумке ChatX. |
Требования:
Данный скрипт имеет ряд требований, которые, с одной стороны, могут отпугнуть, с другой - без некоторых требований скрипт попросту не мог бы существовать.
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; кроме того, в чате смогут состоять гости форума, предварительно указав свое имя. Обратите внимание, для гостей будет отсутствовать специальная иконка(индикатор авторизованного пользователя).
2.3 Интеграция с MyBB включена, читать сообщения могут только авторизованные пользователи, регистрация новых пользователей разрешена: в таком случае все пользователи вашего форума смогут состоять в чате, при этом процесс авторизации будет интегрирован с MyBB; гости, тем не менее, не смогут состоять в чате.
2.4 Интеграция с MyBB включена, читать сообщения могут только авторизованные пользователи, регистрация новых пользователей запрещена: в таком случае все существующие пользователи вашего форума смогут состоять в чате, при этом процесс авторизации будет интегрирован с MyBB; новые пользователи не смогут состоять в чате; гости также не смогут состоять в чате.
2.5 Интеграция с MyBB включена, читать сообщения могут все, регистрация новых пользователей запрещена: в таком случае все существующие пользователи вашего форума смогут состоять в чате, при этом процесс авторизации будет интегрирован с MyBB; новые пользователи не смогут состоять в чате; гости, тем не менее, смогут состоять в чате.3. Особенности работы чата с интеграцией для MyBB
3.1 Чат более уязвим к взлому доступа к чату (форум остается незатронутым)
3.2 Являясь модератором чата, ни при каких условиях не передавайте третьим лицам (к которым у вас нет доверия) свой UserUniqueID. Не передавайте третьим лицам исходный код вашего форума, поскольку он может содержать ваш UserUniqueID.
Работоспособность и ограничения:
Скрипт работает в современных браузерах. Поддержка браузеров выглядит следующим образом:
Работоспособность подтверждена
Работоспособность отсутствует
Использование скрипта на RusFF возможно, но требует дополнительной настройки (из-за их библиотек), могут быть некоторые изъяны. В текущей версии я не предоставляю поддержку RusFF, но надеюсь реализовать в дальнейшем. Если Вы, тем не менее, хотите установить чат на RusFF, пожалуйста, напишите мне в Личные Сообщения.
Установка:
Итак, если Вы хотите подключить чат к себе на форум, сделать это можно следующими способами:
Установка вручную на сервер:
Данный способ имеет важное преимущество - чат будет полностью ваш, вы ни от кого не зависите, вы восхитительны и молодцы. Минусы - устанавливать надо самому, нужен хостинг.
Шаги довольно логичные:
1) Скачайте архив ChatX (ЗЫ: рекомендуется самая последняя версия). СКАЧАТЬ / ИСТОЧНИК 2.
2) разархивируйте zip-файл на хостинге в предпочтительной вам директории (рекомендуется, чтобы хостинг был подключен к домену, с IP-адресом не тестировали).
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-сертификата -
. Пройдите требуемые шаги установки.
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