Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Число сообщений сегодня (с полуночи)

Здесь авторы постили бета-версии своих модификаций для phpBB 2.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Аватара пользователя
Гога
phpBB 2.0.0
Сообщения: 220
Стаж: 18 лет 11 месяцев
Откуда: Архангельск

Число сообщений сегодня (с полуночи)

Сообщение Гога »

Источник вдохновления:

Код: Выделить всё

##############################################################
## MOD Title: Posts in Last 24 Hours
## MOD Author: Throckmorton < lance at cylan dot net > (Lance Clarke) n/a 
## MOD Description: Adds number of posts in the last 24 hours to your board stats
## MOD Version: 1.0.1
показывающий число ссобщений за последние 24 часа.
http://www.phpbb.com/phpBB/viewtopic.php?t=315941

+ куски из:

Код: Выделить всё

## MOD Title: Today At/Yesterday At
## MOD Author: netclectic < adrian@netclectic.com > (Adrian Cockburn) http://www.netclectic.com 
## MOD Description: Will show Today At if the post was posted today 
##                  Will show Yesterday At if the post was posted yesterday
##
## MOD Version: 1.3.1
http://www.phpbb.com/phpBB/viewtopic.php?t=158812



Моды писать не умею, поэтому по-нашему, по-неучёному :wink:

Как читать:
минус (-) -- удалить строку,
плюс (+) -- вставить строку,
@@ -230,6 +230,10 @@ -- в старом файле кусок занимал строки с 230 по 236, в новом -- с 230 по 210 (но это у меня)
Что искать и так понятно -- по три строки контекста приводится до и после изменённого куска.

Поехали.
language/lang_russian/lang_main.php

Код: Выделить всё

@@ -170,6 +170,7 @@
 //
 $lang['Posted_articles_zero_total'] = 'Наши пользователи не оставили ни одного сообщения'; // Number of posts
 $lang['Posted_article_total'] = 'Наши пользователи оставили сообщений: <b>%d</b>'; // Number of posts
+$lang['Posted_today'] = ', сегодня: <b>%d</b>'; // Number of posts since midnight
 $lang['Posted_articles_total'] = 'Наши пользователи оставили сообщений: <b>%d</b>'; // Number of posts
 $lang['Registered_users_zero_total'] = 'У нас нет зарегистрированных пользователей'; // # registered users
 $lang['Registered_user_total'] = 'Всего зарегистрированных пользователей: <b>%d</b>'; // # registered users
includes/functions.php

Код: Выделить всё

@@ -23,7 +23,7 @@
 
 function get_db_stat($mode)
 {
-	global $db;
+	global $db, $board_config;
 
 	switch( $mode )
 	{
@@ -46,6 +46,11 @@
 			$sql = "SELECT SUM(forum_topics) AS topic_total, SUM(forum_posts) AS post_total
 				FROM " . FORUMS_TABLE;
 			break;
+		case 'poststoday':
+			$sql = "SELECT COUNT(post_id)
+				FROM " . POSTS_TABLE . "
+				WHERE post_time > " . $board_config['today_time'];
+			break;
 	}
 
 	if ( !($result = $db->sql_query($sql)) )
@@ -69,6 +74,9 @@
 		case 'topiccount':
 			return $row['topic_total'];
 			break;
+		case 'poststoday':
+			return $row['COUNT(post_id)'];
+			break;
 	}
 
 	return false;
@@ -272,6 +280,9 @@
 		if ( isset($userdata['user_timezone']) )
 		{
 			$board_config['board_timezone'] = $userdata['user_timezone'];
+			$today_ary = explode('|', create_date('m|d|Y', time(), $board_config['board_timezone']));
+			$board_config['today_time'] = gmmktime(0, 0, 0, $today_ary[0], $today_ary[1], $today_ary[2]);
+			unset($today_ary);
 		}
 	}
common.php

Код: Выделить всё

@@ -230,6 +230,10 @@
 unset($time_reg);
 unset($regs);
 
+$today_ary = explode('|', create_date('m|d|Y', time(), $board_config['board_timezone']));
+$board_config['today_time'] = gmmktime(0, 0, 0, $today_ary[0], $today_ary[1], $today_ary[2]);
+unset($today_ary);
+
 include($phpbb_root_path . 'attach_mod/attachment_mod.'.$phpEx);
 
 if (file_exists('install') || file_exists('contrib'))
index.php

Код: Выделить всё

@@ -105,6 +105,7 @@
 $newest_userdata = get_db_stat('newestuser');
 $newest_user = $newest_userdata['username'];
 $newest_uid = $newest_userdata['user_id'];
+$posts_today = get_db_stat('poststoday');
 
 if( $total_posts == 0 )
 {
@@ -119,6 +120,8 @@
 	$l_total_post_s = $lang['Posted_articles_total'];
 }
 
+$l_posted_today = $lang['Posted_today'];
+
 if( $total_users == 0 )
 {
 	$l_total_user_s = $lang['Registered_users_zero_total'];
@@ -351,7 +354,7 @@
 	);
 
 	$template->assign_vars(array(
-		'TOTAL_POSTS' => sprintf($l_total_post_s, $total_posts),
+		'TOTAL_POSTS' => sprintf($l_total_post_s, $total_posts) . sprintf($l_posted_today, $posts_today),
 		'TOTAL_USERS' => sprintf($l_total_user_s, $total_users),
 		'NEWEST_USER' => sprintf($lang['Newest_user'], '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$newest_uid") . '">', $newest_user, '</a>'),
Гугл рулит. Я люблю ЛОР.
Интересно, они пришли с миром или им таки нужен наш моск?
Знания принадлежат всему человечеству.
Аватара пользователя
Romiyo
Неадекватен
Сообщения: 603
Стаж: 19 лет 4 месяца
Откуда: tln.ee

Сообщение Romiyo »

Я то-то вообще ничего не понял... :?
Гога писал(а):@@ -230,6 +230,10 @@
-> :shock:

Это типа ваш мод или что вообще?.. :?
Неадекватен
quazi
phpBB 2.0.2
Сообщения: 306
Стаж: 19 лет 1 месяц

Сообщение quazi »

Romiyo

Код: Выделить всё

@@ -230,6 +230,10 @@
 unset($time_reg);
 unset($regs);
 
+$today_ary = explode('|', create_date('m|d|Y', time(), $board_config['board_timezone']));
+$board_config['today_time'] = gmmktime(0, 0, 0, $today_ary[0], $today_ary[1], $today_ary[2]);
+unset($today_ary);
+
 include($phpbb_root_path . 'attach_mod/attachment_mod.'.$phpEx);
 
 if (file_exists('install') || file_exists('contrib'))
все достаточно просто это дамп команды diff
в терминах phpBB.MODification следует понимать так

Код: Выделить всё

#
#---[ FIND ] ----
# nearby line 230

 unset($time_reg);
 unset($regs);
 
#
#---[ AFTER ADD ]-----
#

$today_ary = explode('|', create_date('m|d|Y', time(), $board_config['board_timezone']));
$board_config['today_time'] = gmmktime(0, 0, 0, $today_ary[0], $today_ary[1], $today_ary[2]);
unset($today_ary);

Аватара пользователя
Coagulant
Former team member
Сообщения: 955
Стаж: 19 лет 3 месяца
Откуда: Москва

Сообщение Coagulant »

Гога
Если оформить по шаблону, то вероятность того, что кто-нибудь себе это поставит будет намного выше :wink: А вообще, по-моему, был похожий мод.
quazi
phpBB 2.0.2
Сообщения: 306
Стаж: 19 лет 1 месяц

Сообщение quazi »

Гога очень любит связку diff/patch, которая ну никак не может полностью заменить копи-паст в умелых руках

это поймет сисамин на юниксе, но не ламер типа "форум-хакнули-хелп" под виндой
Аватара пользователя
Гога
phpBB 2.0.0
Сообщения: 220
Стаж: 18 лет 11 месяцев
Откуда: Архангельск

Сообщение Гога »

Ну, шо вы... Это ж бета! Вот я и ошибочку нашёл (в связи с наступление полуночи) надо не gmmktime(), а mktime()
Coagulant писал(а):по-моему, был похожий мод.
Я долго искал, даже думал, что 24 часа -- то, что надо, оказалось нет.

А ещё $board_config['today_time'] можно использовать в других случаях, например, кто сегодня был на форуме, это уже как два байта переслать.
quazi писал(а):Гога очень любит связку diff/patch
На самом деле в последнее время я люблю Subversion... со связкой svn diff/svn commit :)
Гугл рулит. Я люблю ЛОР.
Интересно, они пришли с миром или им таки нужен наш моск?
Знания принадлежат всему человечеству.
Аватара пользователя
Гога
phpBB 2.0.0
Сообщения: 220
Стаж: 18 лет 11 месяцев
Откуда: Архангельск

Сообщение Гога »

Ну вот оно. Из двух частей (вторая была целью, но оказалась второй :) ). Первая может быть установлена без второй, а для второй необходима первая.

Переписанный TodayAt/YesterdayAt, который ставит Вчера/Сегодня для любой даты (везде) (в стандартном формате, так что, например, модули статистики не будут глючить). Основные достоинства, на мой взгляд -- лаконичность, прозрачность и возможность "повторного использования", что и сделано во второй (главной :) ) части.
http://www.phpbbguru.net/community/view ... 0526#40526

А вот и вторая часть, из-за которой весь сыр-бор. На главной странице показывает число сообщений с полуночи (по "местному" времени). Использует глобальные переменные из первой части.
http://www.pomorsu.ru/forum/mods/PostsSinceMidnight.txt

Код: Выделить всё

##############################################################
## MOD Title: Posts Since Midnight
## MOD Author: Goga < pashev dot igor at pomorsu dot ru > (Igor Pashev) n/a
## MOD Description: Shows number of
##                  posts since midnight next to the total number.
## MOD Version: 0.1.0
## Installation Level: Easy
## Installation Time: 1 Minute
## Files To Edit:
##               includes/functions.php,
##               index.php,
##               language/lang_english/lang_main.php
## Included Files: n/a
## License: http://opensource.org/licenses/gpl-license.php GNU Public License v2
##############################################################
## For Security Purposes, Please Check: http://www.phpbbguru.net/mods/ for the
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code
## to enter into your phpBB Forum.
##############################################################
## Author Notes:
##
## Universal TodayAt/YesterdayAt Mod is required for this to work
##
##############################################################
## MOD History:
##
##   2005-08-25 - Version 0.1.0
##      - The first public release
##
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################

#
#-----[ OPEN ]------------------------------------------
#
includes/functions.php

#
#-----[ FIND ]------------------------------------------
#
function get_db_stat($mode)
{
	global $db;

#
#-----[ REPLACE WITH ]------------------------------------------
#
function get_db_stat($mode)
{
	global $db, $board_config;

#
#-----[ FIND ]------------------------------------------
#
	case 'postcount':
	case 'topiccount':
			$sql = "SELECT SUM(forum_topics) AS topic_total, SUM(forum_posts) AS post_total
			FROM " . FORUMS_TABLE;
		break;

#
#-----[ AFTER, ADD ]------------------------------------------
#
	case 'poststoday':
		$sql = "SELECT COUNT(post_id)
			FROM " . POSTS_TABLE . "
			WHERE post_time > " . ($board_config['time_today'] - $board_config['board_timezone']*3600);
		break;

#
#-----[ FIND ]------------------------------------------
#
	case 'topiccount':
		return $row['topic_total'];
		break;

#
#-----[ AFTER, ADD ]------------------------------------------
#
	case 'poststoday':
		return $row['COUNT(post_id)'];
		break;

#
#-----[ OPEN ]------------------------------------------
#
index.php

#
#-----[ FIND ]------------------------------------------
#
$total_posts = get_db_stat('postcount');
$total_users = get_db_stat('usercount');
$newest_userdata = get_db_stat('newestuser');

#
#-----[ AFTER, ADD ]------------------------------------------
#
$posts_today = get_db_stat('poststoday');

#
#-----[ FIND ]------------------------------------------
#
	$l_total_post_s = $lang['Posted_articles_total'];
}

#
#-----[ AFTER, ADD ]------------------------------------------
#
$l_posted_today = $lang['Posted_today'];


#
#-----[ FIND ]------------------------------------------
#
	'TOTAL_POSTS' => sprintf($l_total_post_s, $total_posts),

#
#-----[ REPLACE WITH ]------------------------------------------
#
	'TOTAL_POSTS' => sprintf($l_total_post_s, $total_posts) . sprintf($l_posted_today, $posts_today),

#
#-----[ OPEN ]------------------------------------------
#
language/lang_english/lang_main.php

#
#-----[ FIND ]------------------------------------------
#
$lang['Posted_articles_zero_total'] = 'Our users have posted a total of <b>0</b> articles'; // Number of posts
$lang['Posted_articles_total'] = 'Our users have posted a total of <b>%d</b> articles'; // Number of posts

#
#-----[ AFTER, ADD ]------------------------------------------
#
$lang['Posted_today'] = ', <b>%d</b> of them today'; // Number of posts since midnight

#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
Последний раз редактировалось Гога 27.08.2005 0:52, всего редактировалось 1 раз.
Гугл рулит. Я люблю ЛОР.
Интересно, они пришли с миром или им таки нужен наш моск?
Знания принадлежат всему человечеству.
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 19 лет 5 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

Гога писал(а):"местному" времени
В смысле выставленному в профиле у пользователя или по board_config?
я люблю daft punk | новый sugoi.ru
Аватара пользователя
Гога
phpBB 2.0.0
Сообщения: 220
Стаж: 18 лет 11 месяцев
Откуда: Архангельск

Сообщение Гога »

VVVas писал(а):
Гога писал(а):"местному" времени
В смысле выставленному в профиле у пользователя или по board_config?
выставленному в профиле у пользователя, если выставлено, или по board_config если не выставлено. Оно (phpBB, не мод) ж сначала board_config дефолтное берёт в common.php, а потом перекрывает в functions.php
Гугл рулит. Я люблю ЛОР.
Интересно, они пришли с миром или им таки нужен наш моск?
Знания принадлежат всему человечеству.
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 19 лет 5 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

Гога
Спасибо.
я люблю daft punk | новый sugoi.ru
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 19 лет 5 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

Гога
Вот посмотрел мод, опять перечитал то, что написали и только теперь окончательно понял как оно работает.
я люблю daft punk | новый sugoi.ru
Аватара пользователя
Castro
phpBB 1.4.0
Сообщения: 32
Стаж: 18 лет 8 месяцев

Сообщение Castro »

Я поставил, но у меня глюк: показывает в "сегодня с ноля часов" количество вообще всех (total) сообщений. :(
Где искать проблему?
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 19 лет 5 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

Castro писал(а):показывает в "сегодня с ноля часов" количество вообще всех (total) сообщений.
А как по вашему должно быть?
я люблю daft punk | новый sugoi.ru
Аватара пользователя
Castro
phpBB 1.4.0
Сообщения: 32
Стаж: 18 лет 8 месяцев

Сообщение Castro »

VVVas писал(а): А как по вашему должно быть?
Я имею в виду, количество вообще всех постов на форуме!!!
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 19 лет 5 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

Castro писал(а):Я имею в виду, количество вообще всех постов на форуме!!!
Я понял что вы имеете ввиду, я не пойму чего вы от мода хотите.
я люблю daft punk | новый sugoi.ru

Вернуться в «Бета-версии модов для phpBB 2.0.x»