Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
Trotor

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

Рекомендованные сообщения

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

Поделиться сообщением


Ссылка на сообщение

В /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

Поделиться сообщением


Ссылка на сообщение

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

 

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

Поделиться сообщением


Ссылка на сообщение

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

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

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

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

В таблице 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

Поделиться сообщением


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

Поделиться сообщением


Ссылка на сообщение

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

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

 

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

Поделиться сообщением


Ссылка на сообщение

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

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

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


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

Поделиться сообщением


Ссылка на сообщение

Добавил.

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

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

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

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

Поделиться сообщением


Ссылка на сообщение

Не слишком.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...