Example #1
0
 public function testAbsoluteConversion()
 {
     $path = rex_path::absolute('c:/abc/../def/./xy');
     $this->assertEquals($this->path('c:/def/xy'), $path, 'resolves .. and .');
     $path = rex_path::absolute('c:\\abc\\..\\def\\.\\xy');
     $this->assertEquals($this->path('c:\\def\\xy'), $path, 'resolves .. and .');
 }
Example #2
0
 /**
  * Importiert das Tar-Archiv $filename in den Ordner /files.
  *
  * @param string $filename Pfad + Dateinamen zum Tar-Archiv
  *
  * @return array Gibt ein Assoc. Array zurück.
  *               'state' => boolean (Status ob fehler aufgetreten sind)
  *               'message' => Evtl. Status/Fehlermeldung
  */
 public static function importFiles($filename)
 {
     $return = [];
     $return['state'] = false;
     if ($filename == '' || substr($filename, -7, 7) != '.tar.gz') {
         $return['message'] = rex_i18n::msg('backup_no_import_file_chosen') . '<br />';
         return $return;
     }
     // Ordner /files komplett leeren
     rex_dir::deleteFiles(rex_path::media());
     $tar = new rex_backup_tar();
     // ----- EXTENSION POINT
     $tar = rex_extension::registerPoint(new rex_extension_point('BACKUP_BEFORE_FILE_IMPORT', $tar));
     // require import skript to do some userside-magic
     self::importScript(str_replace('.tar.gz', '.php', $filename), self::IMPORT_ARCHIVE, self::IMPORT_EVENT_PRE);
     $tar->openTAR($filename);
     if (!$tar->extractTar()) {
         $msg = rex_i18n::msg('backup_problem_when_extracting') . '<br />';
         if (count($tar->getMessages()) > 0) {
             $msg .= rex_i18n::msg('backup_create_dirs_manually') . '<br />';
             foreach ($tar->getMessages() as $_message) {
                 $msg .= rex_path::absolute($_message) . '<br />';
             }
         }
     } else {
         $msg = rex_i18n::msg('backup_file_imported') . '<br />';
     }
     // ----- EXTENSION POINT
     $tar = rex_extension::registerPoint(new rex_extension_point('BACKUP_AFTER_FILE_IMPORT', $tar));
     // require import skript to do some userside-magic
     self::importScript(str_replace('.tar.gz', '.php', $filename), self::IMPORT_ARCHIVE, self::IMPORT_EVENT_POST);
     $return['state'] = true;
     $return['message'] = $msg;
     return $return;
 }