Jump to content

Отображения именинников на главной в зависимости от их сообщений


Trotor
 Share

Recommended Posts

Подскажите как реализовать что бы на главной в блоке именинников отображались лишь те пользователи, у которых скажем на форуме больше 10 сообщений?

А то этот блок забивается пользователями у которых 0 сообщений на форуме.

Link to comment
Share on other sites

Это какой-то хук?

Нет, стандартная функция. Вот - post-31497-0-72598100-1546449244_thumb.jpg

Что бы в этом списке отображались пользователи у которых больше 10 сообщений на форуме.

Link to comment
Share on other sites

Данные именинников кешируются, а количество постов это переменное значение что не очень совместимо с кешом. Тут либо делать дополнительный sql запрос, либо кешировать количество сообщений - но это значение может потерять актуальность до следующего обновление кеша.

Link to comment
Share on other sites

Тут либо делать дополнительный sql запрос

Был бы признателен вам за его составление. Так как блок именинников видят только зарегистрированые, то особой нагрузки на форум это не даст.

Link to comment
Share on other sites

Данные именинников кешируются, а количество постов это переменное значение что не очень совместимо с кешом. Тут либо делать дополнительный sql запрос, либо кешировать количество сообщений - но там это значение может потерять актуальность до следующего обновление кеша.

 

Не подскажите этот запросик?

Link to comment
Share on other sites

Тут не только запросик нужен, но и немного его закодить.

 

Открыть 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']] ] );
					}
				}
			}

  • Upvote 1
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...