corvax 0 01/04/15 22:58 Доброго времени суток дорогие форумчане ^_^ ! Имеется проблема интеграции форума с 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.phpclass 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; } ?> В итоге сам чат работает нормально(логины проходят, пользователи определяются и могут слать сообщения). НО: Список пользователей онлайн работает неверно, залогинившиеся пользователи в него не добавляются. Прошу помочь кто чем может :( Поделиться сообщением Ссылка на сообщение
siv1987 2628 01/05/15 09:31 Если ipbwi использует апи форума то должны отображаться, зависит от того создается новая сессия или нет. Поделиться сообщением Ссылка на сообщение
corvax 0 01/05/15 13:04 Если ipbwi использует апи форума то должны отображаться, зависит от того создается новая сессия или нет.Немного конкретизирую:В списке каждый новый зашедший пользователь заменяет другого, в итоге зашедших пользователей к примеру три, а строчка в списке всегда одна и она меняется. Поделиться сообщением Ссылка на сообщение
siv1987 2628 01/05/15 17:14 Не совсем понял, что значит заменяется? Большое вступление про чат, но ни слово о том, какое отношение чат имеет к списку онлайн? Либо вы о другом списке онлайн говорите? Указывайте пожалуйста правильный адрес форума в board url, или на ipbskins'е появился чат о котором мы не знаем?..Интуиция подсказывает, что возможно вам нужен x-forwarded-for Поделиться сообщением Ссылка на сообщение
corvax 0 01/05/15 22:54 Вот этот список, в самом чате(извиняюсь что ввел в заблуждение) Поделиться сообщением Ссылка на сообщение
siv1987 2628 01/05/15 23:02 Увы, но тут нужно копать каким образом этот чат выводит список пользователей и имеет ли вообще эта проблема отношения к ипб. Попробуйте в бд отыскать где содержится информация о онлайн пользователях. Поделиться сообщением Ссылка на сообщение
corvax 0 01/05/15 23:30 Увы, но тут нужно копать каким образом этот чат выводит список пользователей и имеет ли вообще эта проблема отношения к ипб. Попробуйте в бд отыскать где содержится информация о онлайн пользователях.Спасибо.Вот бы ещё знаний хватило это сделать :( Поделиться сообщением Ссылка на сообщение
siv1987 2628 01/06/15 10:15 Во всем этом г нужно копаться, телепатия здесь не поможет. А устанавливать ради этого чат у меня нет ни времени ни желания, если дадите доступ к форуму могу посмотреть. Поделиться сообщением Ссылка на сообщение
Zero108 124 01/06/15 18:42 Неужели еще кто-то чатами пользуется?! Поделиться сообщением Ссылка на сообщение