Vergleich admin/modules/tools/system_health.php - 1.6.6 - 1.6.13

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 6Zeile 6
 * Website: http://mybb.com
* License: http://mybb.com/about/license
*

 * Website: http://mybb.com
* License: http://mybb.com/about/license
*

 * $Id: system_health.php 5545 2011-08-08 15:44:56Z PirataNervo $

 * $Id$

 */

// Disallow direct access to this file for security reasons

 */

// Disallow direct access to this file for security reasons

Zeile 121Zeile 121
		}

if($done_set[$sid] && !$done_output[$sid])

		}

if($done_set[$sid] && !$done_output[$sid])

		{		

		{

			$done_output[$sid] = 1;
if($count == 1)
{

			$done_output[$sid] = 1;
if($count == 1)
{

Zeile 162Zeile 162
	$buttons[] = $form->generate_submit_button($lang->proceed);

$form->output_submit_wrapper($buttons);

	$buttons[] = $form->generate_submit_button($lang->proceed);

$form->output_submit_wrapper($buttons);

	



	$form->end();

$page->output_footer();
}

	$form->end();

$page->output_footer();
}

	



if($mybb->input['action'] == "utf8_conversion")
{
$plugins->run_hooks("admin_tools_system_health_utf8_conversion");

if($mybb->input['action'] == "utf8_conversion")
{
$plugins->run_hooks("admin_tools_system_health_utf8_conversion");

	



	if($db->type == "sqlite" || $db->type == "pgsql")
{
flash_message($lang->error_not_supported, 'error');
admin_redirect("index.php?module=tools-system_health");
}

	if($db->type == "sqlite" || $db->type == "pgsql")
{
flash_message($lang->error_not_supported, 'error');
admin_redirect("index.php?module=tools-system_health");
}

	



	if($mybb->request_method == "post" || ($mybb->input['do'] == "all" && !empty($mybb->input['table'])))
{

	if($mybb->request_method == "post" || ($mybb->input['do'] == "all" && !empty($mybb->input['table'])))
{

 
		if(!empty($mybb->input['mb4']) && version_compare($db->get_version(), '5.5.3', '<'))
{
flash_message($lang->error_utf8mb4_version, 'error');
admin_redirect("index.php?module=tools-system_health&action=utf8_conversion");
}

		@set_time_limit(0);

		@set_time_limit(0);

		



		$old_table_prefix = $db->table_prefix;
$db->set_table_prefix('');

		$old_table_prefix = $db->table_prefix;
$db->set_table_prefix('');

		



		if(!$db->table_exists($db->escape_string($mybb->input['table'])))

		if(!$db->table_exists($db->escape_string($mybb->input['table'])))

		{
flash_message($lang->error_invalid_table, 'error');
admin_redirect("index.php?module=tools-system_health&action=utf8_conversion");
}

$db->set_table_prefix($old_table_prefix);

$page->add_breadcrumb_item($lang->utf8_conversion, "index.php?module=tools-system_health&amp;action=utf8_conversion");

$page->output_header($lang->system_health." - ".$lang->utf8_conversion);

$sub_tabs['system_health'] = array(
'title' => $lang->system_health,
'link' => "index.php?module=tools-system_health",
'description' => $lang->system_health_desc
);



		{
$db->set_table_prefix($old_table_prefix);
flash_message($lang->error_invalid_table, 'error');
admin_redirect("index.php?module=tools-system_health&action=utf8_conversion");
}

$db->set_table_prefix($old_table_prefix);

$page->add_breadcrumb_item($lang->utf8_conversion, "index.php?module=tools-system_health&amp;action=utf8_conversion");

$page->output_header($lang->system_health." - ".$lang->utf8_conversion);

$sub_tabs['system_health'] = array(
'title' => $lang->system_health,
'link' => "index.php?module=tools-system_health",
'description' => $lang->system_health_desc
);


		$sub_tabs['utf8_conversion'] = array(
'title' => $lang->utf8_conversion,
'link' => "index.php?module=tools-system_health&amp;action=utf8_conversion",
'description' => $lang->utf8_conversion_desc2
);

		$sub_tabs['utf8_conversion'] = array(
'title' => $lang->utf8_conversion,
'link' => "index.php?module=tools-system_health&amp;action=utf8_conversion",
'description' => $lang->utf8_conversion_desc2
);

		



		$page->output_nav_tabs($sub_tabs, 'utf8_conversion');

		$page->output_nav_tabs($sub_tabs, 'utf8_conversion');

		



		$old_table_prefix = $db->table_prefix;
$db->set_table_prefix('');

		$old_table_prefix = $db->table_prefix;
$db->set_table_prefix('');

		



		$table = new Table;

		$table = new Table;

		



		$table1 = $db->show_create_table($db->escape_string($mybb->input['table']));
preg_match("#CHARSET=([a-zA-Z0-9_]+)\s?#i", $table1, $matches);
$charset = $matches[1];

		$table1 = $db->show_create_table($db->escape_string($mybb->input['table']));
preg_match("#CHARSET=([a-zA-Z0-9_]+)\s?#i", $table1, $matches);
$charset = $matches[1];

		
$table->construct_cell("<strong>".$lang->sprintf($lang->converting_to_utf8, $mybb->input['table'], $charset)."</strong>");
$table->construct_row();










if(!empty($mybb->input['mb4']))
{
$table->construct_cell("<strong>".$lang->sprintf($lang->converting_to_utf8mb4, $mybb->input['table'], $charset)."</strong>");
}
else
{
$table->construct_cell("<strong>".$lang->sprintf($lang->converting_to_utf8, $mybb->input['table'], $charset)."</strong>");
}
$table->construct_row();


		$table->construct_cell($lang->please_wait);
$table->construct_row();

		$table->construct_cell($lang->please_wait);
$table->construct_row();

		



		$table->output($converting_table." {$mybb->input['table']}");

		$table->output($converting_table." {$mybb->input['table']}");

		



		$db->set_table_prefix($old_table_prefix);

		$db->set_table_prefix($old_table_prefix);

		



		$page->output_footer(false);

		$page->output_footer(false);

		



		$old_table_prefix = $db->table_prefix;
$db->set_table_prefix('');

		$old_table_prefix = $db->table_prefix;
$db->set_table_prefix('');

		



		flush();

$types = array(

		flush();

$types = array(

Zeile 243Zeile 256
			'longtext' => 'longblob',
'char' => 'varbinary',
'varchar' => 'varbinary',

			'longtext' => 'longblob',
'char' => 'varbinary',
'varchar' => 'varbinary',

			'tinytext' => 'tinyblob'			

			'tinytext' => 'tinyblob'

		);

		);

		



		$blob_types = array( 'blob', 'tinyblob', 'mediumblog', 'longblob', 'text', 'tinytext', 'mediumtext', 'longtext' );

		$blob_types = array( 'blob', 'tinyblob', 'mediumblog', 'longblob', 'text', 'tinytext', 'mediumtext', 'longtext' );

		



		// Get next table in list
$convert_to_binary = '';
$convert_to_utf8 = '';
$comma = '';

		// Get next table in list
$convert_to_binary = '';
$convert_to_utf8 = '';
$comma = '';

		













if(!empty($mybb->input['mb4']))
{
$character_set = 'utf8mb4';
$collation = 'utf8mb4_general_ci';
}
else
{
$character_set = 'utf8';
$collation = 'utf8_general_ci';
}


		// Set table default charset

		// Set table default charset

		$db->write_query("ALTER TABLE {$mybb->input['table']} DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci");

		$db->write_query("ALTER TABLE {$mybb->input['table']} DEFAULT CHARACTER SET {$character_set} COLLATE {$collation}");


// Fetch any fulltext keys
if($db->supports_fulltext($mybb->input['table']))


// Fetch any fulltext keys
if($db->supports_fulltext($mybb->input['table']))

Zeile 285Zeile 309
			{
// Build the actual strings for converting the columns
$names = "CHANGE `{$column['Field']}` `{$column['Field']}` ";

			{
// Build the actual strings for converting the columns
$names = "CHANGE `{$column['Field']}` `{$column['Field']}` ";

				



				if(($db->type == 'mysql' || $db->type == 'mysqli') && in_array($type, $blob_types))
{
if($column['Null'] == 'YES')

				if(($db->type == 'mysql' || $db->type == 'mysqli') && in_array($type, $blob_types))
{
if($column['Null'] == 'YES')

					{

					{

						$attributes = 'NULL';

						$attributes = 'NULL';

					}

					}

					else
{
$attributes = 'NOT NULL';
}
}
else

					else
{
$attributes = 'NOT NULL';
}
}
else

				{

				{

					$attributes = " DEFAULT ";
if($column['Default'] == 'NULL')
{

					$attributes = " DEFAULT ";
if($column['Default'] == 'NULL')
{

Zeile 307Zeile 331
					else
{
$attributes .= "'".$db->escape_string($column['Default'])."' ";

					else
{
$attributes .= "'".$db->escape_string($column['Default'])."' ";

						



						if($column['Null'] == 'YES')

						if($column['Null'] == 'YES')

						{

						{

							$attributes .= 'NULL';

							$attributes .= 'NULL';

						}

						}

						else
{
$attributes .= 'NOT NULL';
}

						else
{
$attributes .= 'NOT NULL';
}

					}

					}

				}

				}

				



				$convert_to_binary .= $comma.$names.preg_replace('/'.$type.'/i', $types[$type], $column['Type']).' '.$attributes;

				$convert_to_binary .= $comma.$names.preg_replace('/'.$type.'/i', $types[$type], $column['Type']).' '.$attributes;

				$convert_to_utf8 .= "{$comma}{$names}{$column['Type']} CHARACTER SET utf8 COLLATE utf8_general_ci {$attributes}";


				$convert_to_utf8 .= "{$comma}{$names}{$column['Type']} CHARACTER SET {$character_set} COLLATE {$collation} {$attributes}";


				$comma = $lang->comma;
}
}

				$comma = $lang->comma;
}
}

		



		if(!empty($convert_to_binary))
{
// This converts the columns to UTF-8 while also doing the same for data
$db->write_query("ALTER TABLE {$mybb->input['table']} {$convert_to_binary}");
$db->write_query("ALTER TABLE {$mybb->input['table']} {$convert_to_utf8}");
}

		if(!empty($convert_to_binary))
{
// This converts the columns to UTF-8 while also doing the same for data
$db->write_query("ALTER TABLE {$mybb->input['table']} {$convert_to_binary}");
$db->write_query("ALTER TABLE {$mybb->input['table']} {$convert_to_utf8}");
}

		



		// Any fulltext indexes to recreate?
if(is_array($fulltext_to_create))
{
foreach($fulltext_to_create as $name => $fields)

		// Any fulltext indexes to recreate?
if(is_array($fulltext_to_create))
{
foreach($fulltext_to_create as $name => $fields)

			{

			{

				$db->create_fulltext_index($mybb->input['table'], $fields, $name);
}
}

				$db->create_fulltext_index($mybb->input['table'], $fields, $name);
}
}

		



		$db->set_table_prefix($old_table_prefix);

		$db->set_table_prefix($old_table_prefix);

		



		$plugins->run_hooks("admin_tools_system_health_utf8_conversion_commit");

		$plugins->run_hooks("admin_tools_system_health_utf8_conversion_commit");

		



		// Log admin action
log_admin_action($mybb->input['table']);

		// Log admin action
log_admin_action($mybb->input['table']);

		



		flash_message($lang->sprintf($lang->success_table_converted, $mybb->input['table']), 'success');

		flash_message($lang->sprintf($lang->success_table_converted, $mybb->input['table']), 'success');

		



		if($mybb->input['do'] == "all")
{
$old_table_prefix = $db->table_prefix;
$db->set_table_prefix('');

		if($mybb->input['do'] == "all")
{
$old_table_prefix = $db->table_prefix;
$db->set_table_prefix('');

		



			$tables = $db->list_tables($mybb->config['database']['database']);
foreach($tables as $key => $tablename)

			$tables = $db->list_tables($mybb->config['database']['database']);
foreach($tables as $key => $tablename)

			{		

			{

				if(substr($tablename, 0, strlen(TABLE_PREFIX)) == TABLE_PREFIX)
{
$table = $db->show_create_table($tablename);
preg_match("#CHARSET=([a-zA-Z0-9_]+)\s?#i", $table, $matches);

				if(substr($tablename, 0, strlen(TABLE_PREFIX)) == TABLE_PREFIX)
{
$table = $db->show_create_table($tablename);
preg_match("#CHARSET=([a-zA-Z0-9_]+)\s?#i", $table, $matches);

					if(fetch_iconv_encoding($matches[1]) == 'utf-8' && $mybb->input['table'] != $tablename)

					if(empty($mybb->input['mb4']) && (fetch_iconv_encoding($matches[1]) == 'utf-8' || $matches[1] == 'utf8mb4') && $mybb->input['table'] != $tablename)

					{
continue;
}

					{
continue;
}

					
$mybb_tables[$key] = $tablename;





					elseif(!empty($mybb->input['mb4']) && fetch_iconv_encoding($matches[1]) != 'utf-8' && $mybb->input['table'] != $tablename)
{
continue;
}

$mybb_tables[$key] = $tablename;

				}
}

				}
}

			



			asort($mybb_tables);
reset($mybb_tables);

			asort($mybb_tables);
reset($mybb_tables);

			



			$is_next = false;
$nexttable = "";

			$is_next = false;
$nexttable = "";

			



			foreach($mybb_tables as $key => $tablename)
{
if($is_next == true)

			foreach($mybb_tables as $key => $tablename)
{
if($is_next == true)

Zeile 386Zeile 414
					break;
}
else if($mybb->input['table'] == $tablename)

					break;
}
else if($mybb->input['table'] == $tablename)

				{

				{

					$is_next = true;

					$is_next = true;

				}

				}

			}

			}

			



			$db->set_table_prefix($old_table_prefix);

			$db->set_table_prefix($old_table_prefix);

			



			if($nexttable)
{
$nexttable = $db->escape_string($nexttable);

			if($nexttable)
{
$nexttable = $db->escape_string($nexttable);

				admin_redirect("index.php?module=tools-system_health&action=utf8_conversion&do=all&table={$nexttable}");






				$mb4 = '';
if(!empty($mybb->input['mb4']))
{
$mb4 = "&amp;mb4=1";
}
admin_redirect("index.php?module=tools-system_health&action=utf8_conversion&do=all&table={$nexttable}{$mb4}");

				exit;
}
}

				exit;
}
}

			



		admin_redirect("index.php?module=tools-system_health&action=utf8_conversion");

		admin_redirect("index.php?module=tools-system_health&action=utf8_conversion");

		



		exit;
}

		exit;
}

	



	if($mybb->input['table'] || $mybb->input['do'] == "all")
{

	if($mybb->input['table'] || $mybb->input['do'] == "all")
{

 
		if(!empty($mybb->input['mb4']) && version_compare($db->get_version(), '5.5.3', '<'))
{
flash_message($lang->error_utf8mb4_version, 'error');
admin_redirect("index.php?module=tools-system_health&action=utf8_conversion");
}


		$old_table_prefix = $db->table_prefix;
$db->set_table_prefix('');

		$old_table_prefix = $db->table_prefix;
$db->set_table_prefix('');

		



		if($mybb->input['do'] != "all" && !$db->table_exists($db->escape_string($mybb->input['table'])))
{
$db->set_table_prefix($old_table_prefix);
flash_message($lang->error_invalid_table, 'error');
admin_redirect("index.php?module=tools-system_health&action=utf8_conversion");
}

		if($mybb->input['do'] != "all" && !$db->table_exists($db->escape_string($mybb->input['table'])))
{
$db->set_table_prefix($old_table_prefix);
flash_message($lang->error_invalid_table, 'error');
admin_redirect("index.php?module=tools-system_health&action=utf8_conversion");
}

		



		if($mybb->input['do'] == "all")

		if($mybb->input['do'] == "all")

		{

		{

			$tables = $db->list_tables($mybb->config['database']['database']);
foreach($tables as $key => $tablename)
{

			$tables = $db->list_tables($mybb->config['database']['database']);
foreach($tables as $key => $tablename)
{

Zeile 427Zeile 466
				{
$table = $db->show_create_table($tablename);
preg_match("#CHARSET=([a-zA-Z0-9_]+)\s?#i", $table, $matches);

				{
$table = $db->show_create_table($tablename);
preg_match("#CHARSET=([a-zA-Z0-9_]+)\s?#i", $table, $matches);

					if(fetch_iconv_encoding($matches[1]) == 'utf-8')





					if(empty($mybb->input['mb4']) && (fetch_iconv_encoding($matches[1]) == 'utf-8' || $matches[1] == 'utf8mb4'))
{
continue;
}
elseif(!empty($mybb->input['mb4']) && fetch_iconv_encoding($matches[1]) != 'utf-8')

					{
continue;
}
$mybb_tables[$key] = $tablename;
}
}

					{
continue;
}
$mybb_tables[$key] = $tablename;
}
}

			



			if(is_array($mybb_tables))
{
asort($mybb_tables);

			if(is_array($mybb_tables))
{
asort($mybb_tables);

Zeile 445Zeile 488
			}
else
{

			}
else
{

 
				$db->set_table_prefix($old_table_prefix);

				flash_message($lang->success_all_tables_already_converted, 'success');
admin_redirect("index.php?module=tools-system_health");
}

				flash_message($lang->success_all_tables_already_converted, 'success');
admin_redirect("index.php?module=tools-system_health");
}

Zeile 453Zeile 497
		{
$table = $db->show_create_table($db->escape_string($mybb->input['table']));
}

		{
$table = $db->show_create_table($db->escape_string($mybb->input['table']));
}

		



		$page->add_breadcrumb_item($lang->utf8_conversion, "index.php?module=tools-system_health&amp;action=utf8_conversion");

		$page->add_breadcrumb_item($lang->utf8_conversion, "index.php?module=tools-system_health&amp;action=utf8_conversion");

		



		$db->set_table_prefix($old_table_prefix);

		$db->set_table_prefix($old_table_prefix);

		



		$page->output_header($lang->system_health." - ".$lang->utf8_conversion);

		$page->output_header($lang->system_health." - ".$lang->utf8_conversion);

		



		$sub_tabs['system_health'] = array(
'title' => $lang->system_health,
'link' => "index.php?module=tools-system_health",
'description' => $lang->system_health_desc
);

		$sub_tabs['system_health'] = array(
'title' => $lang->system_health,
'link' => "index.php?module=tools-system_health",
'description' => $lang->system_health_desc
);

		



		$sub_tabs['utf8_conversion'] = array(
'title' => $lang->utf8_conversion,
'link' => "index.php?module=tools-system_health&amp;action=utf8_conversion",
'description' => $lang->utf8_conversion_desc2
);

		$sub_tabs['utf8_conversion'] = array(
'title' => $lang->utf8_conversion,
'link' => "index.php?module=tools-system_health&amp;action=utf8_conversion",
'description' => $lang->utf8_conversion_desc2
);

		



		$page->output_nav_tabs($sub_tabs, 'utf8_conversion');

		$page->output_nav_tabs($sub_tabs, 'utf8_conversion');

		



		$old_table_prefix = $db->table_prefix;
$db->set_table_prefix('');

		$old_table_prefix = $db->table_prefix;
$db->set_table_prefix('');

		



        preg_match("#CHARSET=([a-zA-Z0-9_]+)\s?#i", $table, $matches);
$charset = $matches[1];

        preg_match("#CHARSET=([a-zA-Z0-9_]+)\s?#i", $table, $matches);
$charset = $matches[1];

		
$form = new Form("index.php?module=tools-system_health&amp;action=utf8_conversion", "post", "utf8_conversion");








$mb4 = '';
if(!empty($mybb->input['mb4']))
{
$mb4 = "&amp;mb4=1";
}

$form = new Form("index.php?module=tools-system_health&amp;action=utf8_conversion{$mb4}", "post", "utf8_conversion");

		echo $form->generate_hidden_field("table", $mybb->input['table']);

		echo $form->generate_hidden_field("table", $mybb->input['table']);

		



		if($mybb->input['do'] == "all")
{
echo $form->generate_hidden_field("do", "all");
}

		if($mybb->input['do'] == "all")
{
echo $form->generate_hidden_field("do", "all");
}

		



		$table = new Table;

		$table = new Table;

		
if($mybb->input['do'] == "all")
{
$table->construct_cell("<strong>".$lang->sprintf($lang->convert_all_to_utf, $charset)."</strong>");
}



if(!empty($mybb->input['mb4']))
{
$table->construct_cell("<strong>".$lang->sprintf($lang->convert_all_to_utf8mb4, $charset)."</strong>");
$lang->notice_process_long_time .= "<br /><br /><strong>{$lang->notice_mb4_warning}</strong>";
}

		else
{

		else
{

			$table->construct_cell("<strong>".$lang->sprintf($lang->convert_to_utf8, $mybb->input['table'], $charset)."</strong>");








			if($mybb->input['do'] == "all")
{
$table->construct_cell("<strong>".$lang->sprintf($lang->convert_all_to_utf, $charset)."</strong>");
}
else
{
$table->construct_cell("<strong>".$lang->sprintf($lang->convert_to_utf8, $mybb->input['table'], $charset)."</strong>");
}

		}

		}

		



		$table->construct_row();

		$table->construct_row();

		



		$table->construct_cell($lang->notice_process_long_time);
$table->construct_row();

		$table->construct_cell($lang->notice_process_long_time);
$table->construct_row();

		



		if($mybb->input['do'] == "all")
{
$table->output($lang->convert_tables);

		if($mybb->input['do'] == "all")
{
$table->output($lang->convert_tables);

Zeile 514Zeile 572
			$table->output($lang->convert_table.": {$mybb->input['table']}");
$buttons[] = $form->generate_submit_button($lang->convert_database_table);
}

			$table->output($lang->convert_table.": {$mybb->input['table']}");
$buttons[] = $form->generate_submit_button($lang->convert_database_table);
}

		



		$form->output_submit_wrapper($buttons);

		$form->output_submit_wrapper($buttons);

		



		$form->end();

		$form->end();

		



		$db->set_table_prefix($old_table_prefix);

		$db->set_table_prefix($old_table_prefix);

		



		$page->output_footer();

		$page->output_footer();

		



		exit;

		exit;

	}








	}

if(!$mybb->config['database']['encoding'])
{
flash_message($lang->error_db_encoding_not_set, 'error');
admin_redirect("index.php?module=tools-system_health");
}


	$tables = $db->list_tables($mybb->config['database']['database']);

	$tables = $db->list_tables($mybb->config['database']['database']);

	



	$old_table_prefix = $db->table_prefix;
$db->set_table_prefix('');

	$old_table_prefix = $db->table_prefix;
$db->set_table_prefix('');

	
$not_okey_count = 0;
$not_okey = array();
$okey_count = 0;



$encodings = array();




	foreach($tables as $key => $tablename)

	foreach($tables as $key => $tablename)

	{		

	{

		if(substr($tablename, 0, strlen($old_table_prefix)) == $old_table_prefix)
{
$table = $db->show_create_table($tablename);
preg_match("#CHARSET=([a-zA-Z0-9_]+)\s?#i", $table, $matches);

		if(substr($tablename, 0, strlen($old_table_prefix)) == $old_table_prefix)
{
$table = $db->show_create_table($tablename);
preg_match("#CHARSET=([a-zA-Z0-9_]+)\s?#i", $table, $matches);

			if(fetch_iconv_encoding($matches[1]) != 'utf-8')
{
$not_okey[$key] = $tablename;
++$not_okey_count;
}
else
{
++$okay_count;
}

$mybb_tables[$key] = $tablename;

			$encodings[$key] = fetch_iconv_encoding($matches[1]);
$mybb_tables[$key] = $tablename;










		}
}

		}
}

	



	$db->set_table_prefix($old_table_prefix);

	$db->set_table_prefix($old_table_prefix);

	
if($okay_count == count($mybb_tables))
{
flash_message($lang->success_all_tables_already_converted, 'success');
admin_redirect("index.php?module=tools-system_health");
}

if(!$mybb->config['database']['encoding'])
{
flash_message($lang->error_db_encoding_not_set, 'error');
admin_redirect("index.php?module=tools-system_health");
}
















	$page->add_breadcrumb_item($lang->utf8_conversion, "index.php?module=tools-system_health&amp;action=utf8_conversion");

	$page->add_breadcrumb_item($lang->utf8_conversion, "index.php?module=tools-system_health&amp;action=utf8_conversion");

	



	$page->output_header($lang->system_health." - ".$lang->utf8_conversion);

	$page->output_header($lang->system_health." - ".$lang->utf8_conversion);

	



	$page->output_nav_tabs($sub_tabs, 'utf8_conversion');

	$page->output_nav_tabs($sub_tabs, 'utf8_conversion');

	



	asort($mybb_tables);

	asort($mybb_tables);

	



























$unique = array_unique($encodings);

$convert_utf8 = $convert_utf8mb4 = false;
foreach($unique as $encoding)
{
if($encoding == 'utf-8')
{
$convert_utf8mb4 = true;
}
elseif($encoding != 'utf8mb4')
{
$convert_utf8 = true;
}
}

if(count($unique) > 1)
{
$page->output_error("<p><em>{$lang->warning_multiple_encodings}</em></p>");
}

if(in_array('utf8mb4', $unique) && $mybb->config['database']['encoding'] != 'utf8mb4')
{
$page->output_error("<p><em>{$lang->warning_utf8mb4_config}</em></p>");
}


	$table = new Table;
$table->construct_header($lang->table);

	$table = new Table;
$table->construct_header($lang->table);

	$table->construct_header($lang->status, array("class" => "align_center"));

foreach($mybb_tables as $key => $tablename)







	$table->construct_header($lang->status_utf8, array("class" => "align_center"));
$table->construct_header($lang->status_utf8mb4, array("class" => "align_center"));

$all_utf8 = $all_utf8mb4 = '-';
if($convert_utf8)
{
$all_utf8 = "<strong><a href=\"index.php?module=tools-system_health&amp;action=utf8_conversion&amp;do=all\">{$lang->convert_all}</a></strong>";
}
if($convert_utf8mb4)

	{

	{

		if(array_key_exists($key, $not_okey))
{












		$all_utf8mb4 = "<strong><a href=\"index.php?module=tools-system_health&amp;action=utf8_conversion&amp;do=all&amp;mb4=1\">{$lang->convert_all}</a></strong>";
}
$table->construct_cell("<strong>{$lang->all_tables}</strong>");
$table->construct_cell($all_utf8, array("class" => "align_center", 'width' => '15%'));
$table->construct_cell($all_utf8mb4, array("class" => "align_center", 'width' => '25%'));
$table->construct_row();

$db_version = $db->get_version();

foreach($mybb_tables as $key => $tablename)
{
if($encodings[$key] != 'utf-8' && $encodings[$key] != 'utf8mb4')
{

			$status = "<a href=\"index.php?module=tools-system_health&amp;action=utf8_conversion&amp;table={$tablename}\" style=\"background: url(styles/{$page->style}/images/icons/cross.gif) no-repeat; padding-left: 20px;\">{$lang->convert_now}</a>";
}
else
{

			$status = "<a href=\"index.php?module=tools-system_health&amp;action=utf8_conversion&amp;table={$tablename}\" style=\"background: url(styles/{$page->style}/images/icons/cross.gif) no-repeat; padding-left: 20px;\">{$lang->convert_now}</a>";
}
else
{

			$status = "<img src=\"styles/{$page->style}/images/icons/tick.gif\" alt=\"{$lang->ok}\" />";

















			$status = "<img src=\"styles/{$page->style}/images/icons/tick.gif\" alt=\"{$lang->ok}\" />";
}
if(version_compare($db_version, '5.5.3', '<'))
{
$utf8mb4 = $lang->not_available;
}
elseif($encodings[$key] == 'utf8mb4')
{
$utf8mb4 = "<img src=\"styles/{$page->style}/images/icons/tick.gif\" alt=\"{$lang->ok}\" />";
}
elseif($encodings[$key] == 'utf-8')
{
$utf8mb4 = "<a href=\"index.php?module=tools-system_health&amp;action=utf8_conversion&amp;table={$tablename}&amp;mb4=1\" style=\"background: url(styles/{$page->style}/images/icons/cross.gif) no-repeat; padding-left: 20px;\">{$lang->convert_now}</a>";
}
else
{
$utf8mb4 = "-";

		}
$table->construct_cell("<strong>{$tablename}</strong>");
$table->construct_cell($status, array("class" => "align_center", 'width' => '15%'));

		}
$table->construct_cell("<strong>{$tablename}</strong>");
$table->construct_cell($status, array("class" => "align_center", 'width' => '15%'));

 
		$table->construct_cell($utf8mb4, array("class" => "align_center", 'width' => '25%'));

		$table->construct_row();
}

		$table->construct_row();
}

	
$table->output("<div style=\"float: right; text-decoration: underline\"><small><a href=\"index.php?module=tools-system_health&amp;action=utf8_conversion&amp;do=all\">({$lang->convert_all})</a></small></div><div>{$lang->utf8_conversion}</div>");



$table->output("<div>{$lang->utf8_conversion}</div>");


	$page->output_footer();
}

if(!$mybb->input['action'])
{
$plugins->run_hooks("admin_tools_system_health_start");

	$page->output_footer();
}

if(!$mybb->input['action'])
{
$plugins->run_hooks("admin_tools_system_health_start");

	



	$page->output_header($lang->system_health);

	$page->output_header($lang->system_health);

	



	$page->output_nav_tabs($sub_tabs, 'system_health');

	$page->output_nav_tabs($sub_tabs, 'system_health');

	



	$table = new Table;
$table->construct_header($lang->totals, array("colspan" => 2));
$table->construct_header($lang->attachments, array("colspan" => 2));

	$table = new Table;
$table->construct_header($lang->totals, array("colspan" => 2));
$table->construct_header($lang->attachments, array("colspan" => 2));

	



	$query = $db->simple_select("attachments", "COUNT(*) AS numattachs, SUM(filesize) as spaceused, SUM(downloads*filesize) as bandwidthused", "visible='1' AND pid > '0'");
$attachs = $db->fetch_array($query);

	$query = $db->simple_select("attachments", "COUNT(*) AS numattachs, SUM(filesize) as spaceused, SUM(downloads*filesize) as bandwidthused", "visible='1' AND pid > '0'");
$attachs = $db->fetch_array($query);

	



	$table->construct_cell("<strong>{$lang->total_database_size}</strong>", array('width' => '25%'));
$table->construct_cell(get_friendly_size($db->fetch_size()), array('width' => '25%'));
$table->construct_cell("<strong>{$lang->attachment_space_used}</strong>", array('width' => '200'));
$table->construct_cell(get_friendly_size(intval($attachs['spaceused'])), array('width' => '200'));
$table->construct_row();

	$table->construct_cell("<strong>{$lang->total_database_size}</strong>", array('width' => '25%'));
$table->construct_cell(get_friendly_size($db->fetch_size()), array('width' => '25%'));
$table->construct_cell("<strong>{$lang->attachment_space_used}</strong>", array('width' => '200'));
$table->construct_cell(get_friendly_size(intval($attachs['spaceused'])), array('width' => '200'));
$table->construct_row();

	



	if($attachs['spaceused'] > 0)

	if($attachs['spaceused'] > 0)

	{

	{

		$attach_average_size = round($attachs['spaceused']/$attachs['numattachs']);
$bandwidth_average_usage = round($attachs['bandwidthused']);
}

		$attach_average_size = round($attachs['spaceused']/$attachs['numattachs']);
$bandwidth_average_usage = round($attachs['bandwidthused']);
}

Zeile 632Zeile 732
		$attach_average_size = 0;
$bandwidth_average_usage = 0;
}

		$attach_average_size = 0;
$bandwidth_average_usage = 0;
}

	



	$table->construct_cell("<strong>{$lang->total_cache_size}</strong>", array('width' => '25%'));
$table->construct_cell(get_friendly_size($cache->size_of()), array('width' => '25%'));
$table->construct_cell("<strong>{$lang->estimated_attachment_bandwidth_usage}</strong>", array('width' => '25%'));
$table->construct_cell(get_friendly_size($bandwidth_average_usage), array('width' => '25%'));
$table->construct_row();

	$table->construct_cell("<strong>{$lang->total_cache_size}</strong>", array('width' => '25%'));
$table->construct_cell(get_friendly_size($cache->size_of()), array('width' => '25%'));
$table->construct_cell("<strong>{$lang->estimated_attachment_bandwidth_usage}</strong>", array('width' => '25%'));
$table->construct_cell(get_friendly_size($bandwidth_average_usage), array('width' => '25%'));
$table->construct_row();

	





	$table->construct_cell("<strong>{$lang->max_upload_post_size}</strong>", array('width' => '200'));
$table->construct_cell(@ini_get('upload_max_filesize').' / '.@ini_get('post_max_size'), array('width' => '200'));
$table->construct_cell("<strong>{$lang->average_attachment_size}</strong>", array('width' => '25%'));
$table->construct_cell(get_friendly_size($attach_average_size), array('width' => '25%'));
$table->construct_row();

	$table->construct_cell("<strong>{$lang->max_upload_post_size}</strong>", array('width' => '200'));
$table->construct_cell(@ini_get('upload_max_filesize').' / '.@ini_get('post_max_size'), array('width' => '200'));
$table->construct_cell("<strong>{$lang->average_attachment_size}</strong>", array('width' => '25%'));
$table->construct_cell(get_friendly_size($attach_average_size), array('width' => '25%'));
$table->construct_row();

	



	$table->output($lang->stats);

	$table->output($lang->stats);

	



	$table->construct_header($lang->task);
$table->construct_header($lang->run_time, array("width" => 200, "class" => "align_center"));

	$table->construct_header($lang->task);
$table->construct_header($lang->run_time, array("width" => 200, "class" => "align_center"));

	



	$task_cache = $cache->read("tasks");
$nextrun = $task_cache['nextrun'];

	$task_cache = $cache->read("tasks");
$nextrun = $task_cache['nextrun'];

	



	$query = $db->simple_select("tasks", "*", "nextrun >= '{$nextrun}' AND enabled='1'", array("order_by" => "nextrun", "order_dir" => "asc", 'limit' => 3));
while($task = $db->fetch_array($query))
{

	$query = $db->simple_select("tasks", "*", "nextrun >= '{$nextrun}' AND enabled='1'", array("order_by" => "nextrun", "order_dir" => "asc", 'limit' => 3));
while($task = $db->fetch_array($query))
{

Zeile 661Zeile 761
		$next_run = date($mybb->settings['dateformat'], $task['nextrun']).", ".date($mybb->settings['timeformat'], $task['nextrun']);
$table->construct_cell("<strong>{$task['title']}</strong>");
$table->construct_cell($next_run, array("class" => "align_center"));

		$next_run = date($mybb->settings['dateformat'], $task['nextrun']).", ".date($mybb->settings['timeformat'], $task['nextrun']);
$table->construct_cell("<strong>{$task['title']}</strong>");
$table->construct_cell($next_run, array("class" => "align_center"));

	








$table->construct_row();
}

if($table->num_rows() == 0)
{
$table->construct_cell($lang->no_tasks, array('colspan' => 2));

		$table->construct_row();
}

		$table->construct_row();
}

	



	$table->output($lang->next_3_tasks);

	$table->output($lang->next_3_tasks);

	
$backups = array();
$dir = MYBB_ADMIN_DIR.'backups/';
$handle = opendir($dir);
while(($file = readdir($handle)) !== false)


if(isset($mybb->admin['permissions']['tools']['backupdb']) && $mybb->admin['permissions']['tools']['backupdb'] == 1)




	{

	{

		if(filetype(MYBB_ADMIN_DIR.'backups/'.$file) == 'file')




		$backups = array();
$dir = MYBB_ADMIN_DIR.'backups/';
$handle = opendir($dir);
while(($file = readdir($handle)) !== false)

		{

		{

			$ext = get_extension($file);
if($ext == 'gz' || $ext == 'sql')



































			if(filetype(MYBB_ADMIN_DIR.'backups/'.$file) == 'file')
{
$ext = get_extension($file);
if($ext == 'gz' || $ext == 'sql')
{
$backups[@filemtime(MYBB_ADMIN_DIR.'backups/'.$file)] = array(
"file" => $file,
"time" => @filemtime(MYBB_ADMIN_DIR.'backups/'.$file),
"type" => $ext
);
}
}
}

$count = count($backups);
krsort($backups);

$table = new Table;
$table->construct_header($lang->name);
$table->construct_header($lang->backup_time, array("width" => 200, "class" => "align_center"));

$backupscnt = 0;
foreach($backups as $backup)
{
++$backupscnt;

if($backupscnt == 4)
{
break;
}

if($backup['time'])
{
$time = my_date($mybb->settings['dateformat'].", ".$mybb->settings['timeformat'], $backup['time']);
}
else

			{

			{

				$backups[@filemtime(MYBB_ADMIN_DIR.'backups/'.$file)] = array(
"file" => $file,
"time" => @filemtime(MYBB_ADMIN_DIR.'backups/'.$file),
"type" => $ext
);

				$time = "-";





			}

			}

 

$table->construct_cell("<a href=\"index.php?module=tools-backupdb&amp;action=dlbackup&amp;file={$backup['file']}\">{$backup['file']}</a>");
$table->construct_cell($time, array("class" => "align_center"));
$table->construct_row();

		}

		}

	}

$count = count($backups);
krsort($backups);

$table = new Table;
$table->construct_header($lang->name);
$table->construct_header($lang->backup_time, array("width" => 200, "class" => "align_center"));

$backupscnt = 0;
foreach($backups as $backup)
{
++$backupscnt;

if($backupscnt == 4)
{
break;
}

if($backup['time'])
{
$time = my_date($mybb->settings['dateformat'].", ".$mybb->settings['timeformat'], $backup['time']);
}
else


if($count == 0)























		{

		{

			$time = "-";


			$table->construct_cell($lang->no_backups, array('colspan' => 2));
$table->construct_row();

		}

		}

		
$table->construct_cell("<a href=\"index.php?module=tools-backupdb&amp;action=dlbackup&amp;file={$backup['file']}\">{$backup['file']}</a>");
$table->construct_cell($time, array("class" => "align_center"));
$table->construct_row();



$table->output($lang->existing_db_backups);


	}

	}

	
if($count == 0)
{
$table->construct_cell($lang->no_backups, array('colspan' => 2));
$table->construct_row();
}


$table->output($lang->existing_db_backups);













	if(is_writable(MYBB_ROOT.'inc/settings.php'))
{
$message_settings = "<span style=\"color: green;\">{$lang->writable}</span>";

	if(is_writable(MYBB_ROOT.'inc/settings.php'))
{
$message_settings = "<span style=\"color: green;\">{$lang->writable}</span>";

Zeile 735Zeile 844
		$message_settings = "<strong><span style=\"color: #C00\">{$lang->not_writable}</span></strong><br />{$lang->please_chmod_777}";
++$errors;
}

		$message_settings = "<strong><span style=\"color: #C00\">{$lang->not_writable}</span></strong><br />{$lang->please_chmod_777}";
++$errors;
}

	



	if(is_writable(MYBB_ROOT.'inc/config.php'))

	if(is_writable(MYBB_ROOT.'inc/config.php'))

	{

	{

		$message_config = "<span style=\"color: green;\">{$lang->writable}</span>";

		$message_config = "<span style=\"color: green;\">{$lang->writable}</span>";

	}

	}

	else

	else

	{

	{

		$message_config = "<strong><span style=\"color: #C00\">{$lang->not_writable}</span></strong><br />{$lang->please_chmod_777}";

		$message_config = "<strong><span style=\"color: #C00\">{$lang->not_writable}</span></strong><br />{$lang->please_chmod_777}";

		++$errors;
}

if(is_writable('.'.$mybb->settings['uploadspath']))
{

		++$errors;
}

if(is_writable('.'.$mybb->settings['uploadspath']))
{

		$message_upload = "<span style=\"color: green;\">{$lang->writable}</span>";
}
else
{
$message_upload = "<strong><span style=\"color: #C00\">{$lang->not_writable}</span></strong><br />{$lang->please_chmod_777}";

		$message_upload = "<span style=\"color: green;\">{$lang->writable}</span>";
}
else
{
$message_upload = "<strong><span style=\"color: #C00\">{$lang->not_writable}</span></strong><br />{$lang->please_chmod_777}";

		++$errors;
}

if(is_writable('../'.$mybb->settings['avataruploadpath']))

		++$errors;
}

if(is_writable('../'.$mybb->settings['avataruploadpath']))

	{
$message_avatar = "<span style=\"color: green;\">{$lang->writable}</span>";
}
else
{
$message_avatar = "<strong><span style=\"color: #C00\">{$lang->not_writable}</span></strong><br />{$lang->please_chmod_777}";

	{
$message_avatar = "<span style=\"color: green;\">{$lang->writable}</span>";
}
else
{
$message_avatar = "<strong><span style=\"color: #C00\">{$lang->not_writable}</span></strong><br />{$lang->please_chmod_777}";

		++$errors;
}

if(is_writable(MYBB_ROOT.'inc/languages/'))
{

		++$errors;
}

if(is_writable(MYBB_ROOT.'inc/languages/'))
{

		$message_language = "<span style=\"color: green;\">{$lang->writable}</span>";

		$message_language = "<span style=\"color: green;\">{$lang->writable}</span>";

	}

	}

	else
{
$message_language = "<strong><span style=\"color: #C00\">{$lang->not_writable}</span></strong><br />{$lang->please_chmod_777}";
++$errors;
}

	else
{
$message_language = "<strong><span style=\"color: #C00\">{$lang->not_writable}</span></strong><br />{$lang->please_chmod_777}";
++$errors;
}

	



	if(is_writable(MYBB_ROOT.$config['admin_dir'].'/backups/'))
{
$message_backup = "<span style=\"color: green;\">{$lang->writable}</span>";

	if(is_writable(MYBB_ROOT.$config['admin_dir'].'/backups/'))
{
$message_backup = "<span style=\"color: green;\">{$lang->writable}</span>";

Zeile 785Zeile 894
		$message_backup = "<strong><span style=\"color: #C00\">{$lang->not_writable}</span></strong><br />{$lang->please_chmod_777}";
++$errors;
}

		$message_backup = "<strong><span style=\"color: #C00\">{$lang->not_writable}</span></strong><br />{$lang->please_chmod_777}";
++$errors;
}

	



	if(is_writable(MYBB_ROOT.'/cache/'))

	if(is_writable(MYBB_ROOT.'/cache/'))

	{

	{

		$message_cache = "<span style=\"color: green;\">{$lang->writable}</span>";
}
else
{
$message_cache = "<strong><span style=\"color: #C00\">{$lang->not_writable}</span></strong><br />{$lang->please_chmod_777}";

		$message_cache = "<span style=\"color: green;\">{$lang->writable}</span>";
}
else
{
$message_cache = "<strong><span style=\"color: #C00\">{$lang->not_writable}</span></strong><br />{$lang->please_chmod_777}";

		++$errors;

		++$errors;

	}

	}

	



	if(is_writable(MYBB_ROOT.'/cache/themes/'))
{
$message_themes = "<span style=\"color: green;\">{$lang->writable}</span>";

	if(is_writable(MYBB_ROOT.'/cache/themes/'))
{
$message_themes = "<span style=\"color: green;\">{$lang->writable}</span>";

Zeile 805Zeile 914
		$message_themes = "<strong><span style=\"color: #C00\">{$lang->not_writable}</span></strong><br />{$lang->please_chmod_777}";
++$errors;
}

		$message_themes = "<strong><span style=\"color: #C00\">{$lang->not_writable}</span></strong><br />{$lang->please_chmod_777}";
++$errors;
}

	





	if($errors)
{

	if($errors)
{

		$page->output_error("<p><em>{$errors} {$lang->error_chmod}</span></strong> {$lang->chmod_info} <a href=\"http://wiki.mybb.com/index.php/HowTo_Chmod\" target=\"_blank\">MyBB Wiki</a>.</em></p>");

		$page->output_error("<p><em>{$errors} {$lang->error_chmod}</span></strong> {$lang->chmod_info} <a href=\"http://docs.mybb.com/HowTo_Chmod.html\" target=\"_blank\">MyBB Docs</a>.</em></p>");

	}
else
{
$page->output_success("<p><em>{$lang->success_chmod}</em></p>");
}

	}
else
{
$page->output_success("<p><em>{$lang->success_chmod}</em></p>");
}

	



	$table = new Table;
$table->construct_header($lang->file);
$table->construct_header($lang->location, array("colspan" => 2, 'width' => 250));

	$table = new Table;
$table->construct_header($lang->file);
$table->construct_header($lang->location, array("colspan" => 2, 'width' => 250));

	



	$table->construct_cell("<strong>{$lang->config_file}</strong>");
$table->construct_cell("./inc/config.php");
$table->construct_cell($message_config);
$table->construct_row();

	$table->construct_cell("<strong>{$lang->config_file}</strong>");
$table->construct_cell("./inc/config.php");
$table->construct_cell($message_config);
$table->construct_row();

	



	$table->construct_cell("<strong>{$lang->settings_file}</strong>");
$table->construct_cell("./inc/settings.php");
$table->construct_cell($message_settings);
$table->construct_row();

	$table->construct_cell("<strong>{$lang->settings_file}</strong>");
$table->construct_cell("./inc/settings.php");
$table->construct_cell($message_settings);
$table->construct_row();

	



	$table->construct_cell("<strong>{$lang->file_upload_dir}</strong>");
$table->construct_cell($mybb->settings['uploadspath']);
$table->construct_cell($message_upload);
$table->construct_row();

	$table->construct_cell("<strong>{$lang->file_upload_dir}</strong>");
$table->construct_cell($mybb->settings['uploadspath']);
$table->construct_cell($message_upload);
$table->construct_row();

	



	$table->construct_cell("<strong>{$lang->avatar_upload_dir}</strong>");
$table->construct_cell($mybb->settings['avataruploadpath']);
$table->construct_cell($message_avatar);
$table->construct_row();

	$table->construct_cell("<strong>{$lang->avatar_upload_dir}</strong>");
$table->construct_cell($mybb->settings['avataruploadpath']);
$table->construct_cell($message_avatar);
$table->construct_row();

	



	$table->construct_cell("<strong>{$lang->language_files}</strong>");
$table->construct_cell("./inc/languages");
$table->construct_cell($message_language);
$table->construct_row();

	$table->construct_cell("<strong>{$lang->language_files}</strong>");
$table->construct_cell("./inc/languages");
$table->construct_cell($message_language);
$table->construct_row();

	



	$table->construct_cell("<strong>{$lang->backup_dir}</strong>");
$table->construct_cell('./'.$config['admin_dir'].'/backups');
$table->construct_cell($message_backup);
$table->construct_row();

	$table->construct_cell("<strong>{$lang->backup_dir}</strong>");
$table->construct_cell('./'.$config['admin_dir'].'/backups');
$table->construct_cell($message_backup);
$table->construct_row();

	



	$table->construct_cell("<strong>{$lang->cache_dir}</strong>");
$table->construct_cell('./cache');
$table->construct_cell($message_cache);
$table->construct_row();

	$table->construct_cell("<strong>{$lang->cache_dir}</strong>");
$table->construct_cell('./cache');
$table->construct_cell($message_cache);
$table->construct_row();

	



	$table->construct_cell("<strong>{$lang->themes_dir}</strong>");
$table->construct_cell('./cache/themes');
$table->construct_cell($message_themes);
$table->construct_row();

	$table->construct_cell("<strong>{$lang->themes_dir}</strong>");
$table->construct_cell('./cache/themes');
$table->construct_cell($message_themes);
$table->construct_row();

	



	$table->output($lang->chmod_files_and_dirs);

	$table->output($lang->chmod_files_and_dirs);

	



	$page->output_footer();
}
?>

	$page->output_footer();
}
?>