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

Здесь авторы могут постить бета-версии своих модификаций для phpBB 2.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!

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

Сообщение Гога 23.08.2005 18:28

Источник вдохновления:
Код: Выделить всё
##############################################################
## 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&amp;" . POST_USERS_URL . "=$newest_uid") . '">', $newest_user, '</a>'),
Гугл рулит. Я люблю ЛОР.
Интересно, они пришли с миром или им таки нужен наш моск?
Знания принадлежат всему человечеству.
Аватара пользователя
Гога
phpBB 2.0.5
 
Сообщения: 230
Зарегистрирован: 09.05.2005 15:06
Откуда: Архангельск


Сообщение Romiyo 23.08.2005 22:11

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

Это типа ваш мод или что вообще?.. :?
Неадекватен
Аватара пользователя
Romiyo
Неадекватен
 
Сообщения: 631
Зарегистрирован: 16.12.2004 10:36
Откуда: tln.ee

Сообщение quazi 23.08.2005 22:44

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);

quazi
phpBB 2.0.8
 
Сообщения: 310
Зарегистрирован: 15.03.2005 18:49

Сообщение Coagulant 23.08.2005 22:45

Гога
Если оформить по шаблону, то вероятность того, что кто-нибудь себе это поставит будет намного выше :wink: А вообще, по-моему, был похожий мод.
Аватара пользователя
Coagulant
phpBB 2.0.17
 
Сообщения: 1011
Зарегистрирован: 10.01.2005 19:43
Откуда: Москва

Сообщение quazi 23.08.2005 22:46

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

это поймет сисамин на юниксе, но не ламер типа "форум-хакнули-хелп" под виндой
quazi
phpBB 2.0.8
 
Сообщения: 310
Зарегистрирован: 15.03.2005 18:49

Сообщение Гога 23.08.2005 23:29

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

Я долго искал, даже думал, что 24 часа -- то, что надо, оказалось нет.

А ещё $board_config['today_time'] можно использовать в других случаях, например, кто сегодня был на форуме, это уже как два байта переслать.

quazi писал(а):Гога очень любит связку diff/patch

На самом деле в последнее время я люблю Subversion... со связкой svn diff/svn commit :)
Гугл рулит. Я люблю ЛОР.
Интересно, они пришли с миром или им таки нужен наш моск?
Знания принадлежат всему человечеству.
Аватара пользователя
Гога
phpBB 2.0.5
 
Сообщения: 230
Зарегистрирован: 09.05.2005 15:06
Откуда: Архангельск

Сообщение Гога 25.08.2005 0:41

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

Переписанный 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
Последний раз редактировалось Гога 26.08.2005 23:52, всего редактировалось 1 раз.
Гугл рулит. Я люблю ЛОР.
Интересно, они пришли с миром или им таки нужен наш моск?
Знания принадлежат всему человечеству.
Аватара пользователя
Гога
phpBB 2.0.5
 
Сообщения: 230
Зарегистрирован: 09.05.2005 15:06
Откуда: Архангельск

Сообщение VVVas 25.08.2005 18:25

Гога писал(а):"местному" времени

В смысле выставленному в профиле у пользователя или по board_config?
вы нарушили правила конференции, объяснений не будет - сами читайте правила
я люблю daft punk | Активные темы
Аватара пользователя
VVVas
Люмпен Пролетариат
Люмпен Пролетариат
 
Сообщения: 4555
Зарегистрирован: 12.11.2004 0:20
Откуда: RU-MSK

Сообщение Гога 25.08.2005 21:37

VVVas писал(а):
Гога писал(а):"местному" времени

В смысле выставленному в профиле у пользователя или по board_config?
выставленному в профиле у пользователя, если выставлено, или по board_config если не выставлено. Оно (phpBB, не мод) ж сначала board_config дефолтное берёт в common.php, а потом перекрывает в functions.php
Гугл рулит. Я люблю ЛОР.
Интересно, они пришли с миром или им таки нужен наш моск?
Знания принадлежат всему человечеству.
Аватара пользователя
Гога
phpBB 2.0.5
 
Сообщения: 230
Зарегистрирован: 09.05.2005 15:06
Откуда: Архангельск

Сообщение VVVas 25.08.2005 21:51

Гога
Спасибо.
вы нарушили правила конференции, объяснений не будет - сами читайте правила
я люблю daft punk | Активные темы
Аватара пользователя
VVVas
Люмпен Пролетариат
Люмпен Пролетариат
 
Сообщения: 4555
Зарегистрирован: 12.11.2004 0:20
Откуда: RU-MSK

Сообщение VVVas 28.08.2005 8:47

Гога
Вот посмотрел мод, опять перечитал то, что написали и только теперь окончательно понял как оно работает.
вы нарушили правила конференции, объяснений не будет - сами читайте правила
я люблю daft punk | Активные темы
Аватара пользователя
VVVas
Люмпен Пролетариат
Люмпен Пролетариат
 
Сообщения: 4555
Зарегистрирован: 12.11.2004 0:20
Откуда: RU-MSK

Сообщение Castro 13.09.2005 13:23

Я поставил, но у меня глюк: показывает в "сегодня с ноля часов" количество вообще всех (total) сообщений. :(
Где искать проблему?
Аватара пользователя
Castro
phpBB 1.4.0
 
Сообщения: 32
Зарегистрирован: 10.08.2005 13:55

Сообщение VVVas 13.09.2005 15:58

Castro писал(а):показывает в "сегодня с ноля часов" количество вообще всех (total) сообщений.

А как по вашему должно быть?
вы нарушили правила конференции, объяснений не будет - сами читайте правила
я люблю daft punk | Активные темы
Аватара пользователя
VVVas
Люмпен Пролетариат
Люмпен Пролетариат
 
Сообщения: 4555
Зарегистрирован: 12.11.2004 0:20
Откуда: RU-MSK

Сообщение Castro 13.09.2005 16:19

VVVas писал(а): А как по вашему должно быть?
Я имею в виду, количество вообще всех постов на форуме!!!
Аватара пользователя
Castro
phpBB 1.4.0
 
Сообщения: 32
Зарегистрирован: 10.08.2005 13:55

Сообщение VVVas 13.09.2005 16:20

Castro писал(а):Я имею в виду, количество вообще всех постов на форуме!!!

Я понял что вы имеете ввиду, я не пойму чего вы от мода хотите.
вы нарушили правила конференции, объяснений не будет - сами читайте правила
я люблю daft punk | Активные темы
Аватара пользователя
VVVas
Люмпен Пролетариат
Люмпен Пролетариат
 
Сообщения: 4555
Зарегистрирован: 12.11.2004 0:20
Откуда: RU-MSK

След.

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0