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

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

Автор: Vagnar от 16-08-2008, 11:21
Статус пользователя в коментариях (от 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 можно поставить и картинку, думаю разберетесь сами как поставить. :)
  • Группа: Гости
  • 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]'");
    }
    • Vagnar
    • Регистрация: --
    • Репутация: (||)
    • 16 августа 2008 11:28
    • 1
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • Чёто у миня картину=кой не получилось! recourse [
    Может кто поможет !! request
    • Artyom4ik
    • Регистрация: --
    • Репутация: (||)
    • 16 августа 2008 11:53
    • 2
    ^
  • Группа: User
  • Icq: --
  • Комментариев: 51
  • Публикаций: 4
  • Вроде так
    Везде заменить
    <font color=green>online</font>
    заменить на
    <img src="адресс картинки для онлайн">

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

    Ничего не гарантирую,но вроде должно работать
    • valeros
    • Регистрация: 13.12.2007
    • Репутация: (0|0|0)
    • 16 августа 2008 14:14
    • 3
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • smile
    • alexsad2008
    • Регистрация: --
    • Репутация: (||)
    • 21 августа 2008 20:55
    • 4
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • valeros,
    Вроде так
    Везде заменить
    <font color=green>online</font>
    заменить на
    <img src="адресс картинки для онлайн">

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

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



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

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

    без "
    • WorldAngel
    • Регистрация: --
    • Репутация: (||)
    • 29 августа 2008 19:21
    • 5
    ^
  • Группа: User
  • Icq: --
  • Комментариев: 51
  • Публикаций: 4
  • О_о здрасте " надо 100%
    • valeros
    • Регистрация: 13.12.2007
    • Репутация: (0|0|0)
    • 29 августа 2008 21:56
    • 6
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • у меня после этого хака выдаётся вот такая вот ошибочка : Warning: date() expects parameter 2 to be long, string given in AppServ\www\engine\modules\sitelogin.php on line 146 - как можно её исправить ?
    • topic
    • Регистрация: --
    • Репутация: (||)
    • 3 октября 2008 13:12
    • 7
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • Vagnar,
    Спасибо огромное все работет если не ты)))
    • Net.211
    • Регистрация: --
    • Репутация: (||)
    • 15 декабря 2008 14:02
    • 8
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • вроде все по мануалу но просто не отображает-ну статус пользователя: и ничего. что делать? обьясните еще пожалуйста-вотмы пишем :Статус ползователя на сайте: {fuser-status}
    а где файл этот fuser-status?
    • HiTrAy
    • Регистрация: --
    • Репутация: (||)
    • 6 апреля 2009 01:05
    • 9
    ^
  • Группа: User
  • Icq: --
  • Комментариев: 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
    • Регистрация: 17.07.2009
    • Репутация: (0|0|0)
    • 17 июля 2009 23:27
    • 10
    ^
  • Группа: User
  • Icq: --
  • Комментариев: 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]'");
    • sure
    • Регистрация: 17.07.2009
    • Репутация: (0|0|0)
    • 20 июля 2009 20:56
    • 11
    ^
  • Группа: Гости
  • 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(((Помогите!
    • SkiFteL
    • Регистрация: --
    • Репутация: (||)
    • 3 сентября 2009 10:34
    • 12
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • ху...ня. Не работает.
    • Tim Delux
    • Регистрация: --
    • Репутация: (||)
    • 1 февраля 2010 13:42
    • 13
    ^
  • Группа: User
  • Icq: --
  • Комментариев: 18
  • Публикаций: 1
  • Цитата: WorldAngel
    Везде заменить

    no
    Ребята не слушайте его всё правельно написал
    valeros boyan
    • pidzak
    • Регистрация: 31.03.2010
    • Репутация: (0|0|0)
    • 31 мая 2010 17:51
    • 14
    ^
  • Группа: User
  • Icq: 385699564
  • Комментариев: 4
  • Публикаций: 0
  • На 8.5 не смог поставить. Есть народные умельцы которые могут сделать на 8.5? Думаю многим бы пригодился. smile

    --------------------
    • XA3AP
    • Регистрация: 10.02.2010
    • Репутация: (0|0|0)
    • 22 августа 2010 13:59
    • 15
    ^
  • Группа: User
  • Icq: --
  • Комментариев: 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
    • MaDm1X
    • Регистрация: 28.02.2010
    • Репутация: (0|0|0)
    • 6 мая 2011 02:07
    • 16
    ^
    Информация
    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.