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

Тем и сообщений за сутки

Recommended Posts

Как в 3.1.4 можно вывести на главную количество тем и сообщений на форуме за сутки? В чётвёрке такое реализовано.

Share this post


Link to post
Share on other sites

В /admin/applications/forums/modules_public/forums/boards.php, после:

			//-----------------------------------------
		// Update the most active count if needed
		//-----------------------------------------

Добавить:

			$count_per_day = array();
		$day = time() - 86400;
		$count_per_day = $this->DB->buildAndFetch( array( 'select' => 'COUNT(*) as posts_per_day, SUM(new_topic) as topics_per_day', 'from' => 'posts', 'where' => "post_date > {$day}" ) );
		$count_per_day += $this->DB->buildAndFetch( array( 'select'	=> 'COUNT(*) as joined_per_day', 'from' => 'members', 'where' => "joined > {$day}" ) );
		$stats_output['topics_per_day'] = $count_per_day['topics_per_day'] ? $count_per_day['topics_per_day'] : 0;
		$stats_output['replies_per_day'] = $count_per_day['posts_per_day'] - $stats_output['topics_per_day'];
		$stats_output['joined_per_day'] = $count_per_day['joined_per_day'];

В шаблоне "boardIndexTemplate" используйте для вывода количества ответов за сутки:

{$stats['info']['replies_per_day']}

тем за сутки:

{$stats['info']['topics_per_day']}

зарегистрировавшихся за сутки:

{$stats['info']['joined_per_day']}

  • Upvote 2

Share this post


Link to post
Share on other sites

Для вывода общего количества тем и сообщений за сутки в сумме, использовать формулу:

 

{parse expression="floor( $stats['info']['replies_per_day'] ) + floor( $stats['info']['topics_per_day'] )"}

Share this post


Link to post
Share on other sites

Функция floor() используется для округления дроби, при сложении целых чисел немного избыточна.

Если нужно общее количество постов, проще добавить строчку к вышеприведенному коду, в boards.php:

			$stats_output['posts_per_day'] = $count_per_day['posts_per_day'];

  • Upvote 1

Share this post


Link to post
Share on other sites

В таблице posts есть ключ new_topic, определяющий является ли пост стартовым или нет.

Можно объединить 2 запроса в 1.

$count_per_day = $this->DB->buildAndFetch( array( 'select' => 'count(*) as posts_per_day, SUM(new_topic) as topics_per_day', 'from' => 'posts', 'where' => "post_date > {$day}" ) );

  • Upvote 2

Share this post


Link to post
Share on other sites
В таблице posts есть ключ new_topic, определяющий является ли пост стартовым или нет.
Поправил.

Share this post


Link to post
Share on other sites

В /admin/applications/forums/modules_public/forums/boards.php, после:

Круто, работает как часы.

 

P.S. Забыл в шапке темы указать, что к темам и сообщениям, хотел ещё и кол-во зарегистрированных за сутки.

Share this post


Link to post
Share on other sites

{$stats['info']['replies_per_day']}

Кстати выводиться кол-во сообщений со всех разделов, или только в тех в которых счётчик сообщений включён?

Share this post


Link to post
Share on other sites

со всех естественно.

Share this post


Link to post
Share on other sites
Забыл в шапке темы указать, что к темам и сообщениям, хотел ещё и кол-во зарегистрированных за сутки.
Добавил.
  • Upvote 1

Share this post


Link to post
Share on other sites

Добавил.

Лишний запрос создаёт.

Share this post


Link to post
Share on other sites

Если Вы специалист по работе с базами данных и уверены, что этот запрос лишний, то сделайте свой, который лишним не будет.

Share this post


Link to post
Share on other sites

Если Вы специалист по работе с базами данных и уверены, что этот запрос лишний, то сделайте свой, который лишним не будет.

Это я написал не с претензией, просто не весь текст добавил (сонный был уже). Хотел уточнить этот запрос не слишком существенный?

Share this post


Link to post
Share on other sites

Не слишком.

  • Upvote 1

Share this post


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

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...