data['page'] = [ 'id' => $page->id, ]; return $this->build(); } /** * @throws ZipExportException */ protected function build(): string { $this->data['exported_at'] = date(DATE_ATOM); $this->data['instance'] = [ 'version' => trim(file_get_contents(base_path('version'))), 'id_ciphertext' => encrypt('bookstack'), ]; $zipFile = tempnam(sys_get_temp_dir(), 'bszip-'); $zip = new ZipArchive(); $opened = $zip->open($zipFile, ZipArchive::CREATE); if ($opened !== true) { throw new ZipExportException('Failed to create zip file for export.'); } $zip->addFromString('data.json', json_encode($this->data)); $zip->addEmptyDir('files'); return $zipFile; } }