Kunena и неправильное отображение кол-ва гостей на форуме
Проблема кучу раз описана: форум неверно показывает количество гостей на форуме. Авторы компонента сваливают все на кривую систему подсчета в Joomla. Но надо же как-то жить.
Решение для Kunena 2.0.2: вообще убрать отображение гостей. Радикально, плохо, зато действенно.
Открываем файл сайт/components/com_kunena/views/common/view.html.php, ищем функцию displayWhosonline и правим ее:
Было:
function displayWhosonline($tpl = null) { if ($this->offline) return; $moderator = intval($this->me->isModerator())+intval($this->me->isAdmin()); $cache = JFactory::getCache('com_kunena', 'output'); if ($cache->start("{$this->ktemplate->name}.common.whosonline.{$moderator}", "com_kunena.template")) return; $users = KunenaUserHelper::getOnlineUsers(); KunenaUserHelper::loadUsers(array_keys($users)); $onlineusers = KunenaUserHelper::getOnlineCount(); $who = '<strong>'.$onlineusers['user'].' </strong>'; if($onlineusers['user']==1) { $who .= JText::_('COM_KUNENA_WHO_ONLINE_MEMBER').' '; } else { $who .= JText::_('COM_KUNENA_WHO_ONLINE_MEMBERS').' '; } $who .= JText::_('COM_KUNENA_WHO_AND'); $who .= '<strong> '. $onlineusers['guest'].' </strong>'; if($onlineusers['guest']==1) { $who .= JText::_('COM_KUNENA_WHO_ONLINE_GUEST').' '; } else { $who .= JText::_('COM_KUNENA_WHO_ONLINE_GUESTS').' '; } $who .= JText::_('COM_KUNENA_WHO_ONLINE_NOW'); $this->membersOnline = $who; $this->onlineList = array(); $this->hiddenList = array(); ...
стало:
function displayWhosonline($tpl = null) { if ($this->offline) return; $moderator = intval($this->me->isModerator())+intval($this->me->isAdmin()); $cache = JFactory::getCache('com_kunena', 'output'); if ($cache->start("{$this->ktemplate->name}.common.whosonline.{$moderator}", "com_kunena.template")) return; $users = KunenaUserHelper::getOnlineUsers(); KunenaUserHelper::loadUsers(array_keys($users)); $onlineusers = KunenaUserHelper::getOnlineCount(); /* fix 'online users count' error $who = '<strong>'.$onlineusers['user'].' </strong>'; if($onlineusers['user']==1) { $who .= JText::_('COM_KUNENA_WHO_ONLINE_MEMBER').' '; } else { $who .= JText::_('COM_KUNENA_WHO_ONLINE_MEMBERS').' '; } $who .= JText::_('COM_KUNENA_WHO_AND'); $who .= '<strong> '. $onlineusers['guest'].' </strong>'; if($onlineusers['guest']==1) { $who .= JText::_('COM_KUNENA_WHO_ONLINE_GUEST').' '; } else { $who .= JText::_('COM_KUNENA_WHO_ONLINE_GUESTS').' '; } */ $who .= JText::_('COM_KUNENA_WHO_ONLINE_NOW'); $this->membersOnline = $who; $this->onlineList = array(); $this->hiddenList = array(); ...