Intellect Board — cистема управления сайтомПостроение сайта на основе форума |
Intellect Board — cистема управления сайтом » Техническая поддержка версии 2.18 » Статус пользователя |
Правила раздела |
<<Назад Вперед>> | Модераторы: aerograf, wsx | Печать |
Der_Meister |
Понадобилось сделать так, чтобы в каждом посте возле ника пользователя отображалось, находится он сейчас на форуме или нет. Собрался сделать как в функции present_list, но там тяжелый запрос еще и с двумя таблицами... И потом, не буду же я каждый раз запрос делать . Как бы это все, с минимальной тратой ресурсов провернуть? |
Der_Meister |
По всем видам надо выбирать из ьаблицы lastvisit поле lv_time1. А почему не lv_time2? Что они значат? |
Der_Meister |
Профиль | Сообщить модератору | Игнорировать
NEW! Сообщение отправлено: 25 апреля 2006 12:43 Сообщение отредактировано: 25 апреля 2006 12:45
Нашел я волшебную строчку. $sql = "SELECT MAX(lv_time1) FROM ".$GLOBALS['DBprefix']."LastVisit WHERE uid=\"$uid\""; Только вот как я эту инфу в шаблон передам.... Не лучше было бы хранить время последнего визита в таблице user? |
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик Откуда: Москва Всего сообщений: 3299 Рейтинг пользователя: 70 Ссылка Дата регистрации на форуме: 29 сен. 2001 |
Время отдельного посещения хранится для каждого раздела отдельно, поэтому хранить его в таблице User невозможно. Кстати, время последнего визита в шаблон передается как $pdata['ud_last'], нужно просто заменить его вывод на проверку вида if ($pdata['ud_last']<$GLOBALS['opt_heretime']) { ?>считаем что пользователь в онлайне<? } else { ?>в оффлайне<? } А два поля для времени последнего визита взяты вот из каких соображений: поле lv_time1 — это время последнего действия в данном разделе вообще, а поле lv_time2 — время последнего действия в прошлой пользовательской сессии (это надо для выделения сообщений, появившихся со времен последнего визита). ---
Спорить со мной по поводу того, что в IntB будет, а чего нет -- бесполезно! |
Der_Meister |
XXXX Pro написал: if ($pdata['ud_last']<$GLOBALS['opt_heretime']) Что-то не вкурил я в это условие. Я написал такое: if ($GLOBALS['curtime']-$pdata['ud_last']<1000) { Работает. |
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик Откуда: Москва Всего сообщений: 3299 Рейтинг пользователя: 70 Ссылка Дата регистрации на форуме: 29 сен. 2001 |
На самом деле я кое что перепутал, должно быть так: if ($pdata['ud_last'])>$GLOBALS['curtime']-$GLOBALS['opt_heretime']) opt_heretime — это время присутствия пользователя на форуме, задаваемое в настройках. ---
Спорить со мной по поводу того, что в IntB будет, а чего нет -- бесполезно! |
Der_Meister |
XXXX Pro написал: if ($pdata['ud_last'])>$GLOBALS['curtime']-$GLOBALS['opt_heretime']) if ($pdata['ud_last'])>$GLOBALS['curtime']-$GLOBALS['opt_heretime']*6000) XXXX Pro Спасибо за помощь. |
<<Назад Вперед>> | Модераторы: aerograf, wsx | Печать |
Intellect Board — cистема управления сайтом » Техническая поддержка версии 2.18 » Статус пользователя |
1 посетитель просмотрел эту тему за последние 10 минут |
В том числе: 1 гость, 0 скрытых пользователей |
Последние | |
Ограничение доступа не отображаются разделы Архив версий Установка стиля на Intellect Board 2.22 Завершилась работа над новой версией 3.00 |
Самые активные 5 тем | |