punbb/admin_index.php
author Dan
Wed, 11 Jul 2007 21:01:48 -0400
changeset 0 f9ffdbd96607
child 2 a8a21e1c7afa
permissions -rw-r--r--
Initial population
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
     1
<?php
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
     2
/***********************************************************************
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
     3
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
     4
  Copyright (C) 2002-2005  Rickard Andersson (rickard@punbb.org)
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
     5
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
     6
  This file is part of PunBB.
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
     7
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
     8
  PunBB is free software; you can redistribute it and/or modify it
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
     9
  under the terms of the GNU General Public License as published
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    10
  by the Free Software Foundation; either version 2 of the License,
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    11
  or (at your option) any later version.
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    12
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    13
  PunBB is distributed in the hope that it will be useful, but
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    14
  WITHOUT ANY WARRANTY; without even the implied warranty of
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    15
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    16
  GNU General Public License for more details.
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    17
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    18
  You should have received a copy of the GNU General Public License
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    19
  along with this program; if not, write to the Free Software
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    20
  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    21
  MA  02111-1307  USA
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    22
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    23
************************************************************************/
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    24
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    25
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    26
// Tell header.php to use the admin template
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    27
define('PUN_ADMIN_CONSOLE', 1);
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    28
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    29
define('PUN_ROOT', './');
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    30
require PUN_ROOT.'include/common.php';
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    31
require PUN_ROOT.'include/common_admin.php';
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    32
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    33
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    34
if ($pun_user['g_id'] > PUN_MOD)
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    35
	message($lang_common['No permission']);
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    36
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    37
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    38
$action = isset($_GET['action']) ? $_GET['action'] : null;
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    39
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    40
// Check for upgrade
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    41
if ($action == 'check_upgrade')
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    42
{
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    43
	if (!ini_get('allow_url_fopen'))
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    44
		message('Unable to check for upgrade since \'allow_url_fopen\' is disabled on this system.');
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    45
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    46
	$fp = @fopen('http://www.punbb.org/latest_version', 'r');
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    47
	$latest_version = trim(@fread($fp, 16));
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    48
	@fclose($fp);
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    49
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    50
	if ($latest_version == '')
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    51
		message('Check for upgrade failed for unknown reasons.');
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    52
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    53
	$cur_version = str_replace(array('.', 'dev', 'beta', ' '), '', strtolower($pun_config['o_cur_version']));
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    54
	$cur_version = (strlen($cur_version) == 2) ? intval($cur_version) * 10 : intval($cur_version);
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    55
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    56
	$latest_version = str_replace('.', '', strtolower($latest_version));
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    57
	$latest_version = (strlen($latest_version) == 2) ? intval($latest_version) * 10 : intval($latest_version);
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    58
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    59
	if ($cur_version >= $latest_version)
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    60
		message('You are running the latest version of PunBB.');
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    61
	else
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    62
		message('A new version of PunBB has been released. You can download the latest version at <a href="http://www.punbb.org/">PunBB.org</a>.');
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    63
}
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    64
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    65
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    66
// Show phpinfo() output
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    67
else if ($action == 'phpinfo' && $pun_user['g_id'] == PUN_ADMIN)
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    68
{
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    69
	// Is phpinfo() a disabled function?
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    70
	if (strpos(strtolower((string)@ini_get('disable_functions')), 'phpinfo') !== false)
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    71
		message('The PHP function phpinfo() has been disabled on this server.');
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    72
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    73
	phpinfo();
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    74
	exit;
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    75
}
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    76
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    77
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    78
// Get the server load averages (if possible)
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    79
if (@file_exists('/proc/loadavg') && is_readable('/proc/loadavg'))
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    80
{
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    81
	// We use @ just in case
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    82
	$fh = @fopen('/proc/loadavg', 'r');
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    83
	$load_averages = @fread($fh, 64);
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    84
	@fclose($fh);
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    85
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    86
	$load_averages = @explode(' ', $load_averages);
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    87
	$server_load = isset($load_averages[2]) ? $load_averages[0].' '.$load_averages[1].' '.$load_averages[2] : 'Not available';
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    88
}
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    89
else if (!in_array(PHP_OS, array('WINNT', 'WIN32')) && preg_match('/averages?: ([0-9\.]+),[\s]+([0-9\.]+),[\s]+([0-9\.]+)/i', @exec('uptime'), $load_averages))
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    90
	$server_load = $load_averages[1].' '.$load_averages[2].' '.$load_averages[3];
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    91
else
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    92
	$server_load = 'Not available';
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    93
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    94
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    95
// Get number of current visitors
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    96
$result = $db->query('SELECT COUNT(user_id) FROM '.$db->prefix.'online WHERE idle=0') or error('Unable to fetch online count', __FILE__, __LINE__, $db->error());
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    97
$num_online = $db->result($result);
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    98
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
    99
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   100
// Get the database system version
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   101
switch ($db_type)
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   102
{
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   103
	case 'sqlite':
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   104
		$db_version = 'SQLite '.sqlite_libversion();
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   105
		break;
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   106
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   107
	default:
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   108
		$result = $db->query('SELECT VERSION()') or error('Unable to fetch version info', __FILE__, __LINE__, $db->error());
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   109
		$db_version = $db->result($result);
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   110
		break;
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   111
}
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   112
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   113
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   114
// Collect some additional info about MySQL
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   115
if ($db_type == 'mysql' || $db_type == 'mysqli')
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   116
{
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   117
	$db_version = 'MySQL '.$db_version;
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   118
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   119
	// Calculate total db size/row count
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   120
	$result = $db->query('SHOW TABLE STATUS FROM `'.$db_name.'`') or error('Unable to fetch table status', __FILE__, __LINE__, $db->error());
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   121
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   122
	$total_records = $total_size = 0;
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   123
	while ($status = $db->fetch_assoc($result))
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   124
	{
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   125
		$total_records += $status['Rows'];
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   126
		$total_size += $status['Data_length'] + $status['Index_length'];
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   127
	}
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   128
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   129
	$total_size = $total_size / 1024;
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   130
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   131
	if ($total_size > 1024)
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   132
		$total_size = round($total_size / 1024, 2).' MB';
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   133
	else
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   134
		$total_size = round($total_size, 2).' KB';
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   135
}
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   136
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   137
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   138
// See if MMCache or PHPA is loaded
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   139
if (function_exists('mmcache'))
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   140
	$php_accelerator = '<a href="http://turck-mmcache.sourceforge.net/">Turck MMCache</a>';
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   141
else if (isset($_PHPA))
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   142
	$php_accelerator = '<a href="http://www.php-accelerator.co.uk/">ionCube PHP Accelerator</a>';
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   143
else
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   144
	$php_accelerator = 'N/A';
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   145
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   146
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   147
$page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / Admin';
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   148
require PUN_ROOT.'header.php';
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   149
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   150
generate_admin_menu('index');
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   151
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   152
?>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   153
	<div class="block">
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   154
		<h2>Forum administration</h2>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   155
		<div id="adintro" class="box">
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   156
			<div class="inbox">
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   157
				<p>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   158
					Welcome to the PunBB administration control panel. From here you can control vital aspects of the forum. Depending on whether you are an administrator or a moderator you can<br /><br />
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   159
					&nbsp;- organize categories and forums.<br />
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   160
					&nbsp;- set forum-wide options and preferences.<br />
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   161
					&nbsp;- control permissions for users and guests.<br />
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   162
					&nbsp;- view IP statistics for users.<br />
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   163
					&nbsp;- ban users.<br />
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   164
					&nbsp;- censor words.<br />
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   165
					&nbsp;- set up user ranks.<br />
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   166
					&nbsp;- prune old posts.<br />
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   167
					&nbsp;- handle post reports.
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   168
				</p>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   169
			</div>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   170
		</div>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   171
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   172
		<h2 class="block2"><span>Statistics</span></h2>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   173
		<div id="adstats" class="box">
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   174
			<div class="inbox">
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   175
				<dl>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   176
					<dt>PunBB version</dt>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   177
					<dd>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   178
						PunBB <?php echo $pun_config['o_cur_version'] ?> - <a href="admin_index.php?action=check_upgrade">Check for upgrade</a><br />
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   179
						&copy; Copyright 2002, 2003, 2004, 2005 Rickard Andersson
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   180
					</dd>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   181
					<dt>Server load</dt>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   182
					<dd>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   183
						<?php echo $server_load ?> (<?php echo $num_online ?> users online)
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   184
					</dd>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   185
<?php if ($pun_user['g_id'] == PUN_ADMIN): ?>					<dt>Environment</dt>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   186
					<dd>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   187
						Operating system: <?php echo PHP_OS ?><br />
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   188
						PHP: <?php echo phpversion() ?> - <a href="admin_index.php?action=phpinfo">Show info</a><br />
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   189
						Accelerator: <?php echo $php_accelerator."\n" ?>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   190
					</dd>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   191
					<dt>Database</dt>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   192
					<dd>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   193
						<?php echo $db_version."\n" ?>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   194
<?php if (isset($total_records) && isset($total_size)): ?>						<br />Rows: <?php echo $total_records."\n" ?>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   195
						<br />Size: <?php echo $total_size."\n" ?>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   196
<?php endif; endif; ?>					</dd>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   197
				</dl>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   198
			</div>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   199
		</div>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   200
	</div>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   201
	<div class="clearer"></div>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   202
</div>
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   203
<?php
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   204
f9ffdbd96607 Initial population
Dan
parents:
diff changeset
   205
require PUN_ROOT.'footer.php';