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').'&nbsp;';
 } else {
 $who .= JText::_('COM_KUNENA_WHO_ONLINE_MEMBERS').'&nbsp;';
 }
 $who .= JText::_('COM_KUNENA_WHO_AND');
 $who .= '<strong> '. $onlineusers['guest'].' </strong>';
 if($onlineusers['guest']==1) {
 $who .= JText::_('COM_KUNENA_WHO_ONLINE_GUEST').'&nbsp;';
 } else {
 $who .= JText::_('COM_KUNENA_WHO_ONLINE_GUESTS').'&nbsp;';
 }
 $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').'&nbsp;';
 } else {
 $who .= JText::_('COM_KUNENA_WHO_ONLINE_MEMBERS').'&nbsp;';
 }
 $who .= JText::_('COM_KUNENA_WHO_AND');
 $who .= '<strong> '. $onlineusers['guest'].' </strong>';
 if($onlineusers['guest']==1) {
 $who .= JText::_('COM_KUNENA_WHO_ONLINE_GUEST').'&nbsp;';
 } else {
 $who .= JText::_('COM_KUNENA_WHO_ONLINE_GUESTS').'&nbsp;';
 }
 */
 $who .= JText::_('COM_KUNENA_WHO_ONLINE_NOW');
 $this->membersOnline = $who;
 
 $this->onlineList = array();
 $this->hiddenList = array();
...
  • software/kunena/kunena-whois-online.txt
  • Последнее изменение: 2017/05/09 18:34
  • 127.0.0.1