Ejemplo n.º 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;
 }
Ejemplo n.º 2
0
 public static function loadExistingImport($import_name)
 {
     // ----- vorhandenen Export importieren
     $err_msg = '';
     if ($import_name == '') {
         $err_msg .= '<p>' . rex_i18n::msg('setup_508') . '</p>';
     } else {
         $import_sql = rex_backup::getDir() . '/' . $import_name . '.sql';
         $import_archiv = rex_backup::getDir() . '/' . $import_name . '.tar.gz';
         // Nur hier zuerst die Addons installieren
         // Da sonst Daten aus dem eingespielten Export
         // Überschrieben würden
         // Da für das Installieren der Addons die rex_config benötigt wird,
         // mit overrideExisting() eine saubere, komplette Basis schaffen
         if ($err_msg == '') {
             $err_msg .= self::overrideExisting();
         }
         if ($err_msg == '') {
             $err_msg .= self::import($import_sql, $import_archiv);
         }
     }
     return $err_msg;
 }
Ejemplo n.º 3
0
$fragment->setVar('title', rex_i18n::msg('backup_export_db_caption'), false);
$fragment->setVar('content', $content, false);
$content = $fragment->parse('core/page/section.php');
echo $content;
$content = '<table class="table table-striped table-hover">
                <thead>
                    <tr>
                        <th class="rex-table-icon"></th>
                        <th>' . rex_i18n::msg('backup_filename') . '</th>
                        <th class="rex-table-width-5">' . rex_i18n::msg('backup_filesize') . '</th>
                        <th class="rex-table-width-5">' . rex_i18n::msg('backup_createdate') . '</th>
                        <th class="rex-table-action" colspan="3">' . rex_i18n::msg('backup_function') . '</th>
                    </tr>
                </thead>
                <tbody>';
$dir = rex_backup::getDir();
$folder = rex_backup::getBackupFiles('.tar.gz');
foreach ($folder as $file) {
    $filepath = $dir . '/' . $file;
    $filec = date('d.m.Y H:i', filemtime($filepath));
    $filesize = rex_file::formattedSize($filepath);
    $content .= '<tr>
                    <td class="rex-table-icon"><i class="rex-icon rex-icon-file-archive"></i></td>
                    <td data-title="' . rex_i18n::msg('backup_filename') . '">' . $file . '</td>
                    <td data-title="' . rex_i18n::msg('backup_filesize') . '">' . $filesize . '</td>
                    <td data-title="' . rex_i18n::msg('backup_createdate') . '">' . $filec . '</td>
                    <td class="rex-table-action"><a href="' . rex_url::currentBackendPage(['function' => 'fileimport', 'impname' => $file]) . '" title="' . rex_i18n::msg('backup_import_file') . '" data-confirm="' . rex_i18n::msg('backup_proceed_file_import') . '"><i class="rex-icon rex-icon-import"></i> ' . rex_i18n::msg('backup_to_import') . '</a></td>
                    <td class="rex-table-action"><a href="' . rex_url::currentBackendPage(['function' => 'download', 'impname' => $file]) . '" title="' . rex_i18n::msg('backup_download_file') . '"><i class="rex-icon rex-icon-download"></i> ' . rex_i18n::msg('backup_download') . '</a></td>
                    <td class="rex-table-action"><a href="' . rex_url::currentBackendPage(['function' => 'delete', 'impname' => $file]) . '" title="' . rex_i18n::msg('backup_delete_file') . '" data-confirm="' . rex_i18n::msg('backup_delete') . ' ?"><i class="rex-icon rex-icon-delete"></i> ' . rex_i18n::msg('backup_delete') . '</a></td>
                </tr>';
}
Ejemplo n.º 4
0
            if ($impname == '') {
                rex_file::delete($file_temp);
            }
        } else {
            $error = rex_i18n::msg('backup_file_could_not_be_uploaded') . ' ' . rex_i18n::msg('backup_you_have_no_write_permission_in', 'data/addons/backup/') . ' <br>';
        }
    }
} elseif ($function == 'fileimport') {
    // ------------------------------ FUNC FILEIMPORT
    if (isset($_FILES['FORM']) && $_FILES['FORM']['size']['importfile'] < 1 && $impname == '') {
        $error = rex_i18n::msg('backup_no_import_file_chosen') . '<br/>';
    } else {
        if ($impname == '') {
            $file_temp = rex_backup::getDir() . '/temp.tar.gz';
        } else {
            $file_temp = rex_backup::getDir() . '/' . $impname;
        }
        if ($impname != '' || @move_uploaded_file($_FILES['FORM']['tmp_name']['importfile'], $file_temp)) {
            $return = rex_backup::importFiles($file_temp);
            if ($return['state']) {
                $success = $return['message'];
            } else {
                $error = $return['message'];
            }
            // temp datei löschen
            if ($impname == '') {
                rex_file::delete($file_temp);
            }
        } else {
            $error = rex_i18n::msg('backup_file_could_not_be_uploaded') . ' ' . rex_i18n::msg('backup_you_have_no_write_permission_in', 'data/addons/backup/') . ' <br>';
        }
Ejemplo n.º 5
0
     case 2:
     case 3:
     case 4:
         $dbchecked[$createdb] = ' checked="checked"';
         break;
     default:
         $dbchecked[0] = ' checked="checked"';
 }
 // Vorhandene Exporte auslesen
 $sel_export = new rex_select();
 $sel_export->setName('import_name');
 $sel_export->setId('rex-form-import-name');
 $sel_export->setSize(1);
 $sel_export->setStyle('class="form-control rex-js-import-name"');
 $sel_export->setAttribute('onclick', 'checkInput(\'createdb_3\')');
 $export_dir = rex_backup::getDir();
 $exports_found = false;
 if (is_dir($export_dir)) {
     if ($handle = opendir($export_dir)) {
         $export_archives = [];
         $export_sqls = [];
         while (($file = readdir($handle)) !== false) {
             if ($file == '.' || $file == '..') {
                 continue;
             }
             $isSql = substr($file, strlen($file) - 4) == '.sql';
             $isArchive = substr($file, strlen($file) - 7) == '.tar.gz';
             if ($isSql) {
                 // cut .sql
                 $export_sqls[] = substr($file, 0, -4);
                 $exports_found = true;
Ejemplo n.º 6
0
if ($exportfilename == '') {
    $server = parse_url(rex::getServer(), PHP_URL_HOST);
    $exportfilename = strtolower($server) . '_rex' . rex::getVersion() . '_' . date('Ymd_Hi');
}
if (rex_post('export', 'bool')) {
    // ------------------------------ FUNC EXPORT
    $exportfilename = strtolower($exportfilename);
    $filename = preg_replace('@[^\\.a-z0-9_\\-]@', '', $exportfilename);
    if ($filename != $exportfilename) {
        $success = rex_i18n::msg('backup_filename_updated');
        $exportfilename = $filename;
    } 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';