Used datastore to show statistic for more performance (#1309)

* Used datastore to show statistic for more performance

* Update admin_forums.php
This commit is contained in:
Roman Kelesidis 2024-01-06 14:07:27 +07:00 committed by GitHub
commit 6bf987edb0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 11 additions and 46 deletions

View file

@ -472,6 +472,7 @@ if ($mode) {
fix_orphan_sf(); fix_orphan_sf();
\TorrentPier\Legacy\Group::update_user_level('all'); \TorrentPier\Legacy\Group::update_user_level('all');
$datastore->update('cat_forums'); $datastore->update('cat_forums');
$datastore->update('stats');
CACHE('bb_cache')->rm(); CACHE('bb_cache')->rm();
bb_die($lang['FORUMS_UPDATED'] . '<br /><br />' . sprintf($lang['CLICK_RETURN_FORUMADMIN'], '<a href="admin_forums.php">', '</a>') . '<br /><br />' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '<a href="index.php?pane=right">', '</a>')); bb_die($lang['FORUMS_UPDATED'] . '<br /><br />' . sprintf($lang['CLICK_RETURN_FORUMADMIN'], '<a href="admin_forums.php">', '</a>') . '<br /><br />' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '<a href="index.php?pane=right">', '</a>'));

View file

@ -9,6 +9,12 @@
require __DIR__ . '/pagestart.php'; require __DIR__ . '/pagestart.php';
// Statistics
if (!$stats = $datastore->get('stats')) {
$datastore->update('stats');
$stats = $datastore->get('stats');
}
// Generate relevant output // Generate relevant output
if (isset($_GET['pane']) && $_GET['pane'] == 'left') { if (isset($_GET['pane']) && $_GET['pane'] == 'left') {
$module = []; $module = [];
@ -71,9 +77,9 @@ if (isset($_GET['pane']) && $_GET['pane'] == 'left') {
]); ]);
// Get forum statistics // Get forum statistics
$total_posts = get_db_stat('postcount'); $total_posts = $stats['postcount'];
$total_users = get_db_stat('usercount'); $total_topics = $stats['topiccount'];
$total_topics = get_db_stat('topiccount'); $total_users = $stats['usercount'];
$start_date = bb_date($bb_cfg['board_startdate']); $start_date = bb_date($bb_cfg['board_startdate']);
$boarddays = (TIMENOW - $bb_cfg['board_startdate']) / 86400; $boarddays = (TIMENOW - $bb_cfg['board_startdate']) / 86400;

View file

@ -20,7 +20,7 @@ $row = DB()->fetch_row("SELECT COUNT(*) AS usercount FROM " . BB_USERS . " WHERE
$data['usercount'] = commify($row['usercount']); $data['usercount'] = commify($row['usercount']);
// newestuser // newestuser
$row = DB()->fetch_row("SELECT user_id, username, user_rank FROM " . BB_USERS . " WHERE user_active = 1 ORDER BY user_id DESC LIMIT 1"); $row = DB()->fetch_row("SELECT user_id, username, user_rank FROM " . BB_USERS . " WHERE user_active = 1 AND user_id NOT IN(" . EXCLUDED_USERS . ") ORDER BY user_id DESC LIMIT 1");
$data['newestuser'] = $row; $data['newestuser'] = $row;
// post/topic count // post/topic count

View file

@ -932,48 +932,6 @@ function bb_update_config($params, $table = BB_CONFIG)
bb_get_config($table, true, true); bb_get_config($table, true, true);
} }
function get_db_stat($mode)
{
$sql = null;
switch ($mode) {
case 'usercount':
$sql = "SELECT COUNT(user_id) AS total FROM " . BB_USERS;
break;
case 'newestuser':
$sql = "SELECT user_id, username FROM " . BB_USERS . " WHERE user_id <> " . GUEST_UID . " ORDER BY user_id DESC LIMIT 1";
break;
case 'postcount':
case 'topiccount':
$sql = "SELECT SUM(forum_topics) AS topic_total, SUM(forum_posts) AS post_total FROM " . BB_FORUMS;
break;
}
if (!($result = DB()->sql_query($sql))) {
return false;
}
$row = DB()->sql_fetchrow($result);
switch ($mode) {
case 'usercount':
return $row['total'];
break;
case 'newestuser':
return $row;
break;
case 'postcount':
return $row['post_total'];
break;
case 'topiccount':
return $row['topic_total'];
break;
}
return false;
}
function clean_username($username) function clean_username($username)
{ {
$username = mb_substr(htmlspecialchars(str_replace("\'", "'", trim($username))), 0, 25, 'UTF-8'); $username = mb_substr(htmlspecialchars(str_replace("\'", "'", trim($username))), 0, 25, 'UTF-8');