Вывод статуса пользователя в чате MChat:
Онлайн/
Оффлайн
Автор хака: GUGA (dvigov.com)
Версия чата: 2.x
Версия DLE: 8.x, 9.х
Установка:1. Открыть файл
index.phpПеред:if (count ( $banners ) and $config['allow_banner']) {
Добавить:
$fuser_status = '';
$timer = 10;
$fuser_status = (($_SERVER['REQUEST_TIME'] + ($config['date_adjust']*60)) < ($row['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. Открыть файл
engine/modules/mchat/modules.phpНайти (приблизительно 21 строка):$result = $db->query("SELECT id, name as gast_name, mail as gast_email, message, date, ip, user_id, mgroup, is_reg FROM " . PREFIX . "_mchat ORDER BY date DESC LIMIT $cstart,".$mchatconfig['messlimit']);
Заменить ее на:$result = $db->query("SELECT " . PREFIX . "_mchat.id, " . PREFIX . "_mchat.name as gast_name, " . PREFIX . "_mchat.mail as gast_email, message, date, " . PREFIX . "_mchat.ip, " . PREFIX . "_mchat.user_id, mgroup, is_reg," . USERPREFIX . "_users.user_id, " . USERPREFIX . "_users.lastdate FROM " . PREFIX . "_mchat LEFT JOIN " . USERPREFIX . "_users ON " . PREFIX . "_mchat.user_id=" . USERPREFIX . "_users.user_id ORDER BY date DESC LIMIT $cstart,".$mchatconfig['messlimit']);
Найти:if ($config['ajax']) $go_page = "onclick=\"DlePage(\'subaction=userinfo&user=".urlencode($row['name'])."\'); return false;\" "; else $go_page = "";
Выше добавить:$fuser_status = '';
$timer = 5;
$fuser_status = (($_SERVER['REQUEST_TIME'] + ($config['date_adjust']*60)) < ($row['lastdate'] + ($timer*60))) ? $tpl->set('{status}',"<font color=\"green\">На сайте</font>") : $tpl->set('{status}', "<font color=\"red\">Оффлайн</font>");
3. Открыть файл
template/{THEME}/mchat/message.tplВ нужном месте добавить тег:{status}
4. Октрыть файл
engine/modules/mchat/mchat.class.phpНайти:$result = $this->query("SELECT id, name as gast_name, mail as gast_email, message, date, ip, user_id, mgroup, is_reg FROM ".PREFIX."_mchat m ORDER BY date DESC LIMIT 0,".$mchatconfig['limit']."");
Заменить на:$result = $this->query("SELECT " . PREFIX . "_mchat.id, " . PREFIX . "_mchat.name as gast_name, " . PREFIX . "_mchat.mail as gast_email, message, date, " . PREFIX . "_mchat.ip, " . PREFIX . "_mchat.user_id, mgroup, is_reg," . USERPREFIX . "_users.user_id, " . USERPREFIX . "_users.lastdate FROM " . PREFIX . "_mchat LEFT JOIN " . USERPREFIX . "_users ON " . PREFIX . "_mchat.user_id=" . USERPREFIX . "_users.user_id ORDER BY date DESC LIMIT 0,".$mchatconfig['limit']);
После:$message = stripslashes($row['message']);
Добавить:$fuser_status = '';
$timer = 5;
$fuser_status = (($_SERVER['REQUEST_TIME'] + ($config['date_adjust']*60)) < ($row['lastdate'] + ($timer*60))) ? "<font color=\"green\">На сайте</font>" : "<font color=\"red\">Оффлайн</font>";
Ниже, в строке начинающейся так:$html .= "<div style=\"padding:5px\">Написал(а) <b>".$author.
добавить:$fuser_status
Готово.КОМУ ИНТЕРЕСНО СДЕЛАТЬ КАК У МЕНЯ ИКОНКАМИ ТО ПИШИТЕ В КОММЕНТАРИЯХ ПОМОГУ СДЕЛАТЬ...хотя не сложно догадаться как это сделать...