Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if($server_version_number > $shop_version_number)
- {
- //only make a update if we have enough space
- $update_size = (3 *(($this->curlGetFileSize(self::$update_address)/1024)/1024));
- $free_space = $this->getFreeWebspaceSize();
- if($free_space > $update_size)
- {
- //...
- $load_status = $this->loadUpdateFile();
- //check the update file status if ok start backup
- if($load_status)
- {
- exec('mysqldump --host=' . DB_HOST . ' --user=' . DB_USERNAME . ' --password=' . DB_PASSWORD . ' --opt ' . DB_DATABASE . ' > ' . $path . '.sql');
- //...
- $zip_status = $this->zipFolder($_SERVER['DOCUMENT_ROOT'], self::$zip_exceptions, self::$zip_templates);
- $free_space_bkp = $this->getFreeWebspaceSize();
- if($zip_status && $free_space_bkp > $update_size)
- {
- //now remove the old update files and extract the new ones
- $this->cleanUpdateFilesDir();
- //...
- if($unzip_status)
- {
- $sql_files = array_diff(scandir(self::$update_sql_dir), array('.', '..'));
- $db_status = -2;
- if(!empty($sql_files))
- {
- foreach($sql_files as $id => $sql_file)
- {
- list($file_main, $file_sub, $file_fix, $file_type) = explode('.', $sql_file);
- $file_version_number = $this->calculateVersionNumber($file_main, $file_sub, $file_fix);
- if($file_version_number <= $shop_version_number || $file_version_number > $server_version_number)
- {
- unset($sql_files[$id]);
- }
- }
- if(!empty($sql_files))
- {
- $this->transactionBegin();
- //variable needed to only rollback in case there was a db update
- $db_update = true;
- $db_response = $this->doDbUpdate($sql_files);
- $db_status = $db_response['status'];
- $db_rollback = $db_response['commit'];
- }
- }
- else
- {
- //...
- }
- if($db_status == -2)
- {
- //...
- }
- else if($db_status == -1)
- {
- //...
- $error = $this->lang->get_lang('t_error_sql_update', 'Fehler! Das Update konnte aufgrund eines Datenbankfehlers nicht durchgeführt werden.');
- }
- else if($db_status == 0)
- {
- //...
- }
- if($db_status == 0 || $db_status == 1 || $db_status == -2)
- {
- $file_status = $this->copyFiles();
- if($file_status)
- {
- $worker_files = array_diff(scandir(self::$update_worker_dir), array('.', '..'));
- if(!empty($worker_files))
- {
- foreach($worker_files as $file)
- {
- list($file_main, $file_sub, $file_fix, $file_type) = explode('.', $file);
- $file_version_number = $this->calculateVersionNumber($file_main, $file_sub, $file_fix);
- if($file_version_number <= $shop_version_number || $file_version_number > $server_version_number)
- {
- //...
- }
- else
- {
- //...
- }
- }
- }
- else
- {
- //...
- }
- if($db_status !== -2 && $db_rollback === false)//when the rollback is false we do have a transaction to end
- {
- try
- {
- $this->transactionEnd();
- }
- catch(Exception $e)
- {
- //...
- }
- }
- }
- else
- {
- $file_error = true;
- $error = $this->lang->get_lang('t_error_copy_files', 'Fehler beim kopieren der Dateien.');
- }
- }
- }
- else
- {
- $error = $this->lang->get_lang('t_error_extracting_update', 'Fehler! Das Update wurde nicht richtig entpackt.');
- }
- }
- else
- {
- $error = $this->lang->get_lang('t_error_creating_backup', 'Fehler! Das Backup konnte nicht erstellt werden. Bitte sorgen Sie für genug freien Speicher damit das Backup vom Shop erstellt werden kann.');
- }
- }
- else
- {
- $error = $this->lang->get_lang('t_error_loading_update', 'Fehler! Das Update wurde leider nicht richtig geladen bitte versuchen Sie es später nochmal.');
- }
- }
- else
- {
- $error = $this->lang->get_lang('t_not_enough_space', 'Fehler! Es steht leider nicht genug Speicher für ein Update zur Verfügung.');
- }
- }
- else
- {
- //...
- }
- if($error)
- {
- if($db_update)
- {
- $this->transactionCancel();
- if($db_rollback) //implicit commit detected rollback ...
- {
- rename($_SERVER['DOCUMENT_ROOT'] . '/shop_db.php', $_SERVER['DOCUMENT_ROOT'] . '/shop_db.sql');
- exec('mysql --host=mysql5.dr-webshops.de --user=' . DB_USERNAME . ' --password=' . DB_PASSWORD . ' ' . DB_DATABASE . ' < ' . $_SERVER['DOCUMENT_ROOT'] . '/shop_db.sql');
- }
- }
- if($file_error)
- {
- //when there is a file error do a complete restore
- $this->restoreBackup();
- }
- else if($zip_status)
- {
- //an other error occured after we created an backup now we have to delete it
- unlink(self::$local_backup_archive_path . 'shop_backup.zip');
- }
- }
- else
- {
- //generating the htaccess
- $this->generateHtacess();
- $this->setShopVersion(join('.', $server_version));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement