Вход Регистрация
Файл: core/includes/admin/sub/catalog_dbsync.php
Строк: 144
<?php
#######################################
# ShopCMS: Скрипт интернет-магазина
# Copyright (c) by ADGroup
# http://shopcms.ru
#######################################

        //catalog database synchronization

        //show new orders page if selected
        
if (!strcmp($sub"dbsync"))
        {
        if ( 
CONF_BACKEND_SAFEMODE != && (!isset($_SESSION["log"]) || !in_array(2,$relaccess))) //unauthorized
        
{
                          
$smarty->assign("admin_sub_dpt""error_forbidden.tpl.html");
                        } else {
                
//database synchronization
                //affects only products and categories database! doesn't touch customers and orders tables
                
function updatebases()
                {

                
$tot_data 0;
                
$tot_idx 0;
                
$tot_all 0;
                
$total_gain 0;
                
$local_query "SHOW TABLE STATUS";
                
$result db_query($local_query);
                if (
db_num_rows($result["resource"])) {
                  while (
$row db_fetch_row($result)) {
                  
$local_query 'OPTIMIZE TABLE '.$row[0];
                  
$resultat db_query($local_query);
                                                        }
                return 
true;
                }
                }

                if (isset(
$_POST["export_db"])) //export database to SQL-file
                
{
                        if (
CONF_BACKEND_SAFEMODE//this action is forbidden when SAFE MODE is ON
                        
{
                                
Redirect(ADMIN_FILE."?dpt=catalog&sub=dbsync&safemode=yes");
                        }
                        @
set_time_limit(0);
                        
$xdb "core/temp/database.sql.gz";
                        if (
file_exists($xdb)) unlink($xdb);

                        
// write SQL insert statements to file
                        
serProductAndCategoriesSerialization$xdb );

                        
$getFileParam cryptFileParamCrypt"GetDataBaseSqlScript"null );
                        
$smarty->assign"getFileParam"$getFileParam );
                        
$smarty->assign"filenamegz""database.sql.gz" );
                        
$smarty->assign"sync_action""export");
                        
$smarty->assign"database_filesize"round(filesize($xdb) / 10485763));

                }
                elseif (isset(
$_POST["import_db"])) //execute sql-file
                
{
                        if (
CONF_BACKEND_SAFEMODE//this action is forbidden when SAFE MODE is ON
                        
{
                                
Redirect(ADMIN_FILE."?dpt=catalog&sub=dbsync&safemode=yes");
                        }

                        @
set_time_limit(0);

                        
//upload file
                        
if (isset($_FILES["db"]) && $_FILES["db"]["name"])
                        {
                        if(
preg_match("/^(.+?).sql(.(bz2|gz))?$/"$_FILES["db"]["name"], $matches))
                        {

                                
$db_name "core/temp/file.db";
                                if (
file_exists($db_name)) unlink($db_name);
                                
$res = @move_uploaded_file($_FILES["db"]["tmp_name"], $db_name);
                                if ( 
$res )
                                {

                                        
SetRightsToUploadedFile$db_name );

                                        
DestroyReferConstraintsXMLDATABASE_STRUCTURE_XML_PATH );

                                        
//clear products&categories database
                                        
serDeleteProductAndCategories();

                                        
$f implode("",gzfile($db_name));
                                        
$f str_replace("DBPRFX_"DB_PRFX$f);
                                        
$f explode("INSERT INTO ".DB_PRFX,$f);
                                        for (
$i=0$i<count($f); $i++){
                                                if (
strlen($f[$i])>0)
                                                {
                                                        
$f[$i] = str_replace(");",")",$f[$i]);
                                                        
db_query"INSERT INTO ".DB_PRFX.$f[$i] );
                                                }

                                        }

                                        
// _serImport($db_name);
                                        // serImportWithConstantNameReplacing($db_name);

                                        
CreateReferConstraintsXMLDATABASE_STRUCTURE_XML_PATH );

                                        
//update products count value if defined
                                        
if (CONF_UPDATE_GCV == 1)  update_psCount(1);
                                        
unlink($db_name);
                                        
$smarty->assign("sync_successful"1);
                                }
                                else
                                        
$smarty->assign("sync_successful"0);

                        }} else 
$smarty->assign("sync_successful"0);

                        
$smarty->assign("sync_action""import");

                        
//update products count value if defined
                        
if (CONF_UPDATE_GCV == 1)
                        {
                                
update_psCount(1);
                        }
                }elseif (isset(
$_POST["import_db_file"])) //execute sql-file
                
{
                        if (
CONF_BACKEND_SAFEMODE//this action is forbidden when SAFE MODE is ON
                        
{
                                
Redirect(ADMIN_FILE."?dpt=catalog&sub=dbsync&safemode=yes");
                        }

                        @
set_time_limit(0);

                        
//upload file
                        
if (isset($_FILES["db_file"]) && $_FILES["db_file"]["name"])
                        {
                                
$db_name "core/temp/".$_FILES["db_file"]["name"];
                                if (
file_exists($db_name)) unlink($db_name);
                                
$res = @move_uploaded_file($_FILES["db_file"]["tmp_name"], $db_name);
                                if ( 
$res )
                                {

                                        
SetRightsToUploadedFile$db_name );

                        
$masterfef $_FILES["db_file"]["name"];
                        include_once(
'core/classes/class.dump.php');
                        
$SK = new dumper();
                        
$SK->SET['masterfef'] = $_FILES["db_file"]["name"];
                        
$SK->restore();
                                        
unlink($db_name);
                                        
$smarty->assign("sync_successful"1);
                                }
                                else
                                        
$smarty->assign("sync_successful"0);

                        } else 
$smarty->assign("sync_successful"0);

                        
$smarty->assign("sync_action""import");

                }elseif (isset(
$_POST["full_export"]))
                {
                        if (
CONF_BACKEND_SAFEMODE//this action is forbidden when SAFE MODE is ON
                        
{
                                
Redirect(ADMIN_FILE."?dpt=catalog&sub=dbsync&safemode=yes");
                        }

                        if (
file_exists("core/temp/fulldump.sql.gz")) unlink("core/temp/fulldump.sql.gz");
                        
$masterfef "core/temp";
                        include_once(
'core/classes/class.dump.php');
                        
$SK = new dumper();
                        
$SK->SET['masterfef'] = "core/temp";
                        
$SK->backup();
                        
$getFileParam cryptFileParamCrypt"GetFullFileDb"null );
                        
$smarty->assign"getFileParam"$getFileParam );
                        
$smarty->assign("filenameffe""fulldump.sql.gz");
                        
$smarty->assign"database_filesizef"round(filesize("core/temp/fulldump.sql.gz") / 10485763));
                }

                if (isset(
$_GET["optimize"]))
                {
                        if (
CONF_BACKEND_SAFEMODE//this action is forbidden when SAFE MODE is ON
                        
{
                                
Redirect(ADMIN_FILE."?dpt=catalog&sub=dbsync&safemode=yes");
                        }
                       @
set_time_limit(0);
                       if(
updatebases()) $smarty->assign("gain""nots");
                }

                
//set sub-department template
                
$smarty->assign("admin_sub_dpt""catalog_dbsync.tpl.html");
        }
        }
?>
Онлайн: 0
Реклама