друзья
реклама
|
Для вебмастера » DLE - DataLife Engine → Хак "Статус пользователя на сайте"
Описание:
Хак добавляет статус пользователя на сайте в комментариях, в ПМ, в профиле пользователя и в модальном окне превью профиля(для версий 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} Вывод статуса пользователя в модальном окне превью профиля готов. Готово ;)
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем. Комментарии:Оставить комментарий |
популярное
календарь
опрос
счетчики
Реклама
|