Zeile 65 | Zeile 65 |
---|
// Prevent any shut down functions from running $done_shutdown = 1;
|
// Prevent any shut down functions from running $done_shutdown = 1;
|
// Include the necessary contants for installation
| // Include the necessary constants for installation
|
$grouppermignore = array('gid', 'type', 'title', 'description', 'namestyle', 'usertitle', 'stars', 'starimage', 'image');
|
$grouppermignore = array('gid', 'type', 'title', 'description', 'namestyle', 'usertitle', 'stars', 'starimage', 'image');
|
$groupzerogreater = array('pmquota', 'maxpmrecipients', 'maxreputationsday', 'attachquota', 'maxemails', 'maxwarningsday', 'maxposts', 'edittimelimit', 'canusesigxposts', 'maxreputationsperthread');
| $groupzerogreater = array('pmquota', 'maxpmrecipients', 'maxreputationsday', 'attachquota', 'maxemails', 'maxwarningsday', 'maxposts', 'edittimelimit', 'canusesigxposts', 'maxreputationsperuser', 'maxreputationsperthread', 'emailfloodtime');
|
$displaygroupfields = array('title', 'description', 'namestyle', 'usertitle', 'stars', 'starimage', 'image'); $fpermfields = array('canview', 'canviewthreads', 'candlattachments', 'canpostthreads', 'canpostreplys', 'canpostattachments', 'canratethreads', 'caneditposts', 'candeleteposts', 'candeletethreads', 'caneditattachments', 'canpostpolls', 'canvotepolls', 'cansearch', 'modposts', 'modthreads', 'modattachments', 'mod_edit_posts');
| $displaygroupfields = array('title', 'description', 'namestyle', 'usertitle', 'stars', 'starimage', 'image'); $fpermfields = array('canview', 'canviewthreads', 'candlattachments', 'canpostthreads', 'canpostreplys', 'canpostattachments', 'canratethreads', 'caneditposts', 'candeleteposts', 'candeletethreads', 'caneditattachments', 'canpostpolls', 'canvotepolls', 'cansearch', 'modposts', 'modthreads', 'modattachments', 'mod_edit_posts');
|
Zeile 186 | Zeile 186 |
---|
} }
|
} }
|
| /** * Welcome page */
|
function intro() { global $output, $mybb, $lang;
|
function intro() { global $output, $mybb, $lang;
|
|
|
$output->print_header($lang->welcome, 'welcome'); if(strpos(strtolower(get_current_location('', '', true)), '/upload/') !== false) {
| $output->print_header($lang->welcome, 'welcome'); if(strpos(strtolower(get_current_location('', '', true)), '/upload/') !== false) {
|
Zeile 199 | Zeile 202 |
---|
$output->print_footer('license'); }
|
$output->print_footer('license'); }
|
| /** * Show the license agreement */
|
function license_agreement() { global $output, $lang, $mybb;
| function license_agreement() { global $output, $lang, $mybb;
|
Zeile 738 | Zeile 744 |
---|
apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.
|
apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.
|
|
|
When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own
| When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own
|
Zeile 1013 | Zeile 1019 |
---|
$output->print_footer('requirements_check'); }
|
$output->print_footer('requirements_check'); }
|
| /** * Check our requirements */
|
function requirements_check() { global $output, $mybb, $dboptions, $lang;
| function requirements_check() { global $output, $mybb, $dboptions, $lang;
|
Zeile 1198 | Zeile 1207 |
---|
} }
|
} }
|
| /** * Which database do we use? */
|
function database_info() { global $output, $dbinfo, $errors, $mybb, $dboptions, $lang;
| function database_info() { global $output, $dbinfo, $errors, $mybb, $dboptions, $lang;
|
Zeile 1376 | Zeile 1388 |
---|
$output->print_footer('create_tables'); }
|
$output->print_footer('create_tables'); }
|
| /** * Create our tables */
|
function create_tables() { global $output, $dbinfo, $errors, $mybb, $dboptions, $lang;
| function create_tables() { global $output, $dbinfo, $errors, $mybb, $dboptions, $lang;
|
Zeile 1478 | Zeile 1493 |
---|
* * Please see the MyBB Docs for advanced * database configuration for larger installations
|
* * Please see the MyBB Docs for advanced * database configuration for larger installations
|
* http://docs.mybb.com/
| * https://docs.mybb.com/
|
*/
\$config['database']['type'] = '{$mybb->input['dbengine']}';
| */
\$config['database']['type'] = '{$mybb->input['dbengine']}';
|
Zeile 1569 | Zeile 1584 |
---|
'mail_logs' => 180, // Mail error logs 'user_mail_logs' => 180, // User mail logs 'promotion_logs' => 180 // Promotion logs
|
'mail_logs' => 180, // Mail error logs 'user_mail_logs' => 180, // User mail logs 'promotion_logs' => 180 // Promotion logs
|
| );
/** * Disallowed Remote Hosts * List of hosts the fetch_remote_file() function will not * perform requests to. * It is recommended that you enter hosts resolving to the * forum server here to prevent Server Side Request * Forgery attacks. */
\$config['disallowed_remote_hosts'] = array( 'localhost', );
/** * Disallowed Remote Addresses * List of IPv4 addresses the fetch_remote_file() function * will not perform requests to. * It is recommended that you enter addresses resolving to * the forum server here to prevent Server Side Request * Forgery attacks. * Removing all values disables resolving hosts in that * function. */
\$config['disallowed_remote_addresses'] = array( '127.0.0.1', '10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16',
|
);
";
| );
";
|
Zeile 1576 | Zeile 1622 |
---|
$file = fopen(MYBB_ROOT.'inc/config.php', 'w'); fwrite($file, $configdata); fclose($file);
|
$file = fopen(MYBB_ROOT.'inc/config.php', 'w'); fwrite($file, $configdata); fclose($file);
|
| if(function_exists('opcache_invalidate')) { opcache_invalidate(MYBB_ROOT."inc/config.php"); }
|
// Error reporting back on $db->error_reporting = 1;
|
// Error reporting back on $db->error_reporting = 1;
|
|
|
$output->print_header($lang->table_creation, 'createtables'); echo $lang->sprintf($lang->tablecreate_step_connected, $dboptions[$mybb->input['dbengine']]['short_title'], $db->get_version());
if($dboptions[$mybb->input['dbengine']]['structure_file'])
|
$output->print_header($lang->table_creation, 'createtables'); echo $lang->sprintf($lang->tablecreate_step_connected, $dboptions[$mybb->input['dbengine']]['short_title'], $db->get_version());
if($dboptions[$mybb->input['dbengine']]['structure_file'])
|
{
| {
|
$structure_file = $dboptions[$mybb->input['dbengine']]['structure_file']; } else
|
$structure_file = $dboptions[$mybb->input['dbengine']]['structure_file']; } else
|
{
| {
|
$structure_file = 'mysql_db_tables.php'; }
| $structure_file = 'mysql_db_tables.php'; }
|
Zeile 1605 | Zeile 1656 |
---|
} $db->query($val); if($match[1])
|
} $db->query($val); if($match[1])
|
{
| {
|
echo $lang->done . "<br />\n"; } }
| echo $lang->done . "<br />\n"; } }
|
Zeile 1613 | Zeile 1664 |
---|
$output->print_footer('populate_tables'); }
|
$output->print_footer('populate_tables'); }
|
| /** * Insert our default data */
|
function populate_tables() { global $output, $lang;
| function populate_tables() { global $output, $lang;
|
Zeile 1657 | Zeile 1711 |
---|
$output->print_footer('templates'); }
|
$output->print_footer('templates'); }
|
| /** * Install our theme */
|
function insert_templates() { global $mybb, $output, $cache, $db, $lang;
| function insert_templates() { global $mybb, $output, $cache, $db, $lang;
|
Zeile 1708 | Zeile 1765 |
---|
$properties['templateset'] = $templateset; unset($properties['inherited']['templateset']);
|
$properties['templateset'] = $templateset; unset($properties['inherited']['templateset']);
|
|
|
// 1.8: Stylesheet Colors $contents = @file_get_contents(INSTALL_ROOT.'resources/mybb_theme_colors.xml');
| // 1.8: Stylesheet Colors $contents = @file_get_contents(INSTALL_ROOT.'resources/mybb_theme_colors.xml');
|
Zeile 1767 | Zeile 1824 |
---|
$output->print_footer('configuration'); }
|
$output->print_footer('configuration'); }
|
| /** * Default configuration */
|
function configure() { global $output, $mybb, $errors, $lang;
$output->print_header($lang->board_config, 'config');
|
function configure() { global $output, $mybb, $errors, $lang;
$output->print_header($lang->board_config, 'config');
|
|
|
echo <<<EOF
|
echo <<<EOF
|
<script type="text/javascript">
| <script type="text/javascript">
|
function warnUser(inp, warn) { var parenttr = $('#'+inp.id).closest('tr'); if(inp.value != inp.defaultValue)
|
function warnUser(inp, warn) { var parenttr = $('#'+inp.id).closest('tr'); if(inp.value != inp.defaultValue)
|
{
| {
|
if(!parenttr.next('.setting_peeker').length) { var revertlink = ' <a href="javascript:revertSetting(\''+inp.defaultValue+'\', \'#'+inp.id+'\');">{$lang->config_step_revert}</a>';
| if(!parenttr.next('.setting_peeker').length) { var revertlink = ' <a href="javascript:revertSetting(\''+inp.defaultValue+'\', \'#'+inp.id+'\');">{$lang->config_step_revert}</a>';
|
Zeile 1793 | Zeile 1853 |
---|
} } }
|
} } }
|
|
|
function revertSetting(defval, inpid) {
|
function revertSetting(defval, inpid) {
|
$(inpid).val(defval);
| $(inpid).val(defval);
|
var parenttr = $(inpid).closest('tr'); parenttr.next('.setting_peeker').remove(); if(parenttr.is(':last-child')) { parenttr.addClass('last');
|
var parenttr = $(inpid).closest('tr'); parenttr.next('.setting_peeker').remove(); if(parenttr.is(':last-child')) { parenttr.addClass('last');
|
}
| }
|
} </script>
|
} </script>
|
|
|
EOF;
// If board configuration errors
| EOF;
// If board configuration errors
|
Zeile 1835 | Zeile 1895 |
---|
}
// Attempt auto-detection
|
}
// Attempt auto-detection
|
if($_SERVER['HTTP_HOST'])
| if(!empty($_SERVER['HTTP_HOST']))
|
{ $hostname = $protocol.$_SERVER['HTTP_HOST']; $cookiedomain = $_SERVER['HTTP_HOST']; }
|
{ $hostname = $protocol.$_SERVER['HTTP_HOST']; $cookiedomain = $_SERVER['HTTP_HOST']; }
|
elseif($_SERVER['SERVER_NAME'])
| elseif(!empty($_SERVER['SERVER_NAME']))
|
{ $hostname = $protocol.$_SERVER['SERVER_NAME']; $cookiedomain = $_SERVER['SERVER_NAME'];
| { $hostname = $protocol.$_SERVER['SERVER_NAME']; $cookiedomain = $_SERVER['SERVER_NAME'];
|
Zeile 1853 | Zeile 1913 |
---|
// IP addresses and hostnames are not valid if(my_inet_pton($cookiedomain) !== false || strpos($cookiedomain, '.') === false)
|
// IP addresses and hostnames are not valid if(my_inet_pton($cookiedomain) !== false || strpos($cookiedomain, '.') === false)
|
{
| {
|
$cookiedomain = ''; } else { $cookiedomain = ".{$cookiedomain}"; }
|
$cookiedomain = ''; } else { $cookiedomain = ".{$cookiedomain}"; }
|
if($_SERVER['SERVER_PORT'] && $_SERVER['SERVER_PORT'] != 80 && !preg_match("#:[0-9]#i", $hostname)) { $hostname .= ':'.$_SERVER['SERVER_PORT']; }
| if(!empty($_SERVER['SERVER_PORT'])) { $port = ":{$_SERVER['SERVER_PORT']}"; $pos = strrpos($cookiedomain, $port);
if($pos !== false) { $cookiedomain = substr($cookiedomain, 0, $pos); }
if($_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443 && !preg_match("#:[0-9]#i", $hostname)) { $hostname .= $port; } }
|
$currentlocation = get_current_location('', '', true); $noinstall = substr($currentlocation, 0, strrpos($currentlocation, '/install/'));
|
$currentlocation = get_current_location('', '', true); $noinstall = substr($currentlocation, 0, strrpos($currentlocation, '/install/'));
|
|
|
$cookiepath = $noinstall.'/'; $bburl = $hostname.$noinstall; $websiteurl = $hostname.'/';
|
$cookiepath = $noinstall.'/'; $bburl = $hostname.$noinstall; $websiteurl = $hostname.'/';
|
$contactemail = $_SERVER['SERVER_ADMIN'];
| if(isset($_SERVER['SERVER_ADMIN']) && filter_var($_SERVER['SERVER_ADMIN'], FILTER_VALIDATE_EMAIL)) { $contactemail = $_SERVER['SERVER_ADMIN']; }
|
}
echo $lang->sprintf($lang->config_step_table, $bbname, $bburl, $websitename, $websiteurl, $cookiedomain, $cookiepath, $contactemail); $output->print_footer('adminuser'); }
|
}
echo $lang->sprintf($lang->config_step_table, $bbname, $bburl, $websitename, $websiteurl, $cookiedomain, $cookiepath, $contactemail); $output->print_footer('adminuser'); }
|
| /** * How do we want to name the admin user? */
|
function create_admin_user() { global $output, $mybb, $errors, $db, $lang;
| function create_admin_user() { global $output, $mybb, $errors, $db, $lang;
|
Zeile 1901 | Zeile 1979 |
---|
} } $output->print_header($lang->create_admin, 'admin');
|
} } $output->print_header($lang->create_admin, 'admin');
|
|
|
echo <<<EOF
|
echo <<<EOF
|
<script type="text/javascript">
| <script type="text/javascript">
|
function comparePass() { var parenttr = $('#adminpass2').closest('tr');
| function comparePass() { var parenttr = $('#adminpass2').closest('tr');
|
Zeile 1919 | Zeile 1997 |
---|
} } </script>
|
} } </script>
|
|
|
EOF;
if(is_array($errors))
| EOF;
if(is_array($errors))
|
Zeile 1930 | Zeile 2008 |
---|
$adminemail = $mybb->get_input('adminemail'); } else
|
$adminemail = $mybb->get_input('adminemail'); } else
|
{
| {
|
require MYBB_ROOT.'inc/config.php'; $db = db_connection($config);
| require MYBB_ROOT.'inc/config.php'; $db = db_connection($config);
|
Zeile 2034 | Zeile 2112 |
---|
$db->insert_query("tasks", $new_task); $taskcount++;
|
$db->insert_query("tasks", $new_task); $taskcount++;
|
}
| }
|
// For the version check task, set a random date and hour (so all MyBB installs don't query mybb.com all at the same time) $update_array = array(
| // For the version check task, set a random date and hour (so all MyBB installs don't query mybb.com all at the same time) $update_array = array(
|
Zeile 2110 | Zeile 2188 |
---|
$output->print_footer('final'); }
|
$output->print_footer('final'); }
|
| /** * Installation is finished */
|
function install_done() { global $output, $db, $mybb, $errors, $cache, $lang;
|
function install_done() { global $output, $db, $mybb, $errors, $cache, $lang;
|
|
|
if(empty($mybb->input['adminuser'])) { $errors[] = $lang->admin_step_error_nouser;
| if(empty($mybb->input['adminuser'])) { $errors[] = $lang->admin_step_error_nouser;
|
Zeile 2123 | Zeile 2204 |
---|
$errors[] = $lang->admin_step_error_nopassword; } if($mybb->get_input('adminpass') != $mybb->get_input('adminpass2'))
|
$errors[] = $lang->admin_step_error_nopassword; } if($mybb->get_input('adminpass') != $mybb->get_input('adminpass2'))
|
{
| {
|
$errors[] = $lang->admin_step_error_nomatch; } if(empty($mybb->input['adminemail']))
|
$errors[] = $lang->admin_step_error_nomatch; } if(empty($mybb->input['adminemail']))
|
{
| {
|
$errors[] = $lang->admin_step_error_noemail; } if(is_array($errors))
| $errors[] = $lang->admin_step_error_noemail; } if(is_array($errors))
|
Zeile 2137 | Zeile 2218 |
---|
require MYBB_ROOT.'inc/config.php'; $db = db_connection($config);
|
require MYBB_ROOT.'inc/config.php'; $db = db_connection($config);
|
|
|
require MYBB_ROOT.'inc/settings.php'; $mybb->settings = &$settings;
| require MYBB_ROOT.'inc/settings.php'; $mybb->settings = &$settings;
|
Zeile 2332 | Zeile 2413 |
---|
$cache->update("plugins", array()); $cache->update("internal_settings", array('encryption_key' => random_str(32))); $cache->update_default_theme();
|
$cache->update("plugins", array()); $cache->update("internal_settings", array('encryption_key' => random_str(32))); $cache->update_default_theme();
|
| $cache->update_reportreasons(true);
|
$version_history = array(); $dh = opendir(INSTALL_ROOT."resources");
| $version_history = array(); $dh = opendir(INSTALL_ROOT."resources");
|
Zeile 2344 | Zeile 2426 |
---|
} sort($version_history, SORT_NUMERIC); $cache->update("version_history", $version_history);
|
} sort($version_history, SORT_NUMERIC); $cache->update("version_history", $version_history);
|
|
|
// Schedule an update check so it occurs an hour ago. Gotta stay up to date! $update['nextrun'] = TIME_NOW - 3600; $db->update_query("tasks", $update, "tid='12'");
| // Schedule an update check so it occurs an hour ago. Gotta stay up to date! $update['nextrun'] = TIME_NOW - 3600; $db->update_query("tasks", $update, "tid='12'");
|
Zeile 2353 | Zeile 2435 |
---|
$cache->update_tasks();
echo $lang->done . '</p>';
|
$cache->update_tasks();
echo $lang->done . '</p>';
|
|
|
echo $lang->done_step_success;
$written = 0; if(is_writable('./'))
|
echo $lang->done_step_success;
$written = 0; if(is_writable('./'))
|
{
| {
|
$lock = @fopen('./lock', 'w'); $written = @fwrite($lock, '1'); @fclose($lock);
| $lock = @fopen('./lock', 'w'); $written = @fwrite($lock, '1'); @fclose($lock);
|
Zeile 2366 | Zeile 2448 |
---|
{ echo $lang->done_step_locked; }
|
{ echo $lang->done_step_locked; }
|
}
| }
|
if(!$written) { echo $lang->done_step_dirdelete;
| if(!$written) { echo $lang->done_step_dirdelete;
|
Zeile 2375 | Zeile 2457 |
---|
$output->print_footer(''); }
|
$output->print_footer(''); }
|
| /** * @param array $config * * @return DB_MySQL|DB_MySQLi|DB_PgSQL|DB_SQLite */
|
function db_connection($config) { require_once MYBB_ROOT."inc/db_{$config['database']['type']}.php"; switch($config['database']['type'])
|
function db_connection($config) { require_once MYBB_ROOT."inc/db_{$config['database']['type']}.php"; switch($config['database']['type'])
|
{
| {
|
case "sqlite": $db = new DB_SQLite; break;
| case "sqlite": $db = new DB_SQLite; break;
|
Zeile 2391 | Zeile 2478 |
---|
break; default: $db = new DB_MySQL;
|
break; default: $db = new DB_MySQL;
|
}
| }
|
// Connect to Database define('TABLE_PREFIX', $config['database']['table_prefix']);
| // Connect to Database define('TABLE_PREFIX', $config['database']['table_prefix']);
|
Zeile 2401 | Zeile 2488 |
---|
$db->type = $config['database']['type'];
return $db;
|
$db->type = $config['database']['type'];
return $db;
|
}
| }
|
|
|
| /** * @param array $array * * @return string */
|
function error_list($array) { $string = "<ul>\n";
| function error_list($array) { $string = "<ul>\n";
|
Zeile 2414 | Zeile 2506 |
---|
return $string; }
|
return $string; }
|
| /** * Write our settings to the settings file */
|
function write_settings() { global $db;
| function write_settings() { global $db;
|