loading...

Авторизация ...

Имя пользователя :
Пароль :
я всё забыл!

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

Написал fed, 14 августа 2008 | 41 комментарий | рейтинг новости не нравится   +6   нравится Версия для печати
Статус пользователя в коментариях (от Fed'a)


Daimond, захотел такой хак - ПОЖАЛУЙСТА, получайте!
Суть: вывод обзначения про статус пользователя на сайте в коментариях (после новости и последнии комментарии)


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);


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


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



Комментарии пользователей

  Экспорт комментариев в RSS
 Сортировать по рейтингу, по дате

Написал Daimond, 14 августа 2008 в 02:16 плохой комментарий   -1   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
Как оперативно...Даж и не ожидал)
Спасибо)
Будем юзать)

Написал Tweek, 14 августа 2008 в 04:23 плохой комментарий   +4   хороший комментарий
Новостей: 5, комментариев: 344, Пользователи
Карма: 24±
думаю лучше сделать так


if ($row['is_register'])
{
$timer = 5; #время, в течении которого пользователь считается онлайн (в минутах)
$ddata = $row['lastdate'] + ($timer*60);
$_REAL_TIME = time()+($config['date_adjust']*60);

if ($_REAL_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);



Так мы сделали все в минутах, помоему удобнее...
И сделали код более корректнее для DLE, учитывая коррекцию временных зон.

Написал lifestar, 14 августа 2008 в 12:01 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
ну или компактный вариант)

$fuser_status = '';
if ($row['is_register'])
{
    $timer = 5; #время, в течении которого пользователь считается онлайн (в минутах)
    $fuser_status = (($_SERVER['REQUEST_TIME'] + ($config['date_adjust']*60)) < ($row['lastdate'] + ($timer*60))) ? '<font color=green>online</font>' : '<font color=red>offline</font>';
}
$tpl->set('{fuser-status}', $fuser_status);



АДМИНИСТРАЦИИ САЙТА - СДЕЛАЙТЕ БЛИН НОРМАЛЬНУЮ ПОДСВЕТКУ КОДА!!!

Написал Phantom_812, 14 августа 2008 в 07:09 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 25, Пользователи
Карма:
Давно ждал 4 =) Кто нить тестил? Отпишитесь

Написал coolbola, 14 августа 2008 в 09:04 плохой комментарий   +1   хороший комментарий
Новостей: 5, комментариев: 89, Пользователи
Карма:
Спасибо! 4

Написал CSR, 14 августа 2008 в 09:29 плохой комментарий   -1   хороший комментарий
Новостей: 40, комментариев: 310, Пользователи
Карма:
Давно бы так...

Написал Tepma, 14 августа 2008 в 09:34 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
При просмотре коментариев выдаёт ошибку в файле: show.full.php

Написал strikeman, 14 августа 2008 в 09:50 плохой комментарий   +1   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
тут даже скачать нечего ag

Написал cr0ucher, 14 августа 2008 в 12:00 плохой комментарий   +1   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
всё работает 4

Написал AssimaR, 14 августа 2008 в 13:41 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
Интересная вещица, конечно особенного ни чего нет, но прикольно. ag

Написал vap12, 14 августа 2008 в 14:30 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 16, Пользователи
Карма:
Я думаю удобнее ещё в файле engine/ajax/addcomments.php
Прописать
- находим такой код:
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() set('{fuser-status}',$fuser_status);
-------------------------------
Это вам пожет не обнавляя страницу увидеть ваш статус, иначе мы видим просто Тег {fuser-status} , после обнавление отображается ))

Написал Chumaster59, 15 августа 2008 в 20:14 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 65, Пользователи
Карма:
vap12,
чёт при добавлении коммента ругается на этот код:
if (time() set('{fuser-status}',$fuser_status);

Parse error: syntax error, unexpected T_STRING in...

Написал Duck_Kun, 14 августа 2008 в 18:11 плохой комментарий   +2   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
Называйте плиз нормально переменные... пожалуйста!
(чтобы сразу было понято для чего она)

Написал ODD1E, 14 августа 2008 в 20:10 плохой комментарий   -4   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
balshaia spasiba iz gruzii..

Написал VADOS [Dj], 14 августа 2008 в 21:55 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
Спасибо, полезно было бы...
Но на 7.2 не арбайтен, пробовал все варианты, хотя код почти идентичный :(

Вот код, который у меня получился в итоге после добавления lastdate:

$sql_comm = "SELECT SQL_CALC_FOUND_ROWS " . 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, " . PREFIX . "_post.category, " . PREFIX . "_post.flag 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;

Шаблон отредактировал, но в нём просто показывается переменная {fuser-status}, тестил на локалке (Денвер), ДЛЕ 7.2

Написал m0p, 15 августа 2008 в 05:46 плохой комментарий   0   хороший комментарий
Новостей: 2, комментариев: 79, Пользователи
Карма:
мб напишите что надо дописать?

Блин все время показывает что я Offline

Написал flake, 15 августа 2008 в 05:57 плохой комментарий   0   хороший комментарий
Новостей: 2, комментариев: 77, Пользователи
Карма:
у меня все "offline" :(

Написал m0p, 15 августа 2008 в 09:32 плохой комментарий   +1   хороший комментарий
Новостей: 2, комментариев: 79, Пользователи
Карма:
flake,
Надо сделать повторный заход на сайт. Тоесть перелогинится и так все время ad

Написал Tweek, 16 августа 2008 в 01:47 плохой комментарий   +2   хороший комментарий
Новостей: 5, комментариев: 344, Пользователи
Карма: 24±
Цитата: m0p
Надо сделать повторный заход на сайт. Тоесть перелогинится и так все время


Ну это тоже можно решить.
Открываем 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]'");
}


Готово ;)

Написал usercompru, 16 августа 2008 в 16:07 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
Tweek,

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


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]'");
}


Готово ;)


.... и Warning: date() expects parameter 2 to be long, string given in /home/***/data/***/engine/modules/sitelogin.php on line 131

строка 131:
elseif(date('Ymd_Hi', $_TIME) != date('Ymd_Hi', $member_id['lastdate']))

Написал Tweek, 16 августа 2008 в 17:23 плохой комментарий   0   хороший комментарий
Новостей: 5, комментариев: 344, Пользователи
Карма: 24±
Какая версия DLE ?

Написал arex, 17 августа 2008 в 21:10 плохой комментарий   0   хороший комментарий
Новостей: 17, комментариев: 408, Пользователи
Карма:
Цитата: flake
у меня все "offline" :(

естественно) ощущение, что модуль делали независимо от движка, т.е. не изучая код)

Tweek,
я когда новость увидел, стал искать по комментам, где же наконец напишут, что работать не будет, это видно по коду) а потом твой коммент нашёл с исправлением.
Вот только такое исправление достаточно сильно влияет на производительность, даже большую, чем модуль он-лайн ad
Кстати лучще так
elseif(date('Ymd_Hi', $_TIME) != date('Ymd_Hi', $member_id['lastdate']))
{
$db->query("UPDATE LOW_PRIORITY " . USERPREFIX . "_users set lastdate='{$_TIME}' WHERE user_id='$member_id[user_id]'");
}
чуток снизит нагрузку.

Написал Tweek, 25 августа 2008 в 19:05 плохой комментарий   0   хороший комментарий
Новостей: 5, комментариев: 344, Пользователи
Карма: 24±
Да... забыл про нагрузку.

Написал SkeLeToN07, 18 августа 2008 в 00:32 плохой комментарий   0   хороший комментарий
Новостей: 3, комментариев: 54, Пользователи
Карма: -2±
Цитата: arex
Кстати лучще так
elseif(date('Ymd_Hi', $_TIME) != date('Ymd_Hi', $member_id['lastdate']))
{
$db->query("UPDATE LOW_PRIORITY " . USERPREFIX . "_users set lastdate='{$_TIME}' WHERE user_id='$member_id[user_id]'");
}
чуток снизит нагрузку.


Warning: date() expects parameter 2 to be long, string given in D:Server'sMySaithtdocsenginemodulessitelogin.php on line 145

это пишет вверху экрана. Помогите пожалуйста. Версия движка 6.7....вот http://warezok.interzet.ru ( это не реклама )....там вверху написано HELP!!! ak


А вот всё..там я убрал elseif(date('Ymd_Hi', $_TIME) != date('Ymd_Hi', $member_id['lastdate']))....или его изменит можно?

млин не помогло плиз ХЕЛП!

Написал arex, 18 августа 2008 в 02:16 плохой комментарий   0   хороший комментарий
Новостей: 17, комментариев: 408, Пользователи
Карма:
SkeLeToN07,
явно не туда вставлял, не может эта строка быть видна гостям, а я её видел.... и кстати мягко говоря офигел, когда на полную громкость левый трек стал играть с сайта, хорошо, что я не через инет с платным трафиком сидел...

Написал flake, 18 августа 2008 в 07:33 плохой комментарий   0   хороший комментарий
Новостей: 2, комментариев: 77, Пользователи
Карма:
Warning: date() expects parameter 2 to be long, string given in /home/*****/domains/*****/public_html/engine/modules/sitelogin.php on line 146

Написал SkeLeToN07, 18 августа 2008 в 13:05 плохой комментарий   0   хороший комментарий
Новостей: 3, комментариев: 54, Пользователи
Карма: -2±
flake,ага у меня также..народ что за херня...

Написал mAx1989, 18 августа 2008 в 13:18 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 8, Пользователи
Карма:
if (!$_SESSION['member_lasttime']){

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

if (($member_id['lastdate'] + (3600*4)) 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}' WHEREuser_id='$member_id[user_id]'");
}

Написал SkeLeToN07, 18 августа 2008 в 13:23 плохой комментарий   0   хороший комментарий
Новостей: 3, комментариев: 54, Пользователи
Карма: -2±
Вооо всё заработало

Написал PoMaH, 18 августа 2008 в 18:14 плохой комментарий   0   хороший комментарий
Новостей: 2, комментариев: 215, Пользователи
Карма:
aga, i u vas kazduju minutu budit delat update timer ;]]]]


elseif(date('Ymd_Hi', $_TIME) != date('Ymd_Hi', $member_id['lastdate']))



elseif(date('Ymd_Hi', ($_TIME - (15*60)) >= date('Ymd_Hi', $member_id['lastdate']))


kazdyje 15 min. proverka...

Написал freeprog, 1 сентября 2008 в 00:57 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
не работает такой вариант, синтаксическая ошибка..

Написал ridiska, 20 августа 2008 в 00:07 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 39, Пользователи
Карма:
Spasiba rabotaet vse OK :)

Написал ZlouMuxalu4, 20 августа 2008 в 15:27 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
Спасибо всё кулл

Написал OnArs, 20 августа 2008 в 16:13 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
Большое Спасибо! smile

Написал Sean Antony, 23 августа 2008 в 14:48 плохой комментарий   0   хороший комментарий
Новостей: 5, комментариев: 74, Пользователи
Карма:
Спасибо, всегда стоющие делаешь вещи, но хочеться добавить одно но если сделать изменения в profile.php такие же как и в lastcomments.php то можно будет видеть статуи и при просмотре профиля

Информация



Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.
Анализ Тиц и PR сайта

[removed][removed] [removed] (adsbygoogle = window.adsbygoogle || []).push({}); [removed]