Активные пользователи

  • Thread starter Thread starter NewLife
  • Start date Start date
N

NewLife

Guest
Автор: Bustra
Описание: выводит на главную активных пользователей в виде аватарок.
Время установки: 1 минута.

index.php
PHP:
if($bb_cfg['activ_user'])
{
    $activ_user = DB()->fetch_rowset("SELECT * FROM bb_users WHERE user_id !=-1  AND user_posts >= 2 LIMIT 10");
    foreach($activ_user as $row)
    {
        $template->assign_block_vars('activ_user', array(
            'AVA' => get_avatar($row['user_avatar'], $row['user_avatar_type'], !bf($row['user_opt'], 'user_opt', 'allow_avatar'),36, 36),
            'POSTS' => $row['user_posts'],
            'USER_ID'    => $row['user_id'],
        ));
    }
}

page_header.tpl
Code:
<!-- IF $bb_cfg['activ_user'] -->
<h3>Активные пользователи</h3>
    <div class="top_users">
<!-- BEGIN activ_user -->
        <span>
            <a class="top_users_img" href="profile.php?mode=viewprofile&amp;u={activ_user.USER_ID}" title="количество сообщений {activ_user.POSTS}">{activ_user.AVA}</a>
        </span>
<!-- END activ_user -->
    </div>
<!-- ENDIF -->

config.php
$bb_cfg['activ_user'] = true;


123.webp
 
PHP:
if (!activ_user  = CACHE('bb_cache')->get(activ_user))
{
$activ_user  = DB()->fetch_rowset(" SELECT * FROM bb_users WHERE user_id !=-1 AND user_posts >= 2 LIMIT 10 ");
CACHE('bb_cache')->set('activ_user', $sql, 300);
}
 
PHP:
if (!activ_user  = CACHE('bb_cache')->get(activ_user))
{
$activ_user  = DB()->fetch_rowset(" SELECT * FROM bb_users WHERE user_id !=-1 AND user_posts >= 2 LIMIT 10 ");
CACHE('bb_cache')->set('activ_user', $sql, 300);
}
а куда это нужно добавить?
 
Заменять надо
PHP:
$activ_user  = DB()->fetch_rowset(" SELECT * FROM bb_users WHERE user_id !=-1 AND user_posts >= 2 LIMIT 10 ");
 
Вот только сразу же меняем:
PHP:
if (!activ_user  = CACHE('bb_cache')->get(activ_user))
На:
PHP:
if (!activ_user  = CACHE('bb_cache')->get('activ_user'))
И не задаем глупые вопросы почему не работает / валится с ошибкой.
 
PHP:
if($bb_cfg['activ_user'])
{
if (!$activ_user = CACHE('bb_cache')->get('activ_user'))
{
$activ_user  = DB()->fetch_rowset(" SELECT * FROM bb_users WHERE user_id !=-1 AND user_posts >= 2 LIMIT 10 ");
CACHE('bb_cache')->set('activ_user', $sql, 300);
}
    foreach($activ_user as $row)
    {
        $template->assign_block_vars('activ_user', array(
            'AVA' => get_avatar($row['user_avatar'], $row['user_avatar_type'], !bf($row['user_opt'], 'user_opt', 'allow_avatar'),36, 36),
            'POSTS' => $row['user_posts'],
            'USER_ID'    => $row['user_id'],
        ));
    }
}


Мод выводит не активных юзеров, а... даже не пойму по какому принципу... Выводятся пользователи, которые очень давно не заходили на трекер, не оставили ни одного сообщения, ничего не раздают, но те, которые ежедневно заходят на трекер, пишут сообщения, качают и раздают, в этом списке не появляются. Выводится также и бот... :confused:
 
PHP:
$activ_user  = DB()->fetch_rowset(" SELECT * FROM bb_users WHERE user_id !=-1 AND user_posts >= 2 LIMIT 10 ");
заменить на
PHP:
$activ_user  = DB()->fetch_rowset(" SELECT user_id,user_posts,user_avatar,user_avatar_type,user_opt FROM bb_users WHERE user_id NOT IN (' " . EXCLUDED_USERS_CSV . " ')  ORDER BY user_posts DESC LIMIT 10 ");
 
Back
Top