Vergleich install/upgrade.php - 1.8.4 - 1.8.38

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 47Zeile 47

// Include the files necessary for installation
require_once MYBB_ROOT."inc/class_timers.php";


// Include the files necessary for installation
require_once MYBB_ROOT."inc/class_timers.php";

require_once MYBB_ROOT."inc/class_xml.php";

 
require_once MYBB_ROOT.'inc/class_language.php';

$lang = new MyLanguage();

require_once MYBB_ROOT.'inc/class_language.php';

$lang = new MyLanguage();

$lang->set_path(MYBB_ROOT.'install/resources/');

$lang->set_path(INSTALL_ROOT.'resources/');

$lang->load('language');

// If we're upgrading from an SQLite installation, make sure we still work.

$lang->load('language');

// If we're upgrading from an SQLite installation, make sure we still work.

Zeile 62Zeile 61

// Load DB interface
require_once MYBB_ROOT."inc/db_base.php";


// Load DB interface
require_once MYBB_ROOT."inc/db_base.php";

 
require_once MYBB_ROOT . 'inc/AbstractPdoDbDriver.php';


require_once MYBB_ROOT."inc/db_{$config['database']['type']}.php";
switch($config['database']['type'])


require_once MYBB_ROOT."inc/db_{$config['database']['type']}.php";
switch($config['database']['type'])

Zeile 71Zeile 71
		break;
case "pgsql":
$db = new DB_PgSQL;

		break;
case "pgsql":
$db = new DB_PgSQL;

 
		break;
case "pgsql_pdo":
$db = new PostgresPdoDbDriver();

		break;
case "mysqli":
$db = new DB_MySQLi;

		break;
case "mysqli":
$db = new DB_MySQLi;

 
		break;
case "mysql_pdo":
$db = new MysqlPdoDbDriver();

		break;
default:
$db = new DB_MySQL;

		break;
default:
$db = new DB_MySQL;

Zeile 143Zeile 149

// Include the necessary contants for installation
$grouppermignore = array("gid", "type", "title", "description", "namestyle", "usertitle", "stars", "starimage", "image");


// Include the necessary contants for installation
$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 163Zeile 169
	if($mybb->input['action'] == "logout" && $mybb->user['uid'])
{
// Check session ID if we have one

	if($mybb->input['action'] == "logout" && $mybb->user['uid'])
{
// Check session ID if we have one

		if($mybb->get_input('logoutkey') != $mybb->user['logoutkey'])

		if($mybb->get_input('logoutkey') !== $mybb->user['logoutkey'])

		{
$output->print_error("Your user ID could not be verified to log you out. This may have been because a malicious Javascript was attempting to log you out automatically. If you intended to log out, please click the Log Out button at the top menu.");
}

		{
$output->print_error("Your user ID could not be verified to log you out. This may have been because a malicious Javascript was attempting to log you out automatically. If you intended to log out, please click the Log Out button at the top menu.");
}

Zeile 194Zeile 200
		);
$user = get_user_by_username($mybb->get_input('username'), $options);


		);
$user = get_user_by_username($mybb->get_input('username'), $options);


		if(!$user['uid'])

		if(!$user)

		{
$output->print_error("The username you have entered appears to be invalid.");
}
else
{
$user = validate_password_from_uid($user['uid'], $mybb->get_input('password'), $user);

		{
$output->print_error("The username you have entered appears to be invalid.");
}
else
{
$user = validate_password_from_uid($user['uid'], $mybb->get_input('password'), $user);

			if(!$user['uid'])

			if(!$user)

			{
$output->print_error("The password you entered is incorrect. If you have forgotten your password, click <a href=\"../member.php?action=lostpw\">here</a>. Otherwise, go back and try again.");
}
}


			{
$output->print_error("The password you entered is incorrect. If you have forgotten your password, click <a href=\"../member.php?action=lostpw\">here</a>. Otherwise, go back and try again.");
}
}


		my_setcookie("mybbuser", $user['uid']."_".$user['loginkey'], null, true);

		my_setcookie("mybbuser", $user['uid']."_".$user['loginkey'], null, true, "lax");


header("Location: ./upgrade.php");
}


header("Location: ./upgrade.php");
}

Zeile 261Zeile 267
		{
$db->drop_table("upgrade_data");
}

		{
$db->drop_table("upgrade_data");
}

 

$collation = $db->build_create_table_collation();

$engine = '';
if($db->type == "mysql" || $db->type == "mysqli")
{
$engine = 'ENGINE=MyISAM';
}


		$db->write_query("CREATE TABLE ".TABLE_PREFIX."upgrade_data (
title varchar(30) NOT NULL,
contents text NOT NULL,
UNIQUE (title)

		$db->write_query("CREATE TABLE ".TABLE_PREFIX."upgrade_data (
title varchar(30) NOT NULL,
contents text NOT NULL,
UNIQUE (title)

		);");

		) {$engine}{$collation};");


$dh = opendir(INSTALL_ROOT."resources");



$dh = opendir(INSTALL_ROOT."resources");


Zeile 276Zeile 291
			{
$upgradescripts[$match[1]] = $file;
$key_order[] = $match[1];

			{
$upgradescripts[$match[1]] = $file;
$key_order[] = $match[1];

			}

			}

		}
closedir($dh);
natsort($key_order);

		}
closedir($dh);
natsort($key_order);

Zeile 289Zeile 304
		if(empty($version_history))
{
$next_update_version = 17; // 16+1

		if(empty($version_history))
{
$next_update_version = 17; // 16+1

		}
else

		}
else

		{
$next_update_version = (int)(end($version_history)+1);
}

		{
$next_update_version = (int)(end($version_history)+1);
}

Zeile 305Zeile 320
			if(trim($verinfo[1]))
{
if($keynum[1] == $next_update_version)

			if(trim($verinfo[1]))
{
if($keynum[1] == $next_update_version)

				{

				{

					$vers .= "<option value=\"$keynum[1]\" selected=\"selected\">$verinfo[1]</option>\n";
}
else

					$vers .= "<option value=\"$keynum[1]\" selected=\"selected\">$verinfo[1]</option>\n";
}
else

Zeile 317Zeile 332
		unset($upgradescripts);
unset($upgradescript);


		unset($upgradescripts);
unset($upgradescript);


		$output->print_contents($lang->sprintf($lang->upgrade_welcome, $mybb->version)."<p><select name=\"from\">$vers</select>".$lang->upgrade_send_stats);
$output->print_footer("doupgrade");









		if(end($version_history) == reset($key_order) && empty($mybb->input['force']))
{
$output->print_contents($lang->upgrade_not_needed);
$output->print_footer("finished");
}
else
{
$output->print_contents($lang->sprintf($lang->upgrade_welcome, $mybb->version)."<p><select name=\"from\">$vers</select>".$lang->upgrade_send_stats);
$output->print_footer("doupgrade");
}

	}
elseif($mybb->input['action'] == "doupgrade")

	}
elseif($mybb->input['action'] == "doupgrade")

	{

	{

		add_upgrade_store("allow_anonymous_info", $mybb->get_input('allow_anonymous_info', MyBB::INPUT_INT));
require_once INSTALL_ROOT."resources/upgrade".$mybb->get_input('from', MyBB::INPUT_INT).".php";

		add_upgrade_store("allow_anonymous_info", $mybb->get_input('allow_anonymous_info', MyBB::INPUT_INT));
require_once INSTALL_ROOT."resources/upgrade".$mybb->get_input('from', MyBB::INPUT_INT).".php";

		if($db->table_exists("datacache") && $upgrade_detail['requires_deactivated_plugins'] == 1 && $mybb->get_input('donewarning') != "true")

		if($db->table_exists("datacache") && !empty($upgrade_detail['requires_deactivated_plugins']) && $mybb->get_input('donewarning') != "true")

		{
$plugins = $cache->read('plugins', true);
if(!empty($plugins['active']))

		{
$plugins = $cache->read('plugins', true);
if(!empty($plugins['active']))

Zeile 352Zeile 375
	if($mybb->input['action'] == "templates")
{
$runfunction = "upgradethemes";

	if($mybb->input['action'] == "templates")
{
$runfunction = "upgradethemes";

	}

	}

	elseif($mybb->input['action'] == "rebuildsettings")

	elseif($mybb->input['action'] == "rebuildsettings")

	{

	{

		$runfunction = "buildsettings";

		$runfunction = "buildsettings";

	}

	}

	elseif($mybb->input['action'] == "buildcaches")
{
$runfunction = "buildcaches";
}
elseif($mybb->input['action'] == "finished")

	elseif($mybb->input['action'] == "buildcaches")
{
$runfunction = "buildcaches";
}
elseif($mybb->input['action'] == "finished")

	{

	{

		$runfunction = "upgradedone";
}
else // Busy running modules, come back later
{
$bits = explode("_", $mybb->input['action'], 2);

		$runfunction = "upgradedone";
}
else // Busy running modules, come back later
{
$bits = explode("_", $mybb->input['action'], 2);

		if($bits[1]) // We're still running a module

		if(!empty($bits[1])) // We're still running a module

		{
$from = $bits[0];
$runfunction = next_function($bits[0], $bits[1]);

		{
$from = $bits[0];
$runfunction = next_function($bits[0], $bits[1]);

Zeile 383Zeile 406
	}
}


	}
}


 
/**
* Do the upgrade changes
*/

function upgradethemes()
{
global $output, $db, $system_upgrade_detail, $lang, $mybb;

function upgradethemes()
{
global $output, $db, $system_upgrade_detail, $lang, $mybb;

Zeile 403Zeile 429
		  status varchar(10) NOT NULL default '',
dateline int(10) NOT NULL default '0',
PRIMARY KEY (tid)

		  status varchar(10) NOT NULL default '',
dateline int(10) NOT NULL default '0',
PRIMARY KEY (tid)

		) ENGINE=MyISAM{$charset};");

		) ENGINE=MyISAM{$charset};");

	}

if($system_upgrade_detail['revert_all_themes'] > 0)

	}

if($system_upgrade_detail['revert_all_themes'] > 0)

Zeile 430Zeile 456
			cachefile varchar(100) NOT NULL default '',
lastmodified bigint(30) NOT NULL default '0',
PRIMARY KEY(sid)

			cachefile varchar(100) NOT NULL default '',
lastmodified bigint(30) NOT NULL default '0',
PRIMARY KEY(sid)

		) ENGINE=MyISAM{$charset};");

$contents = @file_get_contents(INSTALL_ROOT.'resources/mybb_theme.xml');

		) ENGINE=MyISAM{$charset};");

$contents = @file_get_contents(INSTALL_ROOT.'resources/mybb_theme.xml');

		if(file_exists(MYBB_ROOT.$mybb->config['admin_dir']."/inc/functions_themes.php"))

		if(file_exists(MYBB_ROOT.$mybb->config['admin_dir']."/inc/functions_themes.php"))

		{

		{

			require_once MYBB_ROOT.$mybb->config['admin_dir']."/inc/functions_themes.php";

			require_once MYBB_ROOT.$mybb->config['admin_dir']."/inc/functions_themes.php";

		}

		}

		else if(file_exists(MYBB_ROOT."admin/inc/functions_themes.php"))

		else if(file_exists(MYBB_ROOT."admin/inc/functions_themes.php"))

		{
require_once MYBB_ROOT."admin/inc/functions_themes.php";
}
else

		{
require_once MYBB_ROOT."admin/inc/functions_themes.php";
}
else

		{
$output->print_error("Please make sure your admin directory is uploaded correctly.");
}

		{
$output->print_error("Please make sure your admin directory is uploaded correctly.");
}

Zeile 450Zeile 476

$db->update_query("themes", array("def" => 1), "tid='{$tid}'");
$db->update_query("users", array('style' => $tid));


$db->update_query("themes", array("def" => 1), "tid='{$tid}'");
$db->update_query("users", array('style' => $tid));

		$db->update_query("forums", array('style' => 0));


		$db->update_query("forums", array('style' => 0));


		$db->drop_table("templatesets");
$db->write_query("CREATE TABLE ".TABLE_PREFIX."templatesets (
sid smallint unsigned NOT NULL auto_increment,

		$db->drop_table("templatesets");
$db->write_query("CREATE TABLE ".TABLE_PREFIX."templatesets (
sid smallint unsigned NOT NULL auto_increment,

Zeile 471Zeile 497
			require_once MYBB_ROOT.$mybb->config['admin_dir']."/inc/functions_themes.php";
}
elseif(file_exists(MYBB_ROOT."admin/inc/functions_themes.php"))

			require_once MYBB_ROOT.$mybb->config['admin_dir']."/inc/functions_themes.php";
}
elseif(file_exists(MYBB_ROOT."admin/inc/functions_themes.php"))

		{

		{

			require_once MYBB_ROOT."admin/inc/functions.php";
require_once MYBB_ROOT."admin/inc/functions_themes.php";

			require_once MYBB_ROOT."admin/inc/functions.php";
require_once MYBB_ROOT."admin/inc/functions_themes.php";

		}

		}

		else
{

		else
{

			$output->print_error();

			$output->print_error($lang->no_theme_functions_file);

		}

		}





		// Import master theme
import_theme_xml($contents, array("tid" => 1, "no_templates" => 1, "version_compat" => 1));

		// Import master theme
import_theme_xml($contents, array("tid" => 1, "no_templates" => 1, "version_compat" => 1));

	}

$sid = -2;


	}

$sid = -2;


	// Now deal with the master templates
$contents = @file_get_contents(INSTALL_ROOT.'resources/mybb_theme.xml');

	// Now deal with the master templates
$contents = @file_get_contents(INSTALL_ROOT.'resources/mybb_theme.xml');

	$parser = new XMLParser($contents);

	$parser = create_xml_parser($contents);

	$tree = $parser->get_tree();

$theme = $tree['theme'];

	$tree = $parser->get_tree();

$theme = $tree['theme'];

Zeile 504Zeile 530
			$time = TIME_NOW;
$query = $db->simple_select("templates", "tid", "sid='-2' AND title='".$db->escape_string($templatename)."'");
$oldtemp = $db->fetch_array($query);

			$time = TIME_NOW;
$query = $db->simple_select("templates", "tid", "sid='-2' AND title='".$db->escape_string($templatename)."'");
$oldtemp = $db->fetch_array($query);

			if($oldtemp['tid'])

			if($oldtemp)

			{
$update_array = array(
'template' => $templatevalue,

			{
$update_array = array(
'template' => $templatevalue,

Zeile 533Zeile 559
	$output->print_footer("rebuildsettings");
}


	$output->print_footer("rebuildsettings");
}


 
/**
* Update the settings
*/

function buildsettings()
{
global $db, $output, $system_upgrade_detail, $lang;

function buildsettings()
{
global $db, $output, $system_upgrade_detail, $lang;

Zeile 551Zeile 580
	$output->print_footer("buildcaches");
}


	$output->print_footer("buildcaches");
}


 
/**
* Rebuild caches
*/

function buildcaches()
{
global $db, $output, $cache, $lang, $mybb;

$output->print_header($lang->upgrade_datacache_building);


function buildcaches()
{
global $db, $output, $cache, $lang, $mybb;

$output->print_header($lang->upgrade_datacache_building);


	$contents .= $lang->upgrade_building_datacache;
require_once MYBB_ROOT."inc/class_datacache.php";
$cache = new datacache;

	$contents = $lang->upgrade_building_datacache;



	$cache->update_version();
$cache->update_attachtypes();
$cache->update_smilies();

	$cache->update_version();
$cache->update_attachtypes();
$cache->update_smilies();

Zeile 580Zeile 611
	$cache->update_tasks();
$cache->update_spiders();
$cache->update_bannedips();

	$cache->update_tasks();
$cache->update_spiders();
$cache->update_bannedips();

	$cache->update_banned();

 
	$cache->update_birthdays();
$cache->update_most_replied_threads();
$cache->update_most_viewed_threads();
$cache->update_groupleaders();
$cache->update_threadprefixes();
$cache->update_forumsdisplay();

	$cache->update_birthdays();
$cache->update_most_replied_threads();
$cache->update_most_viewed_threads();
$cache->update_groupleaders();
$cache->update_threadprefixes();
$cache->update_forumsdisplay();

 
	$cache->update_reportreasons(true);


$contents .= $lang->done."</p>";



$contents .= $lang->done."</p>";


Zeile 594Zeile 625
	$output->print_footer("finished");
}


	$output->print_footer("finished");
}


 
/**
* Called as latest function. Send statistics, create lock file etc
*/

function upgradedone()
{
global $db, $output, $mybb, $lang, $config, $plugins;

ob_start();

function upgradedone()
{
global $db, $output, $mybb, $lang, $config, $plugins;

ob_start();

	$output->print_header("Upgrade Complete");

	$output->print_header($lang->upgrade_complete);


$allow_anonymous_info = get_upgrade_store("allow_anonymous_info");
if($allow_anonymous_info == 1)


$allow_anonymous_info = get_upgrade_store("allow_anonymous_info");
if($allow_anonymous_info == 1)

Zeile 637Zeile 671
			$lock_note = $lang->sprintf($lang->upgrade_locked, $config['admin_dir']);
}
}

			$lock_note = $lang->sprintf($lang->upgrade_locked, $config['admin_dir']);
}
}

	if(!$written)

	if(empty($written))

	{
$lock_note = "<p><b><span style=\"color: red;\">".$lang->upgrade_removedir."</span></b></p>";
}

	{
$lock_note = "<p><b><span style=\"color: red;\">".$lang->upgrade_removedir."</span></b></p>";
}

Zeile 666Zeile 700
	$output->print_footer();
}


	$output->print_footer();
}


 
/**
* Show the finish page
*/

function whatsnext()
{
global $output, $db, $system_upgrade_detail, $lang;

function whatsnext()
{
global $output, $db, $system_upgrade_detail, $lang;

Zeile 682Zeile 719
	}
}


	}
}


 
/**
* Determine the next function we need to call
*
* @param int $from
* @param string $func
*
* @return string
*/

function next_function($from, $func="dbchanges")
{
global $oldvers, $system_upgrade_detail, $currentscript, $cache;

function next_function($from, $func="dbchanges")
{
global $oldvers, $system_upgrade_detail, $currentscript, $cache;

Zeile 705Zeile 750
		}
}


		}
}


	if(!$function)

	if(empty($function))

	{
$function = "whatsnext";
}
return $function;
}


	{
$function = "whatsnext";
}
return $function;
}


 
/**
* @param string $module
*/

function load_module($module)
{
global $system_upgrade_detail, $currentscript, $upgrade_detail;

function load_module($module)
{
global $system_upgrade_detail, $currentscript, $upgrade_detail;

Zeile 721Zeile 769
	{
foreach($upgrade_detail as $key => $val)
{

	{
foreach($upgrade_detail as $key => $val)
{

			if(!$system_upgrade_detail[$key] || $val > $system_upgrade_detail[$key])

			if(empty($system_upgrade_detail[$key]) || $val > $system_upgrade_detail[$key])

			{
$system_upgrade_detail[$key] = $val;
}

			{
$system_upgrade_detail[$key] = $val;
}

Zeile 731Zeile 779
	}
}


	}
}


 
/**
* Get a value from our upgrade data cache
*
* @param string $title
*
* @return mixed
*/

function get_upgrade_store($title)
{
global $db;

$query = $db->simple_select("upgrade_data", "*", "title='".$db->escape_string($title)."'");
$data = $db->fetch_array($query);

function get_upgrade_store($title)
{
global $db;

$query = $db->simple_select("upgrade_data", "*", "title='".$db->escape_string($title)."'");
$data = $db->fetch_array($query);

 

if(!isset($data['contents']))
{
return null;
}


	return my_unserialize($data['contents']);
}


	return my_unserialize($data['contents']);
}


 
/**
* @param string $title
* @param mixed $contents
*/

function add_upgrade_store($title, $contents)
{
global $db;

function add_upgrade_store($title, $contents)
{
global $db;

Zeile 751Zeile 816
	$db->replace_query("upgrade_data", $replace_array, "title");
}


	$db->replace_query("upgrade_data", $replace_array, "title");
}


 
/**
* @param int $redo 2 means that all setting tables will be dropped and recreated
*
* @return array
*/

function sync_settings($redo=0)
{
global $db;

function sync_settings($redo=0)
{
global $db;

Zeile 869Zeile 939
		}
}
$settings_xml = file_get_contents(INSTALL_ROOT."resources/settings.xml");

		}
}
$settings_xml = file_get_contents(INSTALL_ROOT."resources/settings.xml");

	$parser = new XMLParser($settings_xml);

	$parser = create_xml_parser($settings_xml);

	$parser->collapse_dups = 0;
$tree = $parser->get_tree();
$settinggroupnames = array();

	$parser->collapse_dups = 0;
$tree = $parser->get_tree();
$settinggroupnames = array();

Zeile 938Zeile 1008
		}
}
unset($settings);

		}
}
unset($settings);

 
	$settings = '';

	$query = $db->simple_select("settings", "*", "", array('order_by' => 'title'));
while($setting = $db->fetch_array($query))
{

	$query = $db->simple_select("settings", "*", "", array('order_by' => 'title'));
while($setting = $db->fetch_array($query))
{

		$setting['value'] = str_replace("\"", "\\\"", $setting['value']);


		$setting['name'] = addcslashes($setting['name'], "\\'");
$setting['value'] = addcslashes($setting['value'], '\\"$');

		$settings .= "\$settings['{$setting['name']}'] = \"".$setting['value']."\";\n";
}
$settings = "<?php\n/*********************************\ \n DO NOT EDIT THIS FILE, PLEASE USE\n THE SETTINGS EDITOR\n\*********************************/\n\n$settings\n";

		$settings .= "\$settings['{$setting['name']}'] = \"".$setting['value']."\";\n";
}
$settings = "<?php\n/*********************************\ \n DO NOT EDIT THIS FILE, PLEASE USE\n THE SETTINGS EDITOR\n\*********************************/\n\n$settings\n";

Zeile 951Zeile 1023
	return array($groupcount, $settingcount);
}


	return array($groupcount, $settingcount);
}


 
/**
* @param int $redo 2 means that the tasks table will be dropped and recreated
*
* @return int
*/

function sync_tasks($redo=0)
{
global $db;

function sync_tasks($redo=0)
{
global $db;

Zeile 1031Zeile 1108

require_once MYBB_ROOT."inc/functions_task.php";
$task_file = file_get_contents(INSTALL_ROOT.'resources/tasks.xml');


require_once MYBB_ROOT."inc/functions_task.php";
$task_file = file_get_contents(INSTALL_ROOT.'resources/tasks.xml');

	$parser = new XMLParser($task_file);

	$parser = create_xml_parser($task_file);

	$parser->collapse_dups = 0;
$tree = $parser->get_tree();


	$parser->collapse_dups = 0;
$tree = $parser->get_tree();


Zeile 1073Zeile 1150
	return $taskcount;
}


	return $taskcount;
}


 
/**
* Write our settings to the settings file
*/

function write_settings()
{
global $db;
$query = $db->simple_select("settings", "*", "", array('order_by' => 'title'));
while($setting = $db->fetch_array($query))
{

function write_settings()
{
global $db;
$query = $db->simple_select("settings", "*", "", array('order_by' => 'title'));
while($setting = $db->fetch_array($query))
{

		$setting['value'] = $db->escape_string($setting['value']);


		$setting['name'] = addcslashes($setting['name'], "\\'");
$setting['value'] = addcslashes($setting['value'], '\\"$');

		$settings .= "\$settings['{$setting['name']}'] = \"{$setting['value']}\";\n";
}
if(!empty($settings))

		$settings .= "\$settings['{$setting['name']}'] = \"{$setting['value']}\";\n";
}
if(!empty($settings))