Главная

Добавить
статью


Форум


Новости


RSS


Обратная
связь
друзья


реклама



Для вебмастера » DLE - DataLife EngineХак "Статус пользователя на сайте"

Добавил madjesty | 27-03-2011, 21:36 | Мнений: 0 | Заглянули 2116

Описание:
Хак добавляет статус пользователя на сайте в комментариях, в ПМ, в профиле пользователя и в модальном окне превью профиля(для версий DLE 9.X):
Онлайн или Оффлайн. Низкая нагрузка: 1 запрос раз в 10 минут. (Если хак работает в паре с модулем DT_Online, то нагрузка не увеличивается т.к. запросы будет делать только DT_Online)

Совместимость:8.X - 9.X

Что исправлено и добавлено: исправлено неудачно выбраное имя тега для вывода статуса в шаблон, т.к. данный тег уже использовался в профиле пользователя(тег {status} заменён на {statuson}),
данная замена вызвана необходимостью подключения хака к профилю и модальному окну профиля пользователя, чтобы не вводить путаницы и использовать один и тот же тег во всех шаблонах,
добавлена возможность вывода статуса в профиле пользователя, в ПМ и в модальном окне превью профиля(для версий DLE 9.X)

Установка

1. (Если у Вас установлен DT_Online пропустите этот шаг) Открыть файл index.php
После:

$tpl->set ( '{speedbar}', $tpl->result['speedbar'] );

Добавить:

#**********************************************************
# Статус пользователя [подтвержение активности]
#**********************************************************
$fuser_status = '';
$timer = 10;
$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]'");
#**********************************************************
# Статус пользователя [подтвержение активности]
#**********************************************************


Если необходим вывод статуса пользователя в комментариях выполняем пункты 2,3,4 и 5(условие пункта 1 должно быть выполнено).

2. Открыть файл engine/modules/show.full.php
Заменить:
reg_date, signature
 
на:
 
reg_date, signature, lastdate
 

3. Открыть файл engine/classes/comments.class.php
После:

else $tpl->set( '{ip}', '' );
Добавить:

#**********************************************************
# Статус пользователя
#**********************************************************
$fuser_status = '';
$timer = 10;
$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('{statuson}', "<font color=\"green\">Сейчас на сайте</font>"); else $tpl->set('{statuson}', "<font color=\"red\">Оффлайн</font>");
#**********************************************************
# Статус пользователя
#**********************************************************


4. Открыть файл engine/modules/lastcomments.php
Заменить:
is_register, name,
 
На:
is_register, name, lastdate,
 

5. Открыть файл templates/{THEME}/comments.tpl
В нужном месте добавить:
{statuson}

Вывод статуса пользователя в комментариях готов.

Если необходим вывод статуса пользователя в профиле выполняем пункты 6 и 7(условие пункта 1 должно быть выполнено).

6. Открыть файл engine/modules/profile.php
После:

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

Добавить:

#**********************************************************
# Статус пользователя
#**********************************************************
$fuser_status = '';
$timer = 10;
$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('{statuson}', "<font color=\"green\">Сейчас на сайте</font>"); else $tpl->set('{statuson}', "<font color=\"red\">Оффлайн</font>");
#**********************************************************
# Статус пользователя
#**********************************************************


7. Открыть файл templates/{THEME}/userinfo.tpl
В нужном месте добавить:
{statuson}

Вывод статуса пользователя в профиле готов.

Если необходим вывод статуса пользователя в ПМ выполняем пункты 8 и 9(условие пункта 1 должно быть выполнено).

8. Открыть файл engine/modules/pm.php
Заменить:
reg_date, signature
  
На:
reg_date, signature, lastdate

После:
else $tpl->set( '{registration}', '--' );
  
Добавить:

#**********************************************************
# Статус пользователя
#**********************************************************
$fuser_status = '';
$timer = 10;
$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('{statuson}', "<font color=\"green\">Сейчас на сайте</font>"); else $tpl->set('{statuson}', "<font color=\"red\">Оффлайн</font>");
#**********************************************************
# Статус пользователя
#**********************************************************


9. Открыть файл templates/{THEME}/pm.tpl
В нужном месте добавить(между тегами [readpm]...[/readpm]):
{statuson}


Вывод статуса пользователя в ПМ готов.

(Только для версий DLE 9.X) Если необходим вывод статуса пользователя в модальном окне превью профиля выполняем пункты 10 и 11(условие пункта 1 должно быть выполнено).

10. Открыть файл engine/ajax/profile.php
После:
$tpl->set( '{rate}', userrating( $row['name'] ) );
 
Добавить:

#**********************************************************
# Статус пользователя
#**********************************************************
$fuser_status = '';
$timer = 10;
$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('{statuson}', "<font color=\"green\">Сейчас на сайте</font>"); else $tpl->set('{statuson}', "<font color=\"red\">Оффлайн</font>");
#**********************************************************
# Статус пользователя
#**********************************************************


11. Открыть файл templates/{THEME}/profile_popup.tpl
В нужном месте добавить:
{statuson}

Вывод статуса пользователя в модальном окне превью профиля готов.

Готово ;)

 

 

 

 

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

Комментарии:

Оставить комментарий


популярное



календарь



опрос



счетчики



Реклама



Логин: (регистрация? Пароль (забыл?):