Баг или Фитча? Пользователи он-лайн

Дорогие друзья, у всех у кого есть сайты на LS обратите внимание на свои разделы он-лайн, а именно пользователи on-line, находится по ссылке вашсайт.ru/people/online

По логике, начиная с версии LS 051 там показываются пользователи только которые сейчас находятся на сайте или проявлялись активность на сайте не более 15 минут назад. Как то так.

Сейчас показывает что абсолютно всех, но выводит дату последней активности, но показывает всех, кто был даже неделю назад…

Проверял на дефолтном шаблоне, LS 101. То есть взял чистую LS скачал, и тестю и вот такой баг или фитча?

Кто знает плакать мне или радоваться? :)

12 комментариев

avatar
НА livestreet.ru/people/online все ОК
  • Fanta
  • 0
avatar
вот вот и я про тоже…

а у вас на сайте, ок? В чем отличается мои сайта на LS101 и этот? конфиг смотрел, нет не чего подобного про онлайн,
avatar
Я думаю все отличие в том, что тут 100500 посетителей, а на наших сайтах — нет, по-этому тут старых просто не видно, ибо куча тех кто заходил только что.
avatar
да да я тоже это подозреваю…

но остается вопрос, что изменили из версии 051, загадка… хочется какого то логического объяснения :)
avatar
Я конечно не знаю, но код
protected function EventOnline() {
		/**
		 * Последние по визиту на сайт
		 */
		$aUsersLast=$this->User_GetUsersByDateLast(15);
		$this->Viewer_Assign('aUsersLast',$aUsersLast);
		/**
		 * Получаем статистику
		 */
		$this->GetStats();		
	}

одинаков в обеих версиях
avatar
ну тут вроде как написано показываем последних 15 пользователей, если они походят, типо того.

На сайте ls сообщества показывает как раз последних 15 юзеров, то есть возможно на сайте LS тоже ошибка просто мы ее не видем!
avatar
Я тут зашел на сайт с 0.5.1 там такое же точно поведение, с чего вы решили что там было иначе? =)
avatar
ах да вы правы :))) просто у меня проект на LS 051, и у меня логика более правильная как я считаю :)

то есть там реально показывается кто сейчас онлайн то есть активность была последние 15 минут

как оказывается я в своем шаблоне сделал такое дополнения, подставил условие

{if (time() - strtotime($oSession->getDateLast()))<900}
    список юзеров
{/if}


то есть тут проверка если активность последние 900сек то показывать, если нет таких то пусто в он-лайн :))

ха как я мог забыть, хотя как мне кажется я правее :) чем тут сделано… я или зазнался :)
avatar
Спасибо за код, возьму себе на заметку. Мне тоже не нравится когда выводится сильно много пользователей онлайн. Тогда по логике этот евент можно переименовать «Кто последний был на сайте», как то так.
avatar
солидарен с вами!
avatar
Собственно вот код из шаблона 051

{if $aUsersLast}
	Заголовок тут юзеры онлайн:

		{foreach from=$aUsersLast item=oUser}
			{assign var="oSession" value=$oUser->getSession()}
                        Я юзер онлайн
		{/foreach}						

{else}
        нету таких
{/if}


Код из 101

Заголовок тут юзеры онлайн:
	{if $aUsersLast}
		{foreach from=$aUsersLast item=oUserList}
			{assign var="oSession" value=$oUserList->getSession()}
			{assign var="oUserNote" value=$oUserList->getUserNote()}
			я юзер он-лайн
		{/foreach}
	{else}
	    нет таких
	{/if}


Обе конструкции взяты из из дефолтных шаблонов, как видим изменилось не многое, но изменилось, может тут беда?
avatar
По сути тоже самое, но во втором варианте в шаблоне о юзерах нам известно несколько больше.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.