View Single Post
  #1  
Old 09-09-2021, 09:00 AM
denverwork denverwork is offline
 
Join Date: Jul 2021
Posts: 1
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Incorrect calculation of statistics

Faced with the problem that the data for statistics are calculated incorrectly by cron.
For example, new threads.
core/includes/cron/stats.php:
PHP Code:
...
// new threads
$newtopics vB::getDbAssertor()->getRow('vBForum:getStarterStats', array('timestamp' => $timestamp));
... 
core/packages/vbforum/db/mysql/querydefs.php:
PHP Code:
...
        
'getStarterStats' => array(vB_dB_Query::QUERYTYPE_KEY => vB_dB_Query::QUERY_SELECT,
            
'query_string' => "
                SELECT COUNT(*) AS count
                FROM {TABLE_PREFIX}node
                WHERE (starter=nodeid) AND publishdate > {timestamp}
        "
),
... 
This data is calculated by the script and written to the table stats, which is run by cron.
When calculating the data in this case, not only new posts are included, but also private messages.

But if you start manually recalculating statistics in the admin panel, then the logic is as follows,
core/admincp/misc.php:
PHP Code:
// new threads
$newthreads $vbulletin->db->query_first('SELECT COUNT(nodeid) AS total FROM ' TABLE_PREFIX 'node AS node INNER JOIN ' TABLE_PREFIX 'closure AS cl ON cl.parent = ' $forumChannel ' WHERE node.nodeid = node.starter AND cl.child = node.nodeid AND node.publishdate >= ' $timestamp ' AND node.publishdate < ' . ($timestamp 86400)); 

Why such a difference can be in the code? And how to fix it correctly so as not to make changes to the core?
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.02263 seconds
  • Memory Usage 1,778KB
  • 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