Ejemplo n.º 1
0
 function installFTP($ftp_root)
 {
     $ftp_root = "/" . trim($ftp_root, "/") . "/";
     // Create backups folder
     $this->Connection->createDirectory($ftp_root . "backups/");
     // Doing a core upgrade
     if ($this->Extension === false) {
         // Backup database
         BigTreeAdmin::backupDatabase(SERVER_ROOT . "cache/backup.sql");
         $this->Connection->rename($ftp_root . "cache/backup.sql", $ftp_root . "backups/core-" . BIGTREE_VERSION . "/backup.sql");
         // Backup old core
         $this->Connection->rename($ftp_root . "core/", $ftp_root . "backups/core-" . BIGTREE_VERSION . "/");
         // Move new core into place
         $this->Connection->rename($ftp_root . "cache/update/core/", $ftp_root . "core/");
         // Doing an extension upgrade
     } else {
         $extension = $this->Extension;
         // Create a backups folder for this extension
         $this->Connection->createDirectory($ftp_root . "backups/extensions/");
         $this->Connection->createDirectory($ftp_root . "backups/extensions/{$extension}/");
         // Read manifest file for current version
         $current_manifest = json_decode(file_get_contents(SERVER_ROOT . "extensions/{$extension}/manifest.json"), true);
         $old_version = $current_manifest["version"];
         // Get a unique directory name
         $old_version = BigTree::getAvailableFileName(SERVER_ROOT . "backups/extensions/{$extension}/", $old_version);
         // Move old extension into backups
         $this->Connection->rename($ftp_root . "extensions/{$extension}/", $ftp_root . "backups/extensions/{$extension}/{$old_version}/");
         // Move new extension into place
         $this->Connection->rename($ftp_root . "cache/update/", $ftp_root . "extensions/{$extension}/");
     }
     $this->cleanup();
 }