$details ) {
# Check we're allowed to choose
if ( ! empty($details['force']) ) {
continue;
}
# Generate the HTML 'checked' where appropriate
$checked = $options[$name] ? ' checked="checked"' : '';
# Add to the toShow array
$toShow[] = array(
'name' => $name,
'title' => $details['title'],
'desc' => $details['desc'],
'escaped_desc' => str_replace("'", "\'", $details['desc']),
'checked' => $checked
);
}
/*****************************************************************
* Look for any error information in the URL.
******************************************************************/
# Check for error
if ( isset($_GET['e']) && isset($phrases[$_GET['e']]) ) {
# Look for additional arguments (to be used as variables in the error message)
$args = isset($_GET['p']) ? @unserialize(base64_decode($_GET['p'])) : array();
# If we failed to decode the arguments, reset to a blank array
if ( ! is_array($args) ) {
$args = array();
}
# Did we find any args to pass?
if ( $args ) {
# Add phrase to start of array (to give to call_user_func_array())
$args = array_merge( (array) $phrases[$_GET['e']], $args);
$error = call_user_func_array('sprintf',$args);
} else {
# Just a simple print
$error = $phrases[$_GET['e']];
}
# Finally add it to the $themeReplace array to get it in there
$themeReplace['error'] = '
' . $error . '
';
# And a link to try again?
if ( ! empty($_GET['return']) ) {
$themeReplace['error'] .= '[Reload ' . htmlentities(deproxyURL($_GET['return'])) . ']
';
}
}
/*****************************************************************
* Check PHP version
******************************************************************/
if ( version_compare(PHP_VERSION, 5) < 0 ) {
$themeReplace['error'] = 'You need PHP 5 to run this script. You are currently running ' . PHP_VERSION . '
';
}
if (count($adminDetails)===0) {
header("HTTP/1.1 302 Found"); header("Location: admin.php"); exit;
}
/*****************************************************************
* Maintenance - check if we want to do anything now
******************************************************************/
if ( $CONFIG['tmp_cleanup_interval'] ) {
# Do we have a next run time?
if ( file_exists($file = $CONFIG['tmp_dir'] . 'cron.php') ) {
# Load the next runtime
include $file;
# Compare to current time
$runCleanup = $nextRun <= $_SERVER['REQUEST_TIME'];
} else {
# No runtime stored, assume first request with the cleanup option
# enabled so run now.
$runCleanup = true;
}
# This might take a while so do it after user has received
# page and cut connection.
if ( ! empty($runCleanup) ) {
header('Connection: Close');
}
}
/*****************************************************************
* All done, show the page
******************************************************************/
# Throw all template variables into an array to pass to the template
$vars['toShow'] = $toShow;
echo loadTemplate('main', $vars);
# And flush buffer
ob_end_flush();
/*****************************************************************
* Now actually do the maintenance if desired
******************************************************************/
if ( ! empty($runCleanup) ) {
# Don't stop
ignore_user_abort(true);
# Update the time file
file_put_contents($file, ' $cutOff ) {
continue;
}
# Delete it
unlink($path);
}
# And close handle
closedir($handle);
}
# remove logs
if ( $CONFIG['tmp_cleanup_logs'] && is_dir($CONFIG['logging_destination']) && ( $handle = opendir($CONFIG['logging_destination']) ) ) {
# Cut off for deletion of old logs
$cutOff = $_SERVER['REQUEST_TIME'] - ($CONFIG['tmp_cleanup_logs'] * 86400);
# Read every file in the logs dir
while ( ( $file = readdir($handle) ) !== false ) {
# Skip dot files
if ( $file[0] == '.' ) {
continue;
}
$path = $CONFIG['logging_destination'] . $file;
# Check it's not being used
if ( filemtime($path) > $cutOff ) {
continue;
}
# Delete it
unlink($path);
}
# And close handle
closedir($handle);
}
# Finished.
}