Опубликовано: 2 января 20196 г Подскажите как реализовать что бы на главной в блоке именинников отображались лишь те пользователи, у которых скажем на форуме больше 10 сообщений? А то этот блок забивается пользователями у которых 0 сообщений на форуме.
Опубликовано: 2 января 20196 г Автор Это какой-то хук? Нет, стандартная функция. Вот - Что бы в этом списке отображались пользователи у которых больше 10 сообщений на форуме.
Опубликовано: 2 января 20196 г Данные именинников кешируются, а количество постов это переменное значение что не очень совместимо с кешом. Тут либо делать дополнительный sql запрос, либо кешировать количество сообщений - но это значение может потерять актуальность до следующего обновление кеша.
Опубликовано: 2 января 20196 г Автор Тут либо делать дополнительный sql запросБыл бы признателен вам за его составление. Так как блок именинников видят только зарегистрированые, то особой нагрузки на форум это не даст.
Опубликовано: 3 января 20196 г Автор Данные именинников кешируются, а количество постов это переменное значение что не очень совместимо с кешом. Тут либо делать дополнительный sql запрос, либо кешировать количество сообщений - но там это значение может потерять актуальность до следующего обновление кеша. Не подскажите этот запросик?
Опубликовано: 3 января 20196 г Тут не только запросик нужен, но и немного его закодить. Открыть admin\applications\forums\modules_public\forums\boards.php Найти foreach ( $users as $user ) Выше добавить if( count( $users ) ) { $mid = array(); foreach( $users as $k => $u ) { $mid[ $u['member_id'] ] = $k; } $this->DB->build( array( 'select' => 'member_id, posts', 'from' => 'members', 'where' => 'member_id IN('.implode( ',', array_keys( $mid ) ).')' ) ); $this->DB->execute(); while( $row = $this->DB->fetch() ) { if( $row['posts'] == 0 ) { unset( $users[ $mid[$row['member_id']] ] ); } } }
Опубликовано: 3 января 20196 г Автор Тут не только запросик нужен, но и немного его закодить.Спасибо, то что надо!
Подскажите как реализовать что бы на главной в блоке именинников отображались лишь те пользователи, у которых скажем на форуме больше 10 сообщений?
А то этот блок забивается пользователями у которых 0 сообщений на форуме.