function main($id, $mode)
 {
     global $db, $config, $sconfig, $phpbb_root_path, $user, $template, $request, $phpbb_extension_manager, $phpbb_container, $phpbb_path_helper, $tables;
     $user->add_lang_ext('forumhulp/statistics', 'statistics');
     function __construct(\phpbb\user $user, \phpbb\controller\provider $controller_provider, \phpbb\extension\manager $extension_manager, $phpbb_root_path)
     {
         $this->controller_provider = $controller_provider;
         $this->extension_manager = $extension_manager;
         $this->phpbb_root_path = $phpbb_root_path;
         //		parent::__construct($user);
     }
     $tables['config'] = $phpbb_container->getParameter('tables.config_table');
     $tables['online'] = $phpbb_container->getParameter('tables.online_table');
     $tables['domain'] = $phpbb_container->getParameter('tables.domain_table');
     $tables['se'] = $phpbb_container->getParameter('tables.se_table');
     $tables['archive'] = $phpbb_container->getParameter('tables.archive_table');
     $tables['stats'] = $phpbb_container->getParameter('tables.stats_table');
     include $phpbb_root_path . 'ext/forumhulp/statistics/vendor/stat_functions.php';
     \stat_functions::get_config();
     $action = $request->variable('action', '');
     $screen = $request->variable('screen', $sconfig['statistics_start_screen']);
     $start = $request->variable('start', 0);
     $overall = (int) $request->variable('overall', $config['statistics_archive']);
     if ($overall != (int) $config['statistics_archive']) {
         $config->set('statistics_archive', (int) $overall);
     }
     $this->tpl_name = 'acp_statistics';
     $this->page_title = 'ACP_STATISTICS';
     $template->assign_vars(array('EXT_PATH' => $phpbb_path_helper->update_web_root_path($phpbb_extension_manager->get_extension_path('forumhulp/statistics', true)), 'U_ACTION' => $this->u_action, 'ACT' => $screen));
     switch ($screen) {
         case 'info':
             $user->add_lang(array('install', 'acp/extensions', 'migrator'));
             $ext_name = 'forumhulp/statistics';
             $md_manager = new \phpbb\extension\metadata_manager($ext_name, $config, $phpbb_extension_manager, $template, $user, $phpbb_root_path);
             try {
                 $this->metadata = $md_manager->get_metadata('all');
             } catch (\phpbb\extension\exception $e) {
                 trigger_error($e, E_USER_WARNING);
             }
             $md_manager->output_template_data();
             try {
                 $updates_available = $this->version_check($md_manager, $request->variable('versioncheck_force', false));
                 $template->assign_vars(array('S_UP_TO_DATE' => empty($updates_available), 'S_VERSIONCHECK' => true, 'UP_TO_DATE_MSG' => $user->lang(empty($updates_available) ? 'UP_TO_DATE' : 'NOT_UP_TO_DATE', $md_manager->get_metadata('display-name'))));
                 foreach ($updates_available as $branch => $version_data) {
                     $template->assign_block_vars('updates_available', $version_data);
                 }
             } catch (\RuntimeException $e) {
                 $template->assign_vars(array('S_VERSIONCHECK_STATUS' => $e->getCode(), 'VERSIONCHECK_FAIL_REASON' => $e->getMessage() !== $user->lang('VERSIONCHECK_FAIL') ? $e->getMessage() : ''));
             }
             $template->assign_vars(array('U_BACK' => $this->u_action));
             $this->tpl_name = 'acp_ext_details';
             break;
         case 'nyi':
             \stat_functions::nyi($start, $this->u_action, $overall);
             break;
         case 'countries':
             \stat_functions::countries($start, $this->u_action, $overall);
             break;
         case 'browsers':
             \stat_functions::browsers($start, $this->u_action, $overall);
             break;
         case 'os':
             \stat_functions::os($start, $this->u_action, $overall);
             break;
         case 'referrals':
             \stat_functions::referrals($start, $this->u_action, $overall);
             break;
         case 'se':
             \stat_functions::se($start, $this->u_action, $overall);
             break;
         case 'ese':
             $this->tpl_name = 'subdisplays/ese';
             \stat_functions::ese($this->u_action, $action);
             break;
         case 'se_terms':
             \stat_functions::se_terms($start, $this->u_action, $overall);
             break;
         case 'crawl':
             \stat_functions::crawl($start, $this->u_action, $overall);
             break;
         case 'modules':
             \stat_functions::modules($start, $this->u_action, $overall);
             break;
         case 'screens':
             \stat_functions::screens($start, $this->u_action, $overall);
             break;
         case 'stats':
             \stat_functions::stats($start, $this->u_action);
             break;
         case 'ustats':
             \stat_functions::ustats($start, $this->u_action);
             break;
         case 'users':
             \stat_functions::users($start, $this->u_action, $overall);
             break;
         case 'config':
             \stat_functions::config($start, $this->u_action);
             break;
         case 'top10':
             \stat_functions::top10($start, $this->u_action);
             break;
         default:
             \stat_functions::online($start, $this->u_action);
             break;
     }
 }