Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Trotor

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

Recommended Posts

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

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

Share this post


Link to post

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

Share this post


Link to post

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

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

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

Share this post


Link to post

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

Share this post


Link to post

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

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

Share this post


Link to post

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

 

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

Share this post


Link to post

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

 

Открыть 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

Share this post


Link to post

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

Спасибо, то что надо!

Share this post


Link to post

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
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...