You are here

public function ContentExportForm::submitForm in Content Export CSV 8

*

Overrides FormInterface::submitForm

File

src/Form/ContentExportForm.php, line 41

Class

ContentExportForm

Namespace

Drupal\content_export_csv\Form

Code

public function submitForm(array &$form, FormStateInterface $form_state) {
  global $base_url;
  $export_object = new ContentExportController();
  $nodeType = $form_state
    ->getValue('content_type_list');
  $csvData = $export_object
    ->getNodeCsvData($nodeType);
  $private_path = PrivateStream::basepath();
  $public_path = PublicStream::basepath();
  $file_base = $private_path ? $private_path : $public_path;
  $filename = 'content_export' . time() . '.csv';
  $filepath = $file_base . '/' . $filename;
  $csvFile = fopen($filepath, "w");
  $fieldNames = implode(',', $export_object
    ->getValidFieldList($nodeType));
  fwrite($csvFile, $fieldNames . "\n");
  foreach ($csvData as $csvDataRow) {
    fwrite($csvFile, $csvDataRow . "\n");
  }
  fclose($csvFile);
  header('Content-Type: text/csv');
  header('Content-Disposition: attachment; filename="' . basename($filepath) . '";');
  header('Content-Length: ' . filesize($filepath));
  readfile($filepath);
  unlink($filepath);
  exit;
}