Все для DataLife Engine / DLE хаки / Хак для DLE / Хак Псевдо Онлайн для DLE

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

Хак Псевдо Онлайн для 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}', "/templates/Default/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

psevdo-onlayn.rar [8,55 Kb] (cкачиваний: 87)
  • 0
Добавить комментарий

Оставить комментарий

    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent