Сколько времени пользователь на сайте

ЕСТЬ РЕШЕНИЕ InstantCMS 2.X
#1 13 марта 2024 в 14:59

Как вывести в профиле зарегистрированного пользователя сколько дней он уже на сайте?

Пример:

На сайте 1,080 дней.

#2 13 марта 2024 в 21:23

Нужно вносить изменения в экшен profile.php  в компоненте узерс

Добавлено спустя 6 минут

После строки:

        // Формируем метатеги
        $meta_profile = $this->prepareItemSeo($profile, $fields, ['name' => 'users']);

вставляешь приблизительно такое:

        if($this->cms_user->is_admin){$sys_fields['hostname'] =  ['title' => 'Домен', 'text' => gethostbyaddr($sys_fields['ip']['text']) ];}    

#3 14 марта 2024 в 21:07

Не пойму, зачем это ТС, если над списком полей профиля уже выводится, сколько прошло дней с момента регистрации пользователя.

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

В качестве примера сделал компонент, который, если включен вывод даты регистрации

Изображение

Заменит ее на нужное ТС

Изображение

Если что-то пошло не так, отключите компонент

Изображение

И все вернется на круги своя

Изображение

Подобным образом можно добавить/изменить другие системные поля. Сработает только на modern, в default эти поля, насколько я помню, выводятся прямо в шаблоне, и хуком не меняются.

Прикрепленный файл
regtositetime20240314-1-0-0.zip 3 Кб
#4 14 марта 2024 в 22:26

Хорошее решение. Я не знал, что так можно.

#5 15 марта 2024 в 04:46

На моем шаблоне не прокатило. Сейчас попробую дату перенести из модерн шаблона на свой. 

Ну так просто удобней. Зашел на профиль пользователя и сразу видно сколько дней, иногда с этими датами запаришься. Тем более я использую Американский вывод даты, месяц/день/год. И много сижу на Русских сайтах. Иногда мозг парится. Именно по этому такого вопроса ни у кого не возникло.

Поковырялся немного в системных файлах юзера. Не знал что в Модерн уже так выводится. Поменял у себя в шаблоне:

<span class=«date_reg»>User since <?php echo html_date($profile['date_reg']); ?></span>

На: В днях, месяцах, годах

<span class=«date_reg»>On site: <?php echo string_date_age_max($profile['date_reg']); ?></span>

Спасибо! Теперь как надо.

Или пример Zau4man Только в днях:

<span data-toggle=«tooltip» class=«date_reg» title=«Since registration»>On site: <?php echo floor((time() — strtotime($profile['date_reg']))/(60 * 60 * 24)); ?> days</span>

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.