public function execute() { $filename = $this->getParam('filename', self::DEFAULT_FILENAME); $filename = str_replace('%REX_SERVER', parse_url(rex::getServer(), PHP_URL_HOST), $filename); $filename = str_replace('%REX_VERSION', rex::getVersion(), $filename); $filename = strftime($filename); $file = $filename; $dir = rex_backup::getDir() . '/'; $ext = '.sql'; if (file_exists($dir . $file . $ext)) { $i = 1; while (file_exists($dir . $file . '_' . $i . $ext)) { ++$i; } $file = $file . '_' . $i; } if (rex_backup::exportDb($dir . $file . $ext)) { $message = $file . $ext . ' created'; if ($this->sendmail) { if (!rex_addon::get('phpmailer')->isAvailable()) { $this->setMessage($message . ', mail not sent (addon "phpmailer" isn\'t activated)'); return false; } $mail = new rex_mailer(); $mail->AddAddress($this->mailaddress); $mail->Subject = rex_i18n::msg('backup_mail_subject'); $mail->Body = rex_i18n::msg('backup_mail_body', rex::getServerName()); $mail->AddAttachment($dir . $file . $ext, $filename . $ext); if ($mail->Send()) { $this->setMessage($message . ', mail sent'); return true; } $this->setMessage($message . ', mail not sent'); return false; } $this->setMessage($message); return true; } $this->setMessage($file . $ext . ' not created'); return false; }
} else { $hasContent = false; $header = ''; $ext = $exporttype == 'sql' ? '.sql' : '.tar.gz'; $export_path = rex_backup::getDir() . '/'; if (file_exists($export_path . $filename . $ext)) { $i = 1; while (file_exists($export_path . $filename . '_' . $i . $ext)) { ++$i; } $filename = $filename . '_' . $i; } if ($exporttype == 'sql') { // ------------------------------ FUNC EXPORT SQL $header = 'plain/text'; $hasContent = rex_backup::exportDb($export_path . $filename . $ext, $EXPTABLES); // ------------------------------ /FUNC EXPORT SQL } elseif ($exporttype == 'files') { // ------------------------------ FUNC EXPORT FILES $header = 'tar/gzip'; if (empty($EXPDIR)) { $error = rex_i18n::msg('backup_please_choose_folder'); } else { $content = rex_backup::exportFiles($EXPDIR); $hasContent = rex_file::put($export_path . $filename . $ext, $content); } // ------------------------------ /FUNC EXPORT FILES } if ($hasContent) { if ($exportdl) { $filename = $filename . $ext;