Интеграция с AJAX Chat - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

Теги не найдены

Страница 1 из 1

Интеграция с AJAX Chat

#1 Пользователь не на сайте   corvax ответил: »

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 7
  • Регистрация: 05-Январь 15
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 05 Январь 2015 - 01:57

Доброго времени суток дорогие форумчане ^_^ !

Имеется проблема интеграции форума с AJAX Chat
(Выбрал по причине скорости удобства и бесплатности, а главное он нормально работает по https в отличии от многострадального IP.Chat)

Сама интеграция происходит через IPBWI, который сконфигурирован верно и работает исправно.

Чат установлен в отдельную папку в корне форума(Standalone версия)
Интеграцию делал по этому гайду

По пунктам:
  • Создал БД для чата
  • Прописал её в конфиг в lib/config.php
  • Запустил install.php, все таблички создались успешно

  • Законтачил чат с IPBWI
    /lib/custom.php
    // Include custom libraries and initialization code here
    require_once('../ipbwi/ipbwi.inc.php');
    
    // Error Output
    echo $ipbwi->printSystemMessages();


  • И непосредственно интеграция логинов:
    /lib/class/CustomAJAXChat.php
    class CustomAJAXChat extends AJAXChat {
    
        // Initialize custom request variables:
        function initCustomRequestVars() {
            global $ipbwi;
    
            // Auto-login IPB users:
            if(!$this->getRequestVar('logout') && $ipbwi->member->isLoggedIn()) {
                $this->setRequestVar('login', true);
            }
        }
    
        // Returns true if the userID of the logged in user is identical to the userID of the authentication system
        // or the user is authenticated as guest in the chat and the authentication system
        /*function revalidateUserID() {
            global $ipbwi;
    
            $m_info = $ipbwi->member->info();
            if($this->getUserRole() === AJAX_CHAT_GUEST && !$ipbwi->member->isLoggedIn() || ($this->getUserID() === $m_info["id"])) {
                return true;
            }
            return false;
        }*/
    
        // Returns an associative array containing userName, userID and userRole
        // Returns null if login is invalid
        function getValidLoginUserData() {
            global $ipbwi;
    
            if ($ipbwi->member->isLoggedIn()) {
                $m_info = $ipbwi->member->info();
                $userData = array();
                $userData["userID"] = $m_info["id"];
                $userData["userName"] = $this->trimUserName($m_info["members_display_name"]);
                if ($ipbwi->member->isAdmin()) {
                    $userData["userRole"] = AJAX_CHAT_ADMIN;
                } elseif ($ipbwi->member->isSuperMod()) {
                    $userData["userRole"] = AJAX_CHAT_USER;
                } else {
                    $userData["userRole"] = AJAX_CHAT_USER;
                }
                return $userData;
            } else {
                // Guest users
                return $this->getGuestUser();
            }
        }
    }
    
        // Store the channels the current user has access to
        // Make sure channel names don't contain any whitespace
        function &getChannels() {
            if($this->_channels === null) {
                $this->_channels = array();
    
                $allChannels = $this->getAllChannels();
    
                // Get the channels, the user has access to:
                if($this->getUserRole() != AJAX_CHAT_GUEST) {
                    $validChannels = $allChannels;
                }
    
                // Add the valid channels to the channel list (the defaultChannelID is always valid):
                foreach($this->getAllChannels() as $key=>$value) {
                    // Check if we have to limit the available channels:
                    if($this->getConfig('limitChannelList') && !in_array($value, $this->getConfig('limitChannelList'))) {
                        continue;
                    }
    
                    if(in_array($value, $validChannels) || $value == $this->getConfig('defaultChannelID')) {
                        $this->_channels[$key] = $value;
                    }
                }
            }
            return $this->_channels;
        }
    
        // Store all existing channels
        // Make sure channel names don't contain any whitespace
        function &getAllChannels() {
            if($this->_allChannels === null) {
                // Get all existing channels:
                $customChannels = $this->getCustomChannels();
    
                $defaultChannelFound = false;
    
                foreach($customChannels as $key=>$value) {
                    $forumName = $this->trimChannelName($value);
    
                    $this->_allChannels[$forumName] = $key;
    
                    if($key == $this->getConfig('defaultChannelID')) {
                        $defaultChannelFound = true;
                    }
                }
    
                if(!$defaultChannelFound) {
                    // Add the default channel as first array element to the channel list:
                    $this->_allChannels = array_merge(
                        array(
                            $this->trimChannelName($this->getConfig('defaultChannelName'))=>$this->getConfig('defaultChannelID')
                        ),
                        $this->_allChannels
                    );
                }
            }
            return $this->_allChannels;
        }
        function &getCustomUsers() {
            // List containing the registered chat users:
            $users = null;
            require(AJAX_CHAT_PATH.'lib/data/users.php');
            return $users;
        }
    
        function &getCustomChannels() {
            // List containing the custom channels:
            $channels = null;
            require(AJAX_CHAT_PATH.'lib/data/channels.php');
            return $channels;
        }
    ?>


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

НО: Список пользователей онлайн работает неверно, залогинившиеся пользователи в него не добавляются.

Прошу помочь кто чем может :(
0

#2 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 256
  • Регистрация: 20-Март 09
  • Репутация: 2 069
  • IPB version:3.1.x
 

Отправлено 05 Январь 2015 - 12:30

Если ipbwi использует апи форума то должны отображаться, зависит от того создается новая сессия или нет.
0

#3 Пользователь не на сайте   corvax ответил: »

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 7
  • Регистрация: 05-Январь 15
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 05 Январь 2015 - 16:03

Просмотреть сообщениеsiv1987 05 Январь 2015 - 12:30 сказал(а):

Если ipbwi использует апи форума то должны отображаться, зависит от того создается новая сессия или нет.

Немного конкретизирую:
В списке каждый новый зашедший пользователь заменяет другого, в итоге зашедших пользователей к примеру три, а строчка в списке всегда одна и она меняется.
0

#4 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 256
  • Регистрация: 20-Март 09
  • Репутация: 2 069
  • IPB version:3.1.x
 

Отправлено 05 Январь 2015 - 20:13

Не совсем понял, что значит заменяется? Большое вступление про чат, но ни слово о том, какое отношение чат имеет к списку онлайн? Либо вы о другом списке онлайн говорите? Указывайте пожалуйста правильный адрес форума в board url, или на ipbskins'е появился чат о котором мы не знаем?..
Интуиция подсказывает, что возможно вам нужен x-forwarded-for
0

#5 Пользователь не на сайте   corvax ответил: »

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 7
  • Регистрация: 05-Январь 15
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 06 Январь 2015 - 01:53

Вот этот список, в самом чате(извиняюсь что ввел в заблуждение)
-IMG-
0

#6 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 256
  • Регистрация: 20-Март 09
  • Репутация: 2 069
  • IPB version:3.1.x
 

Отправлено 06 Январь 2015 - 02:01

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

#7 Пользователь не на сайте   corvax ответил: »

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 7
  • Регистрация: 05-Январь 15
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 06 Январь 2015 - 02:29

Просмотреть сообщениеsiv1987 06 Январь 2015 - 02:01 сказал(а):

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

Спасибо.
Вот бы ещё знаний хватило это сделать :(
0

#8 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 256
  • Регистрация: 20-Март 09
  • Репутация: 2 069
  • IPB version:3.1.x
 

Отправлено 06 Январь 2015 - 13:14

Во всем этом г нужно копаться, телепатия здесь не поможет. А устанавливать ради этого чат у меня нет ни времени ни желания, если дадите доступ к форуму могу посмотреть.
0

#9 Пользователь не на сайте   Zero108 ответил: »

 
 
  • Advanced
  • ***
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1 556
  • Регистрация: 25-Июль 09
  • Репутация: 92
  • IPB version:4.1.x
 

Отправлено 06 Январь 2015 - 21:41

Неужели еще кто-то чатами пользуется?!
0

Сообщить об этой теме:


Страница 1 из 1


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна