Дата последнего посещения сайта

Изменение

#1 28 сентября 2011 в 22:29
Здравствуйте, народ. На одном сайте видел такую фишку:
Был 27 сентября.
Бал недавно.
Был давно.
Был очень давно.
Это относится к последнему посещению сайта. А у нас можно такое зделать? Если да, то подскажите где копать.
#2 28 сентября 2011 в 23:23
Так это же реализовано в профиле пользователя
Последний визит
#3 28 сентября 2011 в 23:28

Так это же реализовано в профиле пользователя

lucku
Вы внимательно прочитали пост?
Бал недавно.
Был давно.
Был очень давно.
Вот что мне нужно. Вместо даты.
#4 28 сентября 2011 в 23:48
Читал очень внимательно, но становиться понятно, что на самом деле Вам нужно, только после 3 поста, когда вы написали

Вот что мне нужно. Вместо даты.


А "копать" надо
usercore.php из папки components\users\includes

frontend.php и model.php из папки components\users

За вывод даты отвечает flogdate
#5 29 сентября 2011 в 00:19
У меня тоже вопрос по поводу времени посещения сайта, может он не уместен в данном посте, но все же..., суть вопроса заключается в следующем: Когда пользователь покидает сайт, в профиле пишет: Был 1,2,3,4,5.....,10...,20....,30 минут назад, и после этого порога сразу же пишет Был 1 час назад, далее в такой же часовой прогрессии идет до 12 часов, и сразу пишет был 1 день назад.
Подскажите как исправить сие недоразумение!? Заранее огромное спасибо!
#6 29 сентября 2011 в 14:35
кстати.
нужно мне было узнать дату последнего визита после авторизации(свою дату, т.е дату электризовавшегося).
а дело в том что дата последнего визита обновляется при выходе и входе\авторизации.

добавил в базу новое поле и записываю в него дату при выходе. правил в файле registration/frontend.php
строчка после
  1. cmsCore::callEvent('USER_LOGOUT', $user_id);
у меня выглядит так:
  1. $inDB->query("UPDATE cms_users SET logdate = NOW(), logdate_last = NOW() WHERE id = ".$user_id);

вот только не вникал что будет если пользователь не выйдет сам после последнего визита.
#7 29 сентября 2011 в 15:12
Для формирования разницы в дате служит метод cmsCore::dateDiffNow, который найдете в файле cms.php строка 3707
Василёк, вам нужно написать подобный метод, чтобы разница выводилась в нужном вам формате и заменить стандартный метод ядра на свой в файлах, которые подсказал lucku.
Алфей, попробуйте заменить в вышеуказанном методе функцию round(), которая применяется в строках 3718-3720, на функцию floor(). Разница в том, что round() округляет в меньшую или большую сторону по арифметическим правилам, а floor() округляет всегда в меньшую сторону. То есть 1,999 округляет к 1.
#8 29 сентября 2011 в 18:54


Для формирования разницы в дате служит метод cmsCore::dateDiffNow, который найдете в файле cms.php строка 3707
Василёк, вам нужно написать подобный метод, чтобы разница выводилась в нужном вам формате и заменить стандартный метод ядра на свой в файлах, которые подсказал lucku.
Алфей, попробуйте заменить в вышеуказанном методе функцию round(), которая применяется в строках 3718-3720, на функцию floor(). Разница в том, что round() округляет в меньшую или большую сторону по арифметическим правилам, а floor() округляет всегда в меньшую сторону. То есть 1,999 округляет к 1.

Марат

Если честно..., вообще не понял где что искать?
#9 29 сентября 2011 в 19:17

Если честно..., вообще не понял где что искать?

Алфей
файл /core/cms.php, строка 3707
  1. public static function dateDiffNow($date)
Это строка, с которой начинается код метода(функции)
Файл cms.php — это самое ядро инстанта.
#10 29 сентября 2011 в 21:15
Марат, Спасибо! нашел, сейчас протестирую и отпишусь…
#11 29 сентября 2011 в 23:18
Марат, Спасибо все работает!!!
#12 30 сентября 2011 в 06:19
Ладно. Сейчас некогда. Потом посмотрю и отпишусь, что получилось.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.