Trotor Posted January 2, 2019 Share Posted January 2, 2019 Подскажите как реализовать что бы на главной в блоке именинников отображались лишь те пользователи, у которых скажем на форуме больше 10 сообщений? А то этот блок забивается пользователями у которых 0 сообщений на форуме. Link to comment Share on other sites More sharing options...
siv1987 Posted January 2, 2019 Share Posted January 2, 2019 Это какой-то хук? Link to comment Share on other sites More sharing options...
Trotor Posted January 2, 2019 Author Share Posted January 2, 2019 Это какой-то хук? Нет, стандартная функция. Вот - Что бы в этом списке отображались пользователи у которых больше 10 сообщений на форуме. Link to comment Share on other sites More sharing options...
siv1987 Posted January 2, 2019 Share Posted January 2, 2019 Данные именинников кешируются, а количество постов это переменное значение что не очень совместимо с кешом. Тут либо делать дополнительный sql запрос, либо кешировать количество сообщений - но это значение может потерять актуальность до следующего обновление кеша. Link to comment Share on other sites More sharing options...
Trotor Posted January 2, 2019 Author Share Posted January 2, 2019 Тут либо делать дополнительный sql запросБыл бы признателен вам за его составление. Так как блок именинников видят только зарегистрированые, то особой нагрузки на форум это не даст. Link to comment Share on other sites More sharing options...
Trotor Posted January 3, 2019 Author Share Posted January 3, 2019 Данные именинников кешируются, а количество постов это переменное значение что не очень совместимо с кешом. Тут либо делать дополнительный sql запрос, либо кешировать количество сообщений - но там это значение может потерять актуальность до следующего обновление кеша. Не подскажите этот запросик? Link to comment Share on other sites More sharing options...
siv1987 Posted January 3, 2019 Share Posted January 3, 2019 Тут не только запросик нужен, но и немного его закодить. Открыть 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']] ] ); } } } 1 Link to comment Share on other sites More sharing options...
Trotor Posted January 3, 2019 Author Share Posted January 3, 2019 Тут не только запросик нужен, но и немного его закодить.Спасибо, то что надо! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now