$svn_folder = param('svn_folder', 'string', '/'); $svn_user = param('svn_user', 'string', false); $svn_password = param('svn_password', 'string', false); $svn_revision = param('svn_revision', 'integer'); $UserSettings->set('svn_upgrade_url', $svn_url); $UserSettings->set('svn_upgrade_folder', $svn_folder); $UserSettings->set('svn_upgrade_user', $svn_user); $UserSettings->set('svn_upgrade_revision', $svn_revision); $UserSettings->dbupdate(); $success = param_check_not_empty('svn_url', T_('Please enter the URL of repository')); $success = $success && param_check_regexp('svn_folder', '#/blogs/$#', T_('A correct SVN folder path must ends with "/blogs/')); if (!$success) { $action = 'start'; break; } $success = prepare_maintenance_dir($upgrade_path, true); if ($success) { // Set maximum execution time set_max_execution_time(2400); // 60 minutes load_class('_ext/phpsvnclient/phpsvnclient.php', 'phpsvnclient'); $phpsvnclient = new phpsvnclient($svn_url, $svn_user, $svn_password); // Get an error if it was during connecting to svn server $svn_error = $phpsvnclient->getError(); if (!empty($svn_error) || $phpsvnclient->getVersion() < 1) { // Some errors or Incorrect version echo '<p class="red">' . T_('Unable to get a repository version, probably URL of repository is incorrect.') . '</p>'; evo_flush(); $action = 'start'; break; // Stop an upgrade from SVN
/** * Start backup */ function start_backup() { global $basepath, $backup_path, $servertimenow; // Create current backup path $cbackup_path = $backup_path . date('Y-m-d-H-i-s', $servertimenow) . '/'; echo '<p>' . sprintf(T_('Starting backup to: «%s» ...'), $cbackup_path) . '</p>'; evo_flush(); // Prepare backup directory $success = prepare_maintenance_dir($backup_path, true); // Backup directories and files if ($success && $this->has_included($this->backup_paths)) { $backup_files_path = $this->pack_backup_files ? $cbackup_path : $cbackup_path . 'files/'; // Prepare files backup directory if ($success = prepare_maintenance_dir($backup_files_path, false)) { // We can backup files $success = $this->backup_files($backup_files_path); } } // Backup database if ($success && $this->has_included($this->backup_tables)) { $backup_tables_path = $this->pack_backup_files ? $cbackup_path : $cbackup_path . 'db/'; // Prepare database backup directory if ($success = prepare_maintenance_dir($backup_tables_path, false)) { // We can backup database $success = $this->backup_database($backup_tables_path); } } if ($success) { echo '<p>' . sprintf(T_('Backup complete. Directory: «%s»'), $cbackup_path) . '</p>'; evo_flush(); return true; } @rmdir_r($cbackup_path); return false; }