function postContent() { $this->adminGatekeeper(); // Flag that a site export has been requested \Idno\Core\Idno::site()->config()->export_last_requested = time(); \Idno\Core\Idno::site()->config()->export_in_progress = 1; \Idno\Core\Idno::site()->config()->save(); $this->forward(\Idno\Core\Idno::site()->config()->getDisplayURL() . 'admin/export/', false); ignore_user_abort(true); // This is dangerous, but we need export to continue session_write_close(); header('Connection: close'); header('Content-length: ' . (string) ob_get_length()); @ob_end_flush(); // Return output to the browser @ob_end_clean(); @flush(); sleep(10); // Pause set_time_limit(0); // Eliminate time limit - this could take a while // Remove the previous export file if (!empty(\Idno\Core\Idno::site()->config()->export_file_id)) { if ($file = File::getByID(\Idno\Core\Idno::site()->config()->export_file_id)) { $file->remove(); \Idno\Core\Idno::site()->config()->export_file_id = false; \Idno\Core\Idno::site()->config()->export_filename = false; \Idno\Core\Idno::site()->config()->save(); } } if ($path = Migration::createCompressedArchive()) { $filename = \Idno\Core\Idno::site()->config()->host . '.zip'; /* header('Content-disposition: attachment;filename=' . $filename); if ($fp = fopen($path, 'r')) { while ($content = fread($fp, 4096)) { echo $content; } } fclose($fp);*/ if ($file = File::createFromFile($path, $filename)) { @unlink($path); \Idno\Core\Idno::site()->config()->export_filename = $filename; \Idno\Core\Idno::site()->config()->export_file_id = $file; \Idno\Core\Idno::site()->config()->export_in_progress = 0; \Idno\Core\Idno::site()->config()->save(); $mail = new Email(); $mail->setHTMLBodyFromTemplate('admin/export'); $mail->setTextBodyFromTemplate('admin/export'); $mail->addTo(\Idno\Core\Idno::site()->session()->currentUser()->email); $mail->setSubject("Your data export is ready"); $mail->send(); } exit; } }
function postContent() { $this->gatekeeper(); set_time_limit(0); header('Content-type: text/rss'); header('Content-disposition: attachment; filename=user_export.rss'); $hide_private = true; if ($private = $this->getInput('allposts')) { $hide_private = false; } echo Migration::getExportRSS($hide_private, Idno::site()->session()->currentUserUUID()); exit; }
function postContent() { $this->adminGatekeeper(); set_time_limit(0); header('Content-type: text/rss'); header('Content-disposition: attachment; filename=export.rss'); $hide_private = true; if ($private = $this->getInput('allposts')) { $hide_private = false; } echo Migration::getExportRSS($hide_private); exit; }
function postContent() { $this->adminGatekeeper(); define('KNOWN_NOMENTION', true); $import_type = $this->getInput('import_type'); if (empty($_FILES['import'])) { \Idno\Core\Idno::site()->session()->addMessage("You need to upload an import file to continue."); } else { if (!($xml = @file_get_contents($_FILES['import']['tmp_name']))) { \Idno\Core\Idno::site()->session()->addMessage("We couldn't open the file you uploaded. Please try again."); } else { \Idno\Core\Idno::site()->session()->addMessage("Your {$import_type} import has started."); } } session_write_close(); $this->forward(\Idno\Core\Idno::site()->config()->getDisplayURL() . 'admin/import/', false); ignore_user_abort(true); // This is dangerous, but we need export to continue header('Connection: close'); header('Content-length: ' . (string) ob_get_length()); @ob_end_flush(); // Return output to the browser @ob_end_clean(); @flush(); sleep(10); // Pause set_time_limit(0); // Eliminate time limit - this could take a while $imported = false; switch (strtolower($import_type)) { case 'blogger': $imported = Migration::importBloggerXML($xml); break; case 'wordpress': $imported = Migration::importWordPressXML($xml); break; } if ($imported) { $mail = new Email(); $mail->setHTMLBodyFromTemplate('admin/import'); $mail->setTextBodyFromTemplate('admin/import'); $mail->addTo(\Idno\Core\Idno::site()->session()->currentUser()->email); $mail->setSubject("Your data import has completed"); $mail->send(); } }