Thread: Statistics Modifications - Dream's Forum Statistics
View Single Post
  #271  
Old 11-24-2007, 04:23 PM
TomasDR TomasDR is offline
 
Join Date: Feb 2006
Posts: 121
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I found the problem with Monthly registrations stats.

The section in statistics.php that computes the year(s) is incorrect:
PHP Code:
  // calc year to get registrations from
  
$year $today['year'];
  if (
$howmany $today['month']) {
   
$year--;
  }
  
$year $year floor(($howmany $today['month']) / 12);
 
  
// calc month since to get registrarions from
  
$month $today['month'] - ($howmany 1);
  if (
$month 1) {
   
$month 12 + ($month 12);
  } 
The statement on line 1293 is incorrect.

PHP Code:
$year $year floor(($howmany $today['month']) / 12); 
As mentioned in other posts this just started happening. It's because the default results number is 10 & November is the 11th month. What happens is if the results # is lower then the current month the PHP function "floor" rounds down but it's rounding down a negative number and then when you subtract a negative # you are adding, so it's getting registration stats for the year 2008!

$year = $year - floor(($howmany - $today['month']) / 12)
$year = $year - floor((10 - 11) / 12)
$year = $year - floor((-1) / 12)
$year = $year - floor(-0.0833)
$year = $year - -1
$year = 2007 - -1
$year = 2008

A simple fix is to use the "intval" function rather then "floor", which just returns the integer which is what was being attempted with the "floor" function and when the result is (-0.0833) it will return 0 which will work.

PHP Code:
  // calc year to get registrations from
  
$year $today['year'];
  if (
$howmany $today['month']) {
   
$year--;
  }
   
$year $year intval(($howmany $today['month']) / 12);
 
  
// calc month since to get registrarions from
  
$month $today['month'] - ($howmany 1);
  if (
$month 1) {
   
$month 12 + ($month 12);
  } 
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01220 seconds
  • Memory Usage 1,787KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (3)bbcode_php
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete