# 
#-----[ OPEN ]------------------------------------------ 
# 

admin/admin_db_utilities.php

# 
#-----[ FIND ]------------------------------------------ 
# 

//
// Start Optimize Database 1.1.0 by Sko22 < sko22@quellicheilpc.com >
//
		case 'optimize':

			if(!isset($HTTP_POST_VARS['ottimizza']))
			{
				
				include('./page_header_admin.'.$phpEx);

$sql = "SHOW TABLE STATUS";

	$result = $db->sql_query($sql);
	if( !$result )
	{
		message_die(GENERAL_ERROR, "Couldn't obtain databases list", "", __LINE__, __FILE__, $sql);
	}

	$opt = $db->sql_fetchrowset($result);

	for($i = 0; $i < count($opt); $i++)
	{
		
		$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];

$dbsize = $opt[$i][5] + $opt[$i][7]; 

		if( $dbsize >= 1048576 )
		{
			//$dbsize = sprintf("%.2f Mb", ( $dbsize / 1048576 ));
			$dbsize = round(($dbsize / 1048576 ),1)." Mb";
		}
		else if( $dbsize >= 1024 )
		{
			//$dbsize = sprintf("%.2f Kb", ( $dbsize / 1024 ));
			$dbsize = round(($dbsize / 1024 ),1)." Kb";
		}
		else
		{
			//$dbsize = sprintf("%.2f Bytes", $dbsize);
			$dbsize = round($dbsize,1)." Bytes";
		}

$opt[$i][8] != 0 ? $data_free = "No OK" : $data_free = "OK";
$opt[$i][8] != 0 ? $check = "checked" : $check = ""; 

		$template->assign_block_vars("optimize", array(
			"ROW_CLASS" => $row_class,
			"S_SELECT_TABLE" => "<input type=\"checkbox\" name=\"selected_tbl[]\" value=\"" . $opt[$i][0] . "\"" . $check . ">",
			"TABLE" => $opt[$i][0],
			"RECORD" => $opt[$i][3],
			"TYPE" => $opt[$i][1],
			"SIZE" => $dbsize,
			"STATUS" => $data_free,
			"TOT_TABLE" => $i
			)
		);

$total_tab = $i;
$total_rec = $total_rec + $opt[$i][3]; 
$total_size = $total_size + $opt[$i][5] + $opt[$i][7]; 
if ($data_free == "No OK") $total_stat = "No OK";

	}

$total_size = round(($total_size / 1048576 ),1)." Mb";
$total_stat == "No OK" ? $total_stat = "No OK" : $total_stat = "OK";

			$template->set_filenames(array(
					"body" => "admin/db_utils_optimize_body.tpl")
				);

				$s_hidden_fields = "<input type=\"hidden\" name=\"perform\" value=\"$perform\" />";
				$select_scritp = "
<script language=\"JavaScript\">
// I have copied and modified a script of phpMyAdmin.net
<!--
function setCheckboxes(the_form, do_check)
{
var elts = (typeof(document.forms[the_form].elements['selected_db[]']) != 'undefined')
	? document.forms[the_form].elements['selected_db[]']
    : (typeof(document.forms[the_form].elements['selected_tbl[]']) != 'undefined')
	? document.forms[the_form].elements['selected_tbl[]']
	: document.forms[the_form].elements['selected_fld[]'];

var elts_cnt  = (typeof(elts.length) != 'undefined') ? elts.length : 0;

if (elts_cnt) {
	for (var i = 0; i < elts_cnt; i++) {
		if (do_check == \"invert\"){
		elts[i].checked == true ? elts[i].checked = false : elts[i].checked = true;
		} else {
		elts[i].checked = do_check;
		}
		} // end for
    } else {
        elts.checked        = do_check;
    } // end if... else

return true;
}
//-->
</script>
";

				$template->assign_vars(array(
					"SELECT_SCRIPT" => $select_scritp,
					"L_DATABASE_OPTIMIZE" => $lang['Database_Utilities'] . " : " . $lang['Optimize'],
					"L_OPTIMIZE_EXPLAIN" => $lang['Optimize_explain'],
					"L_OPTIMIZE_TABLE" => $lang['Optimize_Table'],
					"L_OPTIMIZE_RECORD" => $lang['Optimize_Record'],
					"L_OPTIMIZE_TYPE" => $lang['Optimize_Type'],
					"L_OPTIMIZE_SIZE" => $lang['Optimize_Size'],
					"L_OPTIMIZE_STATUS" => $lang['Optimize_Status'],
					"TOT_TABLE" => $total_tab,
					"TOT_RECORD" => $total_rec,
					"TOT_SIZE" => $total_size,
					"TOT_STATUS" => $total_stat,
					"L_OPTIMIZE_CHECKALL" => $lang['Optimize_CheckAll'],
					"L_OPTIMIZE_UNCHECKALL" => $lang['Optimize_UncheckAll'],
					"L_OPTIMIZE_INVERTCHECKED" => $lang['Optimize_InvertChecked'],
					"L_START_OPTIMIZE" => $lang['Optimize'],
					"S_DBUTILS_ACTION" => append_sid("admin_db_utilities.$phpEx"),
					"S_HIDDEN_FIELDS" => $s_hidden_fields
					)
				);

				$template->pparse("body");

				break;

			}

			else
			
			{

include('./page_header_admin.'.$phpEx);

$sql = "OPTIMIZE TABLE ";

// make query optimize
if ($_POST["selected_tbl"] != ""){

$i=1;
foreach ($_POST["selected_tbl"] as $var => $value){
	if($i<count($_POST["selected_tbl"])){
		$sql .= "`$value`, ";
		} else {
		$sql .= "`$value`";
		}
 $i++;
} 

}

$sql .= " ;";

if (!$result = $db->sql_query($sql))

{
	$optimize_notablechecked = true;
}

				$template->set_filenames(array(
					"body" => "admin/admin_message_body.tpl")
				);

				$optimize_notablechecked == true ? $message = $lang['Optimize_NoTableChecked'] : $message = $lang['Optimize_success'];

				$template->assign_vars(array(
					"MESSAGE_TITLE" => $lang['Database_Utilities'] . " : " . $lang['Optimize'],
					"MESSAGE_TEXT" => $message)
				);

				$template->pparse("body");
				break;

			}

		break;
//
// End Optimize Database 1.1.0 by Sko22 < sko22@quellicheilpc.com >
//

# 
#-----[ REPLACE WITH ]------------------------------------------ 
# 

//
// Start Optimize Database 1.1.1 by Sko22 < sko22@quellicheilpc.com >
//
		case 'optimize':

			if(!isset($HTTP_POST_VARS['ottimizza']))
			{
				
				include('./page_header_admin.'.$phpEx);

$sql = "SHOW TABLE STATUS";

	$result = $db->sql_query($sql);
	if( !$result )
	{
		message_die(GENERAL_ERROR, "Couldn't obtain databases list", "", __LINE__, __FILE__, $sql);
	}

	$opt = $db->sql_fetchrowset($result);

	for($i = 0; $i < count($opt); $i++)
	{
		
		$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];

$dbsize = $opt[$i]['Data_length'] + $opt[$i]['Index_length']; 

		if( $dbsize >= 1048576 )
		{
			//$dbsize = sprintf("%.2f Mb", ( $dbsize / 1048576 ));
			$dbsize = round(($dbsize / 1048576 ),1)." Mb";
		}
		else if( $dbsize >= 1024 )
		{
			//$dbsize = sprintf("%.2f Kb", ( $dbsize / 1024 ));
			$dbsize = round(($dbsize / 1024 ),1)." Kb";
		}
		else
		{
			//$dbsize = sprintf("%.2f Bytes", $dbsize);
			$dbsize = round($dbsize,1)." Bytes";
		}

$opt[$i]['Data_free'] != 0 ? $data_free = "No OK" : $data_free = "OK";
$opt[$i]['Data_free'] != 0 ? $check = "checked" : $check = ""; 

		$template->assign_block_vars("optimize", array(
			"ROW_CLASS" => $row_class,
			"S_SELECT_TABLE" => "<input type=\"checkbox\" name=\"selected_tbl[]\" value=\"" . $opt[$i]['Name'] . "\"" . $check . ">",
			"TABLE" => $opt[$i]['Name'],
			"RECORD" => $opt[$i]['Rows'],
			"TYPE" => $opt[$i]['Type'],
			"SIZE" => $dbsize,
			"STATUS" => $data_free,
			"TOT_TABLE" => $i
			)
		);

$total_tab = $i +1;
$total_rec = $total_rec + $opt[$i]['Rows']; 
$total_size = $total_size + $opt[$i]['Data_length'] + $opt[$i]['Index_length']; 
if ($data_free == "No OK") $total_stat = "No OK";

	}

$total_size = round(($total_size / 1048576 ),1)." Mb";
$total_stat == "No OK" ? $total_stat = "No OK" : $total_stat = "OK";

			$template->set_filenames(array(
					"body" => "admin/db_utils_optimize_body.tpl")
				);

				$s_hidden_fields = "<input type=\"hidden\" name=\"perform\" value=\"$perform\" />";
				
if ( $i != 1 )

{
				
$select_scritp = "
<script language=\"JavaScript\">
// I have copied and modified a script of phpMyAdmin.net
<!--
function setCheckboxes(the_form, do_check)
{
var elts = (typeof(document.forms[the_form].elements['selected_tbl[]']) != 'undefined') 
? document.forms[the_form].elements['selected_tbl[]'] 
: document.forms[the_form].elements = '';

var elts_cnt  = (typeof(elts.length) != 'undefined') ? elts.length : 0;

if (elts_cnt) {
	for (var i = 0; i < elts_cnt; i++) {
		if (do_check == \"invert\"){
		elts[i].checked == true ? elts[i].checked = false : elts[i].checked = true;
		} else {
		elts[i].checked = do_check;
		}
		} // end for
    } else {
        elts.checked        = do_check;
    } // end if... else

return true;
}
//-->
</script>
";

}

else

{

$select_scritp = "
<script language=\"JavaScript\">
<!--
function setCheckboxes(the_form, do_check)
{

}
//-->
</script>";

}

				$template->assign_vars(array(
					"SELECT_SCRIPT" => $select_scritp,
					"L_DATABASE_OPTIMIZE" => $lang['Database_Utilities'] . " : " . $lang['Optimize'],
					"L_OPTIMIZE_EXPLAIN" => $lang['Optimize_explain'],
					"L_OPTIMIZE_TABLE" => $lang['Optimize_Table'],
					"L_OPTIMIZE_RECORD" => $lang['Optimize_Record'],
					"L_OPTIMIZE_TYPE" => $lang['Optimize_Type'],
					"L_OPTIMIZE_SIZE" => $lang['Optimize_Size'],
					"L_OPTIMIZE_STATUS" => $lang['Optimize_Status'],
					"TOT_TABLE" => $total_tab,
					"TOT_RECORD" => $total_rec,
					"TOT_SIZE" => $total_size,
					"TOT_STATUS" => $total_stat,
					"L_OPTIMIZE_CHECKALL" => $lang['Optimize_CheckAll'],
					"L_OPTIMIZE_UNCHECKALL" => $lang['Optimize_UncheckAll'],
					"L_OPTIMIZE_INVERTCHECKED" => $lang['Optimize_InvertChecked'],
					"L_START_OPTIMIZE" => $lang['Optimize'],
					"S_DBUTILS_ACTION" => append_sid("admin_db_utilities.$phpEx"),
					"S_HIDDEN_FIELDS" => $s_hidden_fields
					)
				);

				$template->pparse("body");

				break;

			}

			else
			
			{

include('./page_header_admin.'.$phpEx);

$sql = "OPTIMIZE TABLE ";

// make query optimize
if ($_POST["selected_tbl"] != ""){

$i=1;
foreach ($_POST["selected_tbl"] as $var => $value){
	if($i<count($_POST["selected_tbl"])){
		$sql .= "`$value`, ";
		} else {
		$sql .= "`$value`";
		}
 $i++;
} 

}

$sql .= " ;";

if (!$result = $db->sql_query($sql))

{
	$optimize_notablechecked = true;
}

				$template->set_filenames(array(
					"body" => "admin/admin_message_body.tpl")
				);

				$optimize_notablechecked == true ? $message = $lang['Optimize_NoTableChecked'] : $message = $lang['Optimize_success'];

				$template->assign_vars(array(
					"MESSAGE_TITLE" => $lang['Database_Utilities'] . " : " . $lang['Optimize'],
					"MESSAGE_TEXT" => $message)
				);

				$template->pparse("body");
				break;

			}

		break;
//
// End Optimize Database 1.1.1 by Sko22 < sko22@quellicheilpc.com >
//

# 
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
# 
# EoM 