Хак Псевдо Онлайн для DLE

Рубрика: Хаки для DLE » Хак DLE 11.2, 11.1, 11.0, 10.6, 10.5, 10.4, 10.3, 10.2, 10.1, 10.0, 9.8, 9.7, 9.6, 9.5, 9.4, 9.3, 9.2, 9.0
Хак Псевдо Онлайн для DLE


Хак DLE Псевдо Онлайн является псевдо онлайн статусом. Выводит в отдельный блок всех авторизованных пользователей + общее их количество. Что означает псевдо? Дело в том что используется стандартное поле в движке DLE, которое будет обновляться раз 20-40 минит (в зависимости от настроек).
Основной плюс хака - используется минимальное кол-во запросов к базе, т.е. не создаёт нагрузку на вашу БД.
Хак дле для DLE Псевдо Онлайн
Разработчик: ShapeShifter (SavGroup_ru)

Инструкция:
1) Открыть файл
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]'");      }}


Заменить на:

        //if (!$_SESSION['member_lasttime']){          @session_register('member_lasttime');          $_SESSION['member_lasttime'] = $member_id['lastdate'];          if (($member_id['lastdate'] + 1800) < $_TIME) {              $db->query("UPDATE LOW_PRIORITY " . USERPREFIX . "_users set lastdate='{$_TIME}' where user_id='$member_id[user_id]'");          }      //  }


1800 - это время через которое данные об последнем везите обновится, время в секундах, т.е. по умолчанию у нас 30 минут.

2) Открыть файл engine/init.php
Найти:

include_once ENGINE_DIR.'/moduli/sitelogin.php';


Добавьте после:

    $end_online = time() + $config['date_adjust']*60;    $start_online = $end_online - 1801;    $user_online = "Сейчас на сайте:<br>";    $h=0;    $db->query("SELECT name, lastdate, user_group FROM `". PREFIX . "_users` WHERE lastdate >= '$start_online' AND lastdate <= '$end_online'  ORDER BY lastdate DESC");    while($row = $db->get_row())    {            if ($config['allow_alt_url'] == "yes")                $full_user = $config['http_home_url']."user/".urlencode($row['name']);        else            $full_user = $PHP_SELF."?subaction=userinfo&amp;user=".urlencode($row['name']);        $last_date = langdate( "H:i j F Y", $row['lastdate'] );        if ($row['user_group'] == 1)            $online_name_user = "<a href="".$full_user.""><font color=red>".$row['name']."</font></a>";        elseif ($row['user_group'] == 2)            $online_name_user = "<a href="".$full_user.""><font color=blue>".$row['name']."</font></a>";        elseif ($row['user_group'] == 3)            $online_name_user = "<a href="".$full_user.""><font color=green>".$row['name']."</font></a>";        elseif ($row['user_group'] == 4)            $online_name_user = "<a href="".$full_user."">".$row['name']."</font></a>";        else            $online_name_user = "";        $h++;        if ($h == "1")            $user_online .= $online_name_user;        else            $user_online .= ", ".$online_name_user;    }    $user_online .= "<br><br>Всего на сайте: ".$h;    $db->free();


1801 - опять же время в секундах как и выше, только здесь мы определяем с какого времени выводить пользователей. Т.е. дата последнего визита должна быть больше или равна
start_online но меньше или равна
end_online (текущее время).

3) Открыть файл index.php
Найти:

$tpl->load_template ( 'main.tpl' );


Добавить ниже:

$tpl->set('{user_online}', $user_online);


4) Открыть файл main.tpl (в папке вашего шаблона)
Создайте блок онлайна и добавьте в место вывода списка тег

{user_online}


Для вывода статуса в комментариях:

1) Открыть engine/modules/show.full.php

Найти:

reg_date, signature, foto,


Заменить на:

reg_date, signature, lastdate, foto,


2) Делаем тоже самое, что и в первом пункте в файле engine/modules/lastcomments.php
если у вас движок 8.2 и 9.2

3) Открыть engine/classes/comments.class.php
Найти:

else $tpl->set( '{foto}', "{THEME}/images/noavatar.png" );


Добавить ниже:

$end_online = time() + $config['date_adjust']*60;$start_online = $end_online - 1801;if ($row['lastdate'] >= $start_online AND $row['lastdate']<= $end_online)    $tpl->set( '{online_status}', "<font color=#0073cb>online</font>");else    $tpl->set( '{online_status}', "<font color=#b20000>offline</font>");


4) Открыть comments.tpl (в папке вашего шаблона)
Добавить в нужное место:

{online_status}


P.S. В коде вывода блока (init.php) есть код для подстветки ников членов команды ID 1-3, если они вам не нужны, то удалите:

<font color=red>...</font><font color=blue>...</font><font color=green>...</font>


Установка ЗАКОНЧЕНА!

Рекомендуем «все для DataLife Engine» скачать хак псевдо онлайн для DLE
  • 0
Рубрика: DLE хаки » Хак для DLE
Ранее » Хак подсветка комментариев к новости в DLE« Далее Сообщение об отсутствии и отключении комментариев
Добавление комментарияОставить комментарий