====== 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 = ''.$onlineusers['user'].' ';
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 .= ' '. $onlineusers['guest'].' ';
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 = ''.$onlineusers['user'].' ';
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 .= ' '. $onlineusers['guest'].' ';
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();
...
{{tag>joomla kunena who_is_online_error пользователей_онлайн неверное_количество}}