acl_get('a_')) { trigger_error($user->lang['NO_ADMIN']); } // Define some vars $pane = request_var('pane', ''); // Generate relevant output if ($pane == 'top') { adm_page_header('', '', false); ?>
" target="_top">phpBB Logo lang['ADMIN_TITLE']; ?>      
body {background-color: #98AAB1}', false); // Grab module information using Bart's "neat-o-module" system (tm) $dir = @opendir('.'); $setmodules = 1; while ($file = readdir($dir)) { if (preg_match('#^admin_(.*?)\.' . $phpEx . '$#', $file)) { include($file); } } @closedir($dir); unset($setmodules); ?>
$action_ary) { $cat = (!empty($user->lang[$cat . '_CAT'])) ? $user->lang[$cat . '_CAT'] : preg_replace('#_#', ' ', $cat); ?> $file) { if (!empty($file)) { $action = (!empty($user->lang[$action])) ? $user->lang[$action] : preg_replace('#_#', ' ', $action); $row_class = ($row_class == 'row1') ? 'row2' : 'row1'; ?>
» lang['RETURN_TO']; ?>
&pane=right" target="main">lang['ADMIN_INDEX']; ?>
" target="_top">lang['FORUM_INDEX']; ?>
»
acl_get('a_user')) { trigger_error($user->lang['NO_ADMIN']); } $sql = 'SELECT username FROM ' . USERS_TABLE . " WHERE user_id IN ($mark)"; $result = $db->sql_query($sql); $user_affected = array(); while ($row = $db->sql_fetchrow($result)) { $user_affected[] = $row['username']; } $db->sql_freeresult($result); if ($action == 'activate') { include($phpbb_root_path . 'includes/functions_user.php'); $mark_ary = explode(', ', $mark); foreach ($mark_ary as $user_id) { user_active_flip($user_id, USER_INACTIVE); } } else if ($action == 'delete') { $sql = 'DELETE FROM ' . USER_GROUP_TABLE . " WHERE user_id IN ($mark)"; $db->sql_query($sql); $sql = 'DELETE FROM ' . USERS_TABLE . " WHERE user_id IN ($mark)"; $db->sql_query($sql); add_log('admin', 'LOG_INDEX_' . strtoupper($action), implode(', ', $user_affected)); } if ($action != 'delete') { set_config('num_users', $config['num_users'] + $db->sql_affectedrows(), true); } break; case 'remind': if (!$auth->acl_get('a_user')) { trigger_error($user->lang['NO_ADMIN']); } if (empty($config['email_enable'])) { trigger_error($user->lang['EMAIL_DISABLED']); } $sql = 'SELECT user_id, username, user_email, user_lang, user_jabber, user_notify_type, user_regdate, user_actkey FROM ' . USERS_TABLE . " WHERE user_id IN ($mark)"; $result = $db->sql_query($sql); if ($row = $db->sql_fetchrow($result)) { // Send the messages include_once($phpbb_root_path . 'includes/functions_messenger.'.$phpEx); $messenger = new messenger(); $board_url = generate_board_url() . "/ucp.$phpEx?mode=activate"; $sig = str_replace('
', "\n", "-- \n" . $config['board_email_sig']); $usernames = array(); do { $messenger->template('user_remind_inactive', $row['user_lang']); $messenger->replyto($config['board_email']); $messenger->to($row['user_email'], $row['username']); $messenger->im($row['user_jabber'], $row['username']); $messenger->assign_vars(array( 'EMAIL_SIG' => $sig, 'USERNAME' => $row['username'], 'SITENAME' => $config['sitename'], 'REGISTER_DATE' => $user->format_date($row['user_regdate']), 'U_ACTIVATE' => "$board_url&mode=activate&u=" . $row['user_id'] . '&k=' . $row['user_actkey']) ); $messenger->send($row['user_notify_type']); $usernames[] = $row['username']; } while ($row = $db->sql_fetchrow($result)); $messenger->save_queue(); unset($email_list); add_log('admin', 'LOG_INDEX_REMIND', implode(', ', $usernames)); unset($usernames); } $db->sql_freeresult($result); break; } } switch ($action) { case 'online': if (!$auth->acl_get('a_defaults')) { trigger_error($user->lang['NO_ADMIN']); } set_config('record_online_users', 1, true); set_config('record_online_date', time(), true); add_log('admin', 'LOG_RESET_ONLINE'); break; case 'stats': if (!$auth->acl_get('a_defaults')) { trigger_error($user->lang['NO_ADMIN']); } $sql = 'SELECT COUNT(post_id) AS stat FROM ' . POSTS_TABLE . ' WHERE post_approved = 1'; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); set_config('num_posts', (int) $row['stat'], true); $sql = 'SELECT COUNT(topic_id) AS stat FROM ' . TOPICS_TABLE . ' WHERE topic_approved = 1'; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); set_config('num_topics', (int) $row['stat'], true); $sql = 'SELECT COUNT(user_id) AS stat FROM ' . USERS_TABLE . ' WHERE user_type IN (' . USER_NORMAL . ',' . USER_FOUNDER . ')'; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); set_config('num_users', (int) $row['stat'], true); $sql = 'SELECT COUNT(attach_id) as stat FROM ' . ATTACHMENTS_TABLE; $result = $db->sql_query($sql); set_config('num_files', (int) $db->sql_fetchfield('stat', 0, $result), true); $db->sql_freeresult($result); $sql = 'SELECT SUM(filesize) as stat FROM ' . ATTACHMENTS_TABLE; $result = $db->sql_query($sql); set_config('upload_dir_size', (int) $db->sql_fetchfield('stat', 0, $result), true); $db->sql_freeresult($result); add_log('admin', 'LOG_RESYNC_STATS'); break; case 'user': if (!$auth->acl_get('a_defaults')) { trigger_error($user->lang['NO_ADMIN']); } $post_count_ary = $auth->acl_getf('f_postcount'); $forum_ary = array(); foreach ($post_count_ary as $forum_id => $allowed) { if ($allowed['f_postcount']) { $forum_ary[] = $forum_id; } } if (!sizeof($forum_ary)) { $db->sql_query('UPDATE ' . USERS_TABLE . ' SET user_posts = 0'); } else { $sql = 'SELECT COUNT(post_id) AS num_posts, poster_id FROM ' . POSTS_TABLE . ' WHERE poster_id <> ' . ANONYMOUS . ' AND forum_id IN (' . implode(', ', $forum_ary) . ') GROUP BY poster_id'; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $db->sql_query('UPDATE ' . USERS_TABLE . " SET user_posts = {$row['num_posts']} WHERE user_id = {$row['poster_id']}"); } $db->sql_freeresult($result); } add_log('admin', 'LOG_RESYNC_POSTCOUNTS'); break; case 'date': if (!$auth->acl_get('a_defaults')) { trigger_error($user->lang['NO_ADMIN']); } set_config('board_startdate', time() - 1); add_log('admin', 'LOG_RESET_DATE'); break; } // Get forum statistics $total_posts = $config['num_posts']; $total_topics = $config['num_topics']; $total_users = $config['num_users']; $total_files = $config['num_files']; $start_date = $user->format_date($config['board_startdate']); $boarddays = (time() - $config['board_startdate']) / 86400; $posts_per_day = sprintf('%.2f', $total_posts / $boarddays); $topics_per_day = sprintf('%.2f', $total_topics / $boarddays); $users_per_day = sprintf('%.2f', $total_users / $boarddays); $files_per_day = sprintf('%.2f', $total_files / $boarddays); $upload_dir_size = ($config['upload_dir_size'] >= 1048576) ? sprintf('%.2f ' . $user->lang['MB'], ($config['upload_dir_size'] / 1048576)) : (($config['upload_dir_size'] >= 1024) ? sprintf('%.2f ' . $user->lang['KB'], ($config['upload_dir_size'] / 1024)) : sprintf('%.2f ' . $user->lang['BYTES'], $config['upload_dir_size'])); $avatar_dir_size = 0; if ($avatar_dir = @opendir($phpbb_root_path . $config['avatar_path'])) { while ($file = readdir($avatar_dir)) { if ($file{0} != '.') { $avatar_dir_size += filesize($phpbb_root_path . $config['avatar_path'] . '/' . $file); } } @closedir($avatar_dir); // This bit of code translates the avatar directory size into human readable format // Borrowed the code from the PHP.net annoted manual, origanally written by: // Jesse (jesse@jess.on.ca) $avatar_dir_size = ($avatar_dir_size >= 1048576) ? sprintf('%.2f ' . $user->lang['MB'], ($avatar_dir_size / 1048576)) : (($avatar_dir_size >= 1024) ? sprintf('%.2f ' . $user->lang['KB'], ($avatar_dir_size / 1024)) : sprintf('%.2f ' . $user->lang['BYTES'], $avatar_dir_size)); } else { // Couldn't open Avatar dir. $avatar_dir_size = $user->lang['NOT_AVAILABLE']; } if ($posts_per_day > $total_posts) { $posts_per_day = $total_posts; } if ($topics_per_day > $total_topics) { $topics_per_day = $total_topics; } if ($users_per_day > $total_users) { $users_per_day = $total_users; } if ($files_per_day > $total_files) { $files_per_day = $total_files; } // DB size ... MySQL only // This code is heavily influenced by a similar routine // in phpMyAdmin 2.2.0 if (preg_match('#^mysql#', SQL_LAYER)) { $result = $db->sql_query('SELECT VERSION() AS mysql_version'); if ($row = $db->sql_fetchrow($result)) { $version = $row['mysql_version']; if (preg_match('#^(3\.23|4\.)#', $version)) { $db_name = (preg_match('#^(3\.23\.[6-9])|(3\.23\.[1-9][1-9])|(4\.)#', $version)) ? "`$dbname`" : $dbname; $sql = "SHOW TABLE STATUS FROM " . $db_name; $result = $db->sql_query($sql); $dbsize = 0; while ($row = $db->sql_fetchrow($result)) { if ((isset($row['Type']) && $row['Type'] != 'MRG_MyISAM') || (isset($row['Engine']) && $row['Engine'] == 'MyISAM')) { if ($table_prefix != '') { if (strstr($row['Name'], $table_prefix)) { $dbsize += $row['Data_length'] + $row['Index_length']; } } else { $dbsize += $row['Data_length'] + $row['Index_length']; } } } } else { $dbsize = $user->lang['NOT_AVAILABLE']; } } else { $dbsize = $user->lang['NOT_AVAILABLE']; } } else if (preg_match('#^mssql#', SQL_LAYER)) { $sql = 'SELECT ((SUM(size) * 8.0) * 1024.0) as dbsize FROM sysfiles'; $result = $db->sql_query($sql); $dbsize = ($row = $db->sql_fetchrow($result)) ? intval($row['dbsize']) : $user->lang['NOT_AVAILABLE']; } else { $dbsize = $user->lang['NOT_AVAILABLE']; } if (is_int($dbsize)) { $dbsize = ($dbsize >= 1048576) ? sprintf('%.2f ' . $user->lang['MB'], ($dbsize / 1048576)) : (($dbsize >= 1024) ? sprintf('%.2f ' . $user->lang['KB'], ($dbsize / 1024)) : sprintf('%.2f ' . $user->lang['BYTES'], $dbsize)); } adm_page_header($user->lang['ADMIN_INDEX']); ?>

lang['WELCOME_PHPBB']; ?>

lang['ADMIN_INTRO']; ?>

lang['FORUM_STATS']; ?>

lang['STATISTIC']; ?> lang['VALUE']; ?> lang['STATISTIC']; ?> lang['VALUE']; ?>
lang['NUMBER_POSTS']; ?>: lang['POSTS_PER_DAY']; ?>:
lang['NUMBER_TOPICS']; ?>: lang['TOPICS_PER_DAY']; ?>:
lang['NUMBER_USERS']; ?>: lang['USERS_PER_DAY']; ?>:
lang['NUMBER_FILES']; ?>: lang['FILES_PER_DAY']; ?>:
lang['BOARD_STARTED']; ?>: lang['AVATAR_DIR_SIZE']; ?>:
lang['DATABASE_SIZE']; ?>: lang['UPLOAD_DIR_SIZE']; ?>:
lang['GZIP_COMPRESSION']; ?>: lang['ON'] : $user->lang['OFF']; ?>    
 

lang['ADMIN_LOG']; ?>

lang['ADMIN_LOG_INDEX_EXPLAIN']; ?>

acl_get('a_user')) { ?>
lang['USERNAME']; ?> lang['IP']; ?> lang['TIME']; ?> lang['ACTION']; ?>
format_date($log_data[$i]['time']); ?>

lang['INACTIVE_USERS']; ?>

lang['INACTIVE_USERS_EXPLAIN']; ?>

">sql_query($sql); if ($row = $db->sql_fetchrow($result)) { do { $row_class = ($row_class == 'row1') ? 'row2' : 'row1'; ?> sql_fetchrow($result)); ?>
lang['USERNAME']; ?> lang['JOINED']; ?> lang['MARK']; ?>
format_date($row['user_regdate']); ?>   
 
lang['NO_INACTIVE_USERS']; ?>
lang['MARK_ALL']; ?> :: lang['UNMARK_ALL']; ?>
lang['ENCODING']); $adm_url = "index.$phpEx$SID&pane=right"; /* // Allows non-admin pages to link to admin pages // eg: http://forums.foo.com/adm/index.php?sid=&mod=admin_forums&f=1 if (!empty($_GET['mod']) && preg_match('/admin_([a-z]+)/', $_GET['mod'], $m)) { if (file_exists($phpbb_root_path . 'adm/admin_' . $m[1] . '.' . $phpEx)) { $adm_url = 'admin_' . $m[1] . '.' . $phpEx . $SID; $adm_url .= (!empty($_GET['mode'])) ? '&mode=' . htmlspecialchars($_GET['mode']) : ''; $adm_url .= (!empty($_GET['f'])) ? '&f=' . intval($_GET['f']) : ''; $adm_url .= (!empty($_GET['u'])) ? '&u=' . intval($_GET['u']) : ''; $adm_url .= (!empty($_GET['g'])) ? '&g=' . intval($_GET['g']) : ''; } } */ ?> <?php echo $user->lang['ADMIN_TITLE']; ?> " name="title" noresize marginwidth="0" marginheight="0" scrolling="NO"> " name="nav" marginwidth="3" marginheight="3" scrolling="yes"> <body bgcolor="white" text="#000000"> <p><?php echo $user->lang['NO_FRAMES']; ?></p> </body>