Список пользователей, посетивших трекер за 24 часа

XANDER-CAGE

Пользователь
#1
##############################################################
## Название: Список юзверей, посетивших трекер за 24 часа
## Автор: Вертос
## Адаптация: XANDER-CAGE
## Описание: По названию и так все ясно, не так ли?
## Сложность: Легкая
##############################################################


PHP:
ALTER TABLE `bb_users` ADD `last_visit` INT( 11 ) NOT NULL
открыть ajax.php

[НАЙТИ]
PHP:
'birthday_list'    => array('guest'),
после вставить
PHP:
'users_today'      => array('user'),
найти последнюю скобку "}", и перед вставить

PHP:
function users_today()
    {
        $now = time();
        $time_h = (int)date('H',$now);
        $time_m = (int)date('i',$now);
        $time_s = (int)date('s',$now);
        $day = $now - ($time_h * 60 * 60) - ($time_m * 60) - $time_s;
        $get_users = DB()->sql_query("SELECT username, user_id, user_level
                                  FROM  bb_users
                                  WHERE  last_visit > $day
                                  AND    user_active = 1
                                  ORDER BY username
                                ");
        $users_count = DB()->num_rows($get_users);
        $day = date('d.m.y',$day);
        $visitors = '';
        $user_count = 0;
        while ($u_db = DB()->sql_fetchrow($get_users))
        {
            $user_count++;
            if ($u_db['user_level'] == ADMIN)
            {
                $color = '<span class="colorAdmin small">';
                $color_end = '</span>';
            }
            elseif ($u_db['user_level'] == MOD)
            {
                $color = '<span class="colorMod small">';
                $color_end = '</span>';
            }
            else
            {
                $color = '<span class="colorNick small">';
                $color_end = '</span>';
            }
        $visitors .= '<a href=profile.php?mode=viewprofile&u='.$u_db['user_id'].' >'.$color.$u_db['username'].$color_end.'</a>, ';
        }
        $visitors = substr($visitors, 0, -2);
        $USERS_TODAY = $user_count.''.$visitors;
        $this->response['html'] = '
        <table class="w100 row6 ratio small">
          <tr>
            <td>'.$visitors.'</td>
          </tr>
        </table>';
    }
открыть page_header.php

[НАЙТИ]
PHP:
    'U_SEARCH_SELF_BY_LAST' => "search.php?uid={$userdata['user_id']}&amp;o=5",
));
[ВСТАВИТЬ ПОСЛЕ]
PHP:
if (!empty($userdata['username']))
{
  $userrr = mysql_escape_string($userdata['username']);
  DB()->sql_query("UPDATE bb_users SET last_visit = ".time()." WHERE username = '".$userrr."'");
}
открыть index.tpl

[НАЙТИ]
<p>{NEWEST_USER}</p>

Код:
после вставить

    <hr>
    <script type="text/javascript">
    f_list = false;
    function users_today() {
      $('#users_today').toggle();
      if (!f_list) ajax.users_today();
      return false;
    }
    ajax.users_today = function() {
      ajax.exec({
        action  : 'users_today'
      });
    };
    ajax.callback.users_today = function(data){
      $('#users_today td').html(data.html);
      f_list = true;
    };
    </script>
    <span class="clickable" style="margin: 5px 0 4px;" onclick="return users_today()" title="Нажмите для просмотра">Пользователи, посетившие <b>Мой ресурс</b> сегодня (нажмите для просмотра)</span>
    <span id="users_today" style="display:none"><table><td class="row1"><b>...Загрузка...</b></td></table></span>
 

ChazychaZ

Пользователь
#4
у меня под хромом на ура катит...только одна печаль...в ТП 1 в этом моде писало количество посетителей в скобочках, а сейчас к сожалению нет...мб это как то можно исправить?:)
 

_Xz_

Пользователь
#5
сувать запрос на все страницы да ещё и новое поле делать под эту фигню, когда в бд есть user_lastvisit и user_session_time ещё делать свою собственную окраску когда она уже встроена в движок, это ли не тупость?
 

vater55

Пользователь
#6
В корне не согласен! Это мод, и ни кто не просит вшивать его в движок. Я не встречал ни одного трекера который работал бы на голом движке. А ставить или нет, я думаю пусть выбирают сами.
 

_Xz_

Пользователь
#7
мы о разных вещах видимо говорим, хотите засирать свой трекер лишним мусором пожалуйста, это дело каждого, никого я не принуждаю НЕ ставить данный мод, просто указал на глупость половины кода
 

XANDER-CAGE

Пользователь
#8
_Xz_, как видишь, код писал не я, я его адаптировал по просьбе одно человека и решил кинуть в паб, у себя же - стоит самопис + кэш, если вечером не забуду - то выложу свой код.
 

_Xz_

Пользователь
#10
какой кеш? зачем он нужен в аяксе?) что этот список смотрят ежесекундно 1000 человек?)