Exemple #1
0
 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;
 }
Exemple #2
0
 } 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;