Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Статус пользователя

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


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

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

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

Ответил: Sander


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

16 комментариев

ПафНутиЙ
Админ

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

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

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

promax
Юзер

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
Юзер

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

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

Mr. Hyde
Юзер

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

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

pavel31
Юзер

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
Юзер

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

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

pavel31
Юзер

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

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

promax
Юзер

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
Юзер

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

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

pavel31
Юзер

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
Юзер

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
Юзер

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

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

Sander
PHP-developer

Sander - 19 апреля 2012 19:50 -

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

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

Telegram: @sandev
Skype: Sander8804

promax
Юзер

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

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

pavel31
Юзер

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

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

promax
Юзер

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

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

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

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

наверх