%PDF-
%PDF-
Mini Shell
Mini Shell
<?
define("STOP_STATISTICS", true);
define("PUBLIC_AJAX_MODE", true);
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
if(!$USER->IsAdmin() || !check_bitrix_sessid())
{
echo GetMessage('CLUWIZ_ERROR_ACCESS_DENIED');
require_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/epilog_after.php");
die();
}
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/wizard.php");
$lang = $_REQUEST['lang'];
if(!preg_match('/^[a-z0-9_]{2}$/i', $lang))
$lang = 'en';
$wizard = new CWizard("bitrix:cluster.slave_start");
$wizard->IncludeWizardLang("scripts/drop.php", $lang);
CModule::IncludeModule('cluster');
$node_id = $_REQUEST["node_id"];
if($node_id <= 1)
$nodeDB = false;
else
$nodeDB = CDatabase::GetDBNodeConnection($node_id, true, false);
if(!is_object($nodeDB))
{
echo GetMessage('CLUWIZ_CONNECTION_ERROR');
}
else
{
$arViewsToDelete = array();
$rsViews = $nodeDB->Query("SHOW FULL TABLES IN ".$nodeDB->DBName." WHERE TABLE_TYPE LIKE 'VIEW'", false, '', array("fixed_connection"=>true));
while($arView = $rsViews->Fetch())
{
$arViewsToDelete[] = $arView["Tables_in_".$nodeDB->DBName];
}
$arTablesToDelete = array();
$rsTables = $nodeDB->Query("show tables", false, '', array("fixed_connection"=>true));
while($arTable = $rsTables->Fetch())
{
if (!in_array($arTable["Tables_in_".$nodeDB->DBName], $arViewsToDelete))
$arTablesToDelete[] = $arTable["Tables_in_".$nodeDB->DBName];
}
if(empty($arTablesToDelete))
{
echo GetMessage("CLUWIZ_ALL_DONE");
echo '<script>EnableButton();</script>';
}
else
{
$etime = time() + 2;
while ((!empty($arTablesToDelete)) && ($etime > time()))
{
$table_name = array_pop($arTablesToDelete);
$nodeDB->Query("drop table ".$table_name, false, '', array("fixed_connection"=>true));
}
while ((!empty($arViewsToDelete)) && ($etime > time()))
{
$view_name = array_pop($arViewsToDelete);
$nodeDB->Query("drop view ".$view_name, false, '', array("fixed_connection"=>true));
}
echo GetMessage('CLUWIZ_TABLE_DROPPED', array("#table_name#" => $table_name));
echo '<br />';
echo GetMessage('CLUWIZ_TABLE_PROGRESS', array("#tables#" => count($arTablesToDelete)));
echo "<script>DropTables()</script>";
}
}
require_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/epilog_after.php");
?>
Zerion Mini Shell 1.0