Пример #1
0
 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;
     }
 }
Пример #2
0
 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;
 }
Пример #3
0
 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;
 }
Пример #4
0
 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();
     }
 }