Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы Статус пользователя

Статус пользователя


     18.04.2012    Общие вопросы, Общие вопросы по PHP    2636

вопрос
Всем привет, подскажите пожалуйста как правильно вывести статус пользователя?

При использовании этого хака статус пользователя на сайте почти всегда ofline :(

Ответил: Sander


Дата последнего посещения в dle обновляется раз в 4 часа.

Комментарии пользователей (16)

ПафНутиЙ
1065

3394 | 2433

ПафНутиЙ - 18 апреля 2012 21:00 - Админ

ждите выхода 9.6 и ничего не придётся править ))

Каков вопрос - таков и ответ. Просто помните об этом.

promax
29

182 | 174

promax - 18 апреля 2012 21:03 - Юзер

А вы где это прописали ?

прописано ли у вас в index.php :

$fuser_status = '';
$timer = 2;
$fuser_status = ((time() + ($config['date_adjust']*60)) < ($member_id['lastdate'] + ($timer*60))) ? $request_online=false : $request_online=true;

if ( $is_logged AND $request_online ) $db->query("UPDATE " . USERPREFIX . "_users SET lastdate = '".time()."' WHERE user_id = '$member_id[user_id]'");

pavel31
4

340 | 158

pavel31 - 18 апреля 2012 21:16 - Юзер

ПафНутиЙ,
Это я знаю, но во первых долго наверное ждать придётся и во вторрых обновлятся надо будет

Mr. Hyde
5

181 | 183

Mr. Hyde - 18 апреля 2012 21:35 - Юзер

2 недели. Но у вас будет нормальная реализация.

pavel31
4

340 | 158

pavel31 - 18 апреля 2012 21:18 - Юзер

promax,
Этот код

// статус пользователя
$timer = 1;
$dtime_1 = (time() + ($config['date_adjust'] * 60) - ($timer * 60));
$dtime_2 = (time() + ($config['date_adjust'] * 60) + ($timer * 60));
if ($row['lastdate'] > $dtime_1 and $row['lastdate'] set('{stat}', '<img align="absmiddle" src="&#123;THEME}/images/icons/online.png" alt="" /> <font color="#00B700">Онлайн</font>');
else
$tpl->set('{stat}', '<img align="absmiddle" src="&#123;THEME}/images/icons/offline.png" alt="" /> <font color="#ADADAD">Не в сети</font>');
// статус пользователя

я прописла в файле profile.php

В index.php ничего не прописывал

promax
29

182 | 174

promax - 18 апреля 2012 21:22 - Юзер

pavel31, ну вот пропишите !

pavel31
4

340 | 158

pavel31 - 18 апреля 2012 21:30 - Юзер

Нет, все равно не работает recourse

promax
29

182 | 174

promax - 18 апреля 2012 21:34 - Юзер

$fuser_status = '';
$timer = 2;
$dtime_1 = (time() + ($config['date_adjust'] * 60) - ($timer * 60));
$dtime_2 = (time() + ($config['date_adjust'] * 60) + ($timer * 60));
if( $row['lastdate'] > $dtime_1 AND $row['lastdate']< $dtime_2 )$tpl-> set('{stat}', '<img align="absmiddle" src="&#123;THEME}/images/icons/online.png" alt="" /> <font color="#00B700">Онлайн</font>');
else
$tpl->set('{stat}', '<img align="absmiddle" src="&#123;THEME}/images/icons/offline.png" alt="" /> <font color="#ADADAD">Не в сети</font>');


а если так

Heon
6

87 | 84

Heon - 18 апреля 2012 21:53 - Юзер

Только ошибку исправь
 {THEME}
перед вставкой..

pavel31
4

340 | 158

pavel31 - 18 апреля 2012 22:20 - Юзер

Heon,
{THEME} это мелочь :) с таким кодом

$fuser_status = '';
$timer = 2;
$fuser_status = ((time() + ($config['date_adjust']*60)) < ($member_id['lastdate'] + ($timer*60))) ? $request_online=false : $request_online=true;
if ( $is_logged AND $request_online ) $db->query("UPDATE " . USERPREFIX . "_users SET lastdate = '".time()."' WHERE user_id = '$member_id[user_id]'");
$tpl->set('{stat}', $fuser_status);

у всех пользовтелей статус 1 хоть онлайн хоть оффлайн.

promax
29

182 | 174

promax - 18 апреля 2012 22:35 - Юзер

pavel31

в index.php :

после
$tpl->set ( '{speedbar}', $tpl->result['speedbar'] );


вставить

$fuser_status = '';
$timer = 2;
$fuser_status = ((time() + ($config['date_adjust']*60)) < ($member_id['lastdate'] + ($timer*60))) ? $request_online=false : $request_online=true;

if ( $is_logged AND $request_online ) $db->query("UPDATE " . USERPREFIX . "_users SET lastdate = '".time()."' WHERE user_id = '$member_id[user_id]'");


в profile.php :

После:

$tpl->load_template( 'userinfo.tpl' );
while ( $row = $db->get_row( $sql_result ) ) {
$user_found = TRUE;


вставить

$fuser_status = '';
$timer = 2;
$dtime_1 = ( time() + ($config['date_adjust']*60) - ($timer*60) );
$dtime_2 = ( time() + ($config['date_adjust']*60) + ($timer*60) );
if( $row['lastdate'] > $dtime_1 AND $row['lastdate'] < $dtime_2 ) $tpl->set('{stat}',  " онлайн"); else $tpl->set('{stat}', "оффлайн");


Все должно работать !

pavel31
4

340 | 158

pavel31 - 18 апреля 2012 22:57 - Юзер

Нет recourse Ладно буду ждать новую версия движка. Всем ответившим большое спасибо.

Sander
1125

1637 | 1204

Sander - 19 апреля 2012 19:50 - Эксперт

Не забвайте о том, что дата последнего посещения в dle обновляется раз в 4 часа

SanDev.pro - мой блог.

ICQ: 404-037-556
Skype: Sander8804

promax
29

182 | 174

promax - 19 апреля 2012 20:25 - Юзер

у меня она меньше 2 минут обновляется

pavel31
4

340 | 158

pavel31 - 20 апреля 2012 00:16 - Юзер

Sander,
Мне не нужна дата последнего посещения, мне нужен статус пользователя онлайн / офлайн

promax
29

182 | 174

promax - 20 апреля 2012 08:11 - Юзер

pavel31 если ты посмотришь код , то увидишь что статус зависит от даты последнего посещения !

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы