1

Тема: Кто онлайн на сайте

Хочу сделать небольшую статистику "Кто онлайн" для себя в админке на основе статистики из чата. Так вот что в чате отвечает за запись посетителей в файл хранилища, а так же вывод

2

Re: Кто онлайн на сайте

Код вывода Кто онлайн:

$listOnline = $ChatStorage->iss('listOnline')?json_decode($ChatStorage->get('listOnline'), true):array();
$listOnline[$User->login] = time();
foreach($listOnline as $key => $value){
   if($value >= time() - 120){
      echo'<div><a href="user/'.$key.'" class="user">'.$key.'</a><span class="online">Онлайн</span><a href="javascript:void(0);" onClick="Chat.closeListOnline(); Chat.toUser(\''.$key.'\')" class="re">Написать</a></div>';
   }
}
arsort($listOnline);
foreach($listOnline as $key => $value){
   if($value < time() - 120){
      echo'<div><a href="user/'.$key.'" class="user">'.$key.'</a><span class="time">'.human_time(time() - $value).' назад</span><a href="javascript:void(0);" onClick="Chat.closeListOnline(); Chat.toUser(\''.$key.'\')" class="re">Написать</a></div>';
   }
}

Код обновления Кто онлайн:

if($User->authorized){
   if(($listOnline = json_decode($ChatStorage->get('listOnline'), true)) == false){
      $listOnline = array();
   } 
   $listOnline[$User->login] = time();
   foreach($listOnline as $key => $value){
      if($value < time() - 604800){
         unset($listOnline[$key]);
      }
   }
   $ChatStorage->set('listOnline', json_encode($listOnline));
}