Форумы / National / Russian / Тех. поддержка / Авторизация и вход на сайт пользователей

Kabak
#1 29.09.2023 07:25

Есть вопрос про подсчёт визитов конкретного пользователся на сайт на движке Cotonti :

1) В профиле каждого пользователя считает число авторизаций, но это же не равно числу визитов на сайт ?   авторизация = ввод логина и пароля, но есть cookies и человек не всегда вводит логин и пароль при посещении сайта.

2) Как учитывать число визитов на сайт ? 

3) Возможно ли учитывать число визитов ? 

 

Kopusha
#2 29.09.2023 09:23

А что такое точгда визит? Я вот открыл сайт и пошел по своим делам, комп уснул и его через час разбудил
Какой же  это ++ визит? 

Kabak
#3 29.09.2023 09:39

Посещение человеком сайта - просмотр любой страницы сайта в браузере, но благодаря cookies  он не вводит логин и пароль. 
Но, Cotonti фиксирует дату последнего посещения при этом и запоминает  её, но не увеличивает количество авторизаций на сайт.

 

Kopusha
#4 29.09.2023 13:52
#47175 Kabak:

Посещение человеком сайта - просмотр любой страницы сайта в браузере, 

 

https://github.com/Cotonti/Cotonti/tree/master/plugins/hits

Kort
#5 29.09.2023 15:53

Действительно, есть же авторизации и есть визиты. Метрика, кажется, под визитом понимает возврат через не менее чем определенный срок. Так что технически это может выглядеть так:

  1. Добавляем в таблицу cot_users экстраполя "visits" и "last_visit"
  2. В настройках плагина указываем срок, после которого засчитываем пользователю новый визит
  3. Дальше при отдаче любой страницы сравниваем текущее время со временем последнего визита товарища по его user_id
  4. Если оно меньше срока из п. 2, просто обновляем время последнего визита. Иначе обновляем и счетчик визитов и время последнего визита.
  5. Естественно, учитываем начальную ситуацию с состоянием экстраполей 0/0

Добавлено 18 часов спустя:

Желающим потестить: Truevisits

Не забываем про бэкап базы

SED.by - создание сайтов, разработка плагинов и тем для Котонти
Отредактировано: Kort (30.09.2023 10:16, 7 месяцев назад)
Kopusha
#6 03.10.2023 12:24

Дим, хотел сначала побурчать что на глобале условие, арифметика и 3 записи в БД, а потом проверил как оно через lastlog stamp было - человек онлайн а ластлог - 2 месяца назад)
Поставил пока на один проект. 

Added 5 minutes later:

По уму конечно надо прикручивать в ядро
Добавлять что то типа
'TRUEVISITS_LAST_STAMP' => $user_data['user_truevisits_last'], в cot_generate_usertags и тд
там оно будет и так)

Added 10 minutes later:

и наверное при создании экстраполя TRUEVISITS_LAST в БД лучше не ноль а sys now, у меня все существующие юзеры были на сайте последний раз 53 года назад, пока они не залогинятся

Отредактировано: Kopusha (03.10.2023 12:46, 6 месяцев назад)
Kort
#7 03.10.2023 14:21

Привет,

на глобале у нас и не такое бывает)) Условие и арифметика довольно простые, а экстраполя доступны сразу глобально и позволили не делать лишнего запроса на чтение "просто поля" из базы.

По ядру не уверен, вопрос скорее сеошно-статистический. Возможно и реализация может быть другой.

По начальному значению наверно стоило бы пояснить сразу по примерной конструкции:

<!-- IF {USERS_DETAILS_TRUEVISITS_COUNT} -->
<div class="alert alert-primary mt-3">
   {USERS_DETAILS_TRUEVISITS_COUNT|cot_declension($this, 'theme_visits')} 
   с {USERS_DETAILS_TRUEVISITS_SINCE|cot_date('j F Y г.', $this)}
</div>
<!-- ENDIF -->

Раз еще не было визита, тогда зачем его выдумывать? Хотя тут кому как. Тогда сразу надо первым визитом считать user_lastlogged, и в счетчик единицу. А если нет, то от первого посещения и считаем первый визит. Если я правильно понял?

Вообще я и добавил экстраполе truevisits_since скорее для случаев, когда статистика по визитам собирается не с самого старта.

SED.by - создание сайтов, разработка плагинов и тем для Котонти
Kopusha
#8 03.10.2023 19:20

$sys['now_offset'] это же $sys['now]? Или есть нюанс?

Что то связанное с таймзоне? 

Kort
#9 03.10.2023 19:32

Видимо, начало большого пути))

Пока что одно и то же))

PS: в ближайшее время этот элемент массива $sys будет удален, так что возвращаемся в $sys['now'] Отражено в репозитории.

SED.by - создание сайтов, разработка плагинов и тем для Котонти
Отредактировано: Kort (04.10.2023 07:36, 6 месяцев назад)