Простой Web-client для Jabber-конференции на базе XenForo

DiWorm

Проверенные
Сообщения
440
Реакции
142
Баллы
5,545
Не знаю — зачем я это пишу, но вдруг информация будет интересной для кого-то. :-)

Мне нужен был простейший веб-клиент для жаббер конференции и желательно интегрированый хоть как-то в форум.

Почему жаббер? Дело вкуса, свистоперделки и возможности красивых чатиков для ксена мне не нужны, а вот ламповая простота была просто необходима :-)

"+" данного метода:
1. Жаббер протокол
2. Скорость работы
3. Отсутствие какой-либо нагрузки на ваш хостинг

"-"
1. Сторонний веб-клиент(у SSL проблем не вызывает)
2. Отсутствие иерархии званий, т.к. все пользователи входят в чат в качестве гостей

К делу:
1. Нужно зарегистрировать себе Jabber аккаунт на (если его еще нету)
2. Создать конференцию через любой Jabber клиент(я использовал для этого qip) и настроить на свой вкус. Мои настройки:
2015-10-09 14-40-16 Конфигурация комнаты gamecoma@conference.jabber.ru.png
2015-10-09 14-40-30 Конфигурация комнаты gamecoma@conference.jabber.ru.png
2015-10-09 14-41-00 Конфигурация комнаты gamecoma@conference.jabber.ru.png

3. Зайти /forum/admin.php?link-forums/add
4. Создать страницу с параметрами которые вы хотите. В моем случае это:
2015-10-09 14-36-34 Редактировать страницу  Чат   Панель управления - GameComa - Google Chrome.png
5. На вкладке "Настройки страницы" добавить код:
Код:
<iframe src="https://chat.andreymal.org/[email protected]&nick={$visitor.username}" width="100%" height="600px" frameborder="no">Ваш браузер не поддерживает iframe</iframe>
Где [email protected] - полный адрес вашей комнаты, а {$visitor.username} - вывод имени пользователя форума в качестве ника.
Также - я запретил доступ гостям к данной странице, но вы можете разрешить и сделать вместо {$visitor.username} - простую конструкцию <xen if-else> с указанием точного ника для гостей. Веб-клиент при одинаковых никах - просто добавит случайное число к нику.
После сохранения страница будет доступна по адресу /forum/pages/НАЗВАНИЕ_СТРАНИЦЫ которое вы указали в поле "Часть URL-адреса"


Зачем все это нужно? Я например запустил уютного жаббер бота собственного производства, который помогает мне получать текущий статус моих игровых серверов и управлять ими.


Результат:
2015-10-09 14-51-22 Чат   GameComa - Google Chrome.png
 
Последнее редактирование:
Почему бы не сделать полноценную страницу свою, сделать собственные права, завернуть всё в дополнение и радоваться жизни :coffee::-) Собственные страницы (подробно)
Сам веб-чат от Andrey Mal не поддерживает авторизацию, а без авторизации я не смогу проверить через протокол права пользователя, да, можно захардкодить например на стороне бота такое: При входе сделать $username - модератором, но это плохая идея, как минимум потому, что те, кто посмотрят как генерируется ссылка iframe смогут подменить ник. Да и не стал бы я рисковать - передавать личные данные через него(веб-чат), мало-ли что :-).

Способ не совершенный, но рабочий, в данном случае создание полноценной "собственной" страницы просто не к месту.

P.S. Георгий Шевченко , вы ведь вроде под ксен не 1 мод сделали, может поможете с Написание скрипта изменения доп.полей пользователя через стандартный DataWriter от Х-пользователя ? :-)
 
Вот это очень даже нужная вещь

/forum/admin.php?link-forums/add где это находиться подробней(

Вы както поверхностно все описали просто мрак нет слов...
 
Последнее редактирование:
Вот это очень даже нужная вещь

/forum/admin.php?link-forums/add где это находиться подробней(

Вы както поверхностно все описали просто мрак нет слов...
На мой взгляд описано вполне подробно, вам никто не мешает сделать лучше и написать свою статью\гайд.
 
  • Мне нравится
Реакции: Hope
Интересно.
Была у меня в свое время другая идея - прикрутить вместо обычного чата веб-клиент жаббера. Вопрос только как сделать автовход пользователей под своими учетками.
Чисто теоретически - поднимаем сервер жаббера, синхронизируем базы учеток. Теперь у каждого пользователя форума есть учетка на жаббер-сервере.
Остается задача передавать веб-клиенту жаббера куки форума? Или как еще можно сделать вход?
Жаббер пускает в конференции без авторизации? Паролей то у пользователей нет.
 
Интересно.
Была у меня в свое время другая идея - прикрутить вместо обычного чата веб-клиент жаббера. Вопрос только как сделать автовход пользователей под своими учетками.
Чисто теоретически - поднимаем сервер жаббера, синхронизируем базы учеток. Теперь у каждого пользователя форума есть учетка на жаббер-сервере.
Остается задача передавать веб-клиенту жаббера куки форума? Или как еще можно сделать вход?
Жаббер пускает в конференции без авторизации? Паролей то у пользователей нет.
встраивается стороннее решение, любой вход в чат делается под учеткой с правами "гостя", на сервере же самого чата - генерируется временная учетка жаббер сервера(а может и не временная). По факту вы входите в чат с выбранным ником и учеткой примерно такого вида [email protected] , где 123456 случайные цифры выданные сервером автора чата. По этому я ограничил доступ на страницу для забаненных и гостей форума(не зарегистрированых), но конечно это не панацея, но и мне этого хватило с головой.
 
встраивается стороннее решение, любой вход в чат делается под учеткой с правами "гостя", на сервере же самого чата - генерируется временная учетка жаббер сервера(а может и не временная). По факту вы входите в чат с выбранным ником и учеткой примерно такого вида [email protected] , где 123456 случайные цифры выданные сервером автора чата. По этому я ограничил доступ на страницу для забаненных и гостей форума(не зарегистрированых), но конечно это не панацея, но и мне этого хватило с головой.
Понял, спасибо.
У меня была мысль об установке именно своего клиента (буквально вчера находил реализации на гитхабе), а не встраивание ифрейма. Видимо буду сам ковырять и выдумывать :)
 
Понял, спасибо.
У меня была мысль об установке именно своего клиента (буквально вчера находил реализации на гитхабе), а не встраивание ифрейма. Видимо буду сам ковырять и выдумывать :-)
Да на самом деле - ничего сложного в собственной реализации нету. Например, в кратце:
1. Ставим сервер (например Open-Fire), не знаю как в других, но у этого 100% использование для хранения данных есть MySQL
2. Пишем простой класс на добавление данных в параллельную базу (базу опен-фаера) при регистрации и смене пароля (можно модом, если умеем, но в моем случае - проще написать хардкодный костыль в 2 файла движка и потом тянуть этот костыль при всех обновлениях :-)
3. Профит :-)
 
С этим то понятно, я это уже делал, когда на SMF сидел (кстати тоже на опенфаер). :) Проблема возникает дальше. Что бы человек при входе на сайт сразу входил в чат (который на самом деле веб-клиент жаббера), причем входил под своей учеткой.
Сделать это хочу давно, что бы люди не заходя на форум могли общаться. А те, кто на форуме не испытывали трудностей с вводом лишних паролей.
 
Не я не об этом, я не силен в написании поэтому и высказался так что для моего взгляда крайне мало информации просто а эта вещь мне дико нужна...
 
Taz, возьмите API XenForo на github, там в принципе есть методы передачи состояния залогинен/не залогинен ну и с RestAPI OpenFire вполне себе можно подружить. Просто проверять состояние авторизации под указанным пользователем и без запроса пароля авторизовывать в джаббере.
 
Taz, возьмите API XenForo на github, там в принципе есть методы передачи состояния залогинен/не залогинен ну и с RestAPI OpenFire вполне себе можно подружить. Просто проверять состояние авторизации под указанным пользователем и без запроса пароля авторизовывать в джаббере.
Спасибо большое, сегодня и начну делать :)
Я даже не думал в сторону API, все мысли был о работе с базами напряму.
 
Спасибо большое, сегодня и начну делать :-)
Я даже не думал в сторону API, все мысли был о работе с базами напряму.
с ксеновой базой только через апи\врайтеры работать, по другому лучше не делать никак.
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу