Статус пользователя в коментариях (от Fed'a)

Статус пользователя в коментариях (от Fed'a)

Вывод обзначения про статус пользователя на сайте в коментариях (после новости и последнии комментарии)
1. Статус пользователя в комментариях под полной новостью:
- откриваем ./engine/modules/show.full.php

- находим такой код:
$sql_result = $db->query("SELECT " . PREFIX . "_comments.id, post_id, " . PREFIX . "_comments.user_id, date, autor as gast_name, " . PREFIX . "_comments.email as gast_email, text, ip, is_register, name, " . USERPREFIX . "_users.email, news_num, comm_num, user_group, reg_date, signature, foto, fullname, land, icq, xfields FROM " . PREFIX . "_comments LEFT JOIN " . USERPREFIX . "_users ON " . PREFIX . "_comments.user_id=" . USERPREFIX . "_users.user_id WHERE " . PREFIX . "_comments.post_id = '$news_id'".$where_approve." ORDER BY date ".$config['comm_msort']." LIMIT ".$cstart.",".$config['comm_nummers']);


Заменяем его на:
$sql_result = $db->query("SELECT " . PREFIX . "_comments.id, post_id, " . PREFIX . "_comments.user_id, date, autor as gast_name, " . PREFIX . "_comments.email as gast_email, text, ip, is_register, name, " . USERPREFIX . "_users.email, news_num, comm_num, user_group, lastdate, reg_date, signature, foto, fullname, land, icq, xfields FROM " . PREFIX . "_comments LEFT JOIN " . USERPREFIX . "_users ON " . PREFIX . "_comments.user_id=" . USERPREFIX . "_users.user_id WHERE " . PREFIX . "_comments.post_id = '$news_id'".$where_approve." ORDER BY date ".$config['comm_msort']." LIMIT ".$cstart.",".$config['comm_nummers']);


- находим такой код:
    if ($row['is_register'] AND $row['icq']) $tpl->set('{icq}', stripslashes($row['icq']));
    else $tpl->set('{icq}', '--');


- ПОД ним вставляем:

if ($row['is_register']){
$timer = 600; #время, в течении которого пользователь считается онлайн (в секундах)
$ddata = $row['lastdate'] + $timer;
if (time() < $ddata)
$fuser_status = "<font color=green>online</font>";
else
$fuser_status = "<font color=red>offline</font>";
} else {
$fuser_status = "";
}
$tpl->set('{fuser-status}',$fuser_status);


2. Статус пользователя в последних комментариях:
- откриваем ./engine/modules/lastcomments.php

- находим такой код:
$sql_comm = "SELECT " . PREFIX . "_comments.id, post_id, " . PREFIX . "_comments.user_id, " . PREFIX . "_comments.date, " . PREFIX . "_comments.autor as gast_name, " . PREFIX . "_comments.email as gast_email, text, ip, is_register, name, " . USERPREFIX . "_users.email, news_num, " . USERPREFIX . "_users.comm_num, user_group, reg_date, signature, foto, fullname, land, icq, " . USERPREFIX . "_users.xfields as xprofile, " . PREFIX . "_post.title, " . PREFIX . "_post.date as newsdate, " . PREFIX . "_post.alt_name FROM " . PREFIX . "_comments LEFT JOIN " . PREFIX . "_post ON " . PREFIX . "_comments.post_id=" . PREFIX . "_post.id LEFT JOIN " . USERPREFIX . "_users ON " . PREFIX . "_comments.user_id=" . USERPREFIX . "_users.user_id ".$where." ORDER BY date desc LIMIT ".$cstart.",".$number;


Заменяем его на:
$sql_comm = "SELECT " . PREFIX . "_comments.id, post_id, " . PREFIX . "_comments.user_id, " . PREFIX . "_comments.date, " . PREFIX . "_comments.autor as gast_name, " . PREFIX . "_comments.email as gast_email, text, ip, is_register, name, " . USERPREFIX . "_users.email, news_num, " . USERPREFIX . "_users.comm_num, user_group, lastdate, reg_date, signature, foto, fullname, land, icq, " . USERPREFIX . "_users.xfields as xprofile, " . PREFIX . "_post.title, " . PREFIX . "_post.date as newsdate, " . PREFIX . "_post.alt_name FROM " . PREFIX . "_comments LEFT JOIN " . PREFIX . "_post ON " . PREFIX . "_comments.post_id=" . PREFIX . "_post.id LEFT JOIN " . USERPREFIX . "_users ON " . PREFIX . "_comments.user_id=" . USERPREFIX . "_users.user_id ".$where." ORDER BY date desc LIMIT ".$cstart.",".$number;


- находим такой код:
    if ($row['is_register'] AND $row['icq']) $tpl->set('{icq}', stripslashes($row['icq']));
    else $tpl->set('{icq}', '--');


- ПОД ним вставляем:
if ($row['is_register']){
$timer = 600; #время, в течении которого пользователь считается онлайн (в секундах)
$ddata = $row['lastdate'] + $timer;
if (time() < $ddata)
$fuser_status = "<font color=green>online</font>";
else
$fuser_status = "<font color=red>offline</font>";
} else {
$fuser_status = "";
}
$tpl->set('{fuser-status}',$fuser_status);


Oткриваем ./templates/{THEME_NAME}/comments.tpl
- в нужное место всталяем:
Статус ползователя на сайте: {fuser-status}


Вместо online и offline можно поставить и картинку, думаю разберетесь сами как поставить. :)
Другие новости по теме:

Категория: Хаки ----- Просмотров: 3857 ----- Комментариев: 15

Вернуться

  • Vagnar

  • 16 августа 2008 11:28
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
Еесли все время показывает что Offline

Открываем: engine/modules/sitelogin.php

Находим:

if (!$_SESSION['member_lasttime']){

@session_register('member_lasttime');
$_SESSION['member_lasttime'] = $member_id['lastdate'];

if (($member_id['lastdate'] + (3600*4)) < $_TIME) {

$db->query("UPDATE LOW_PRIORITY " . USERPREFIX . "_users set lastdate='{$_TIME}' where user_id='$member_id[user_id]'");

}
}


Ниже вставляем:

elseif(date('Ymd_Hi', $_TIME) != date('Ymd_Hi', $member_id['lastdate']))
{
$db->query("UPDATE " . USERPREFIX . "_users set lastdate='{$_TIME}' WHERE user_id='$member_id[user_id]'");
}
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
Чёто у миня картину=кой не получилось! recourse [
Может кто поможет !! request
  • valeros

  • 16 августа 2008 14:14
  • Группа: User
  • ICQ: --
  • Регистрация: 13.12.2007
  • Комментариев: 51
  • Публикаций: 4
^
Вроде так
Везде заменить
<font color=green>online</font>
заменить на
<img src="адресс картинки для онлайн">

<font color=red>offline</font>
заменяем на
<img src="адресс картинки для офлайн">

Ничего не гарантирую,но вроде должно работать
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
smile
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
valeros,
Вроде так
Везде заменить
<font color=green>online</font>
заменить на
<img src="адресс картинки для онлайн">

<font color=red>offline</font>
заменяем на
<img src="адресс картинки для офлайн">

Ничего не гарантирую,но вроде должно работать



чуток неправельно

<img src=адресс картинки для офлайн> вот так надо

без "
  • valeros

  • 29 августа 2008 21:56
  • Группа: User
  • ICQ: --
  • Регистрация: 13.12.2007
  • Комментариев: 51
  • Публикаций: 4
^
О_о здрасте " надо 100%
  • topic

  • 3 октября 2008 13:12
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
у меня после этого хака выдаётся вот такая вот ошибочка : Warning: date() expects parameter 2 to be long, string given in AppServ\www\engine\modules\sitelogin.php on line 146 - как можно её исправить ?
  • Net.211

  • 15 декабря 2008 14:02
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
Vagnar,
Спасибо огромное все работет если не ты)))
  • HiTrAy

  • 6 апреля 2009 01:05
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
вроде все по мануалу но просто не отображает-ну статус пользователя: и ничего. что делать? обьясните еще пожалуйста-вотмы пишем :Статус ползователя на сайте: {fuser-status}
а где файл этот fuser-status?
  • sure

  • 17 июля 2009 23:27
  • Группа: User
  • ICQ: --
  • Регистрация: 17.07.2009
  • Комментариев: 3
  • Публикаций: 0
^
пасибо, с

elseif(date('Ymd_Hi', $_TIME) != date('Ymd_Hi', $member_id['lastdate']))
{
$db->query("UPDATE " . USERPREFIX . "_users set lastdate='{$_TIME}' WHERE user_id='$member_id[user_id]'");
}

нормально работает.
  • sure

  • 20 июля 2009 20:56
  • Группа: User
  • ICQ: --
  • Регистрация: 17.07.2009
  • Комментариев: 3
  • Публикаций: 0
^
Что то начало неправильно работать строки заменил на:

if (($member_id['lastdate']+$config['user_online']-1) <= $_TIME) {
$db->query("UPDATE LOW_PRIORITY " . USERPREFIX . "_users set lastdate='{$_TIME}' where user_id='$member_id[user_id]'");
  • SkiFteL

  • 3 сентября 2009 10:34
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
1. Статус пользователя в комментариях под полной новостью:
- откриваем ./engine/modules/show.full.php

- находим такой код:
$sql_result = $db->query("SELECT " . PREFIX . "_comments.id, post_id, " . PREFIX . "_comments.user_id, date, autor as gast_name, " . PREFIX . "_comments.email as gast_email, text, ip, is_register, name, " . USERPREFIX . "_users.email, news_num, comm_num, user_group, reg_date, signature, foto, fullname, land, icq, xfields FROM " . PREFIX . "_comments LEFT JOIN " . USERPREFIX . "_users ON " . PREFIX . "_comments.user_id=" . USERPREFIX . "_users.user_id WHERE " . PREFIX . "_comments.post_id = '$news_id'".$where_approve." ORDER BY date ".$config['comm_msort']." LIMIT ".$cstart.",".$config['comm_nummers']);



Не могу найти в ДЛЕ 8.2(((Помогите!
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
ху...ня. Не работает.
  • Группа: User
  • ICQ: --
  • Регистрация: 31.03.2010
  • Комментариев: 18
  • Публикаций: 1
^
Цитата: WorldAngel
Везде заменить

no
Ребята не слушайте его всё правельно написал
valeros boyan
  • XA3AP

  • 22 августа 2010 13:59
  • Группа: User
  • ICQ: 385699564
  • Регистрация: 10.02.2010
  • Комментариев: 4
  • Публикаций: 0
^
На 8.5 не смог поставить. Есть народные умельцы которые могут сделать на 8.5? Думаю многим бы пригодился. smile

--------------------
  • Группа: User
  • ICQ: --
  • Регистрация: 28.02.2010
  • Комментариев: 5
  • Публикаций: 0
^
Странно чето перестал хак работать
даже прописал
elseif(date('Ymd_Hi', $_TIME) != date('Ymd_Hi', $member_id['lastdate']))
{
$db->query("UPDATE " . USERPREFIX . "_users set lastdate='{$_TIME}' WHERE user_id='$member_id[user_id]'");
}

Всё ровно не хочет дле 8.3