public static function MetatagExport::downloadCsv in Metatag Import Export CSV 8
Batch 'finished' callback used to download csv.
File
- src/
MetatagExport.php, line 62
Class
- MetatagExport
- Class for batch process for metatag export.
Namespace
Drupal\metatag_import_export_csvCode
public static function downloadCsv($success, $results, $operations) {
$messenger = \Drupal::messenger();
if ($success) {
$delimeter = $results['delimeter'];
$filePath = "public://metatag_import_export_csv/";
$fileName = "metatag_import_export_csv__" . $results['entity_type'] . ".csv";
$fileUrl = $filePath . $fileName;
$response = new Response();
$response->headers
->set('Content-Type', 'text/csv');
$response->headers
->set('Content-Disposition', 'attachment;filename=' . $fileName);
$header = $results['tags'];
array_unshift($header, 'entity_id', 'entity_title', 'entity_bundle', 'entity_type', 'field_machine_name', 'alias');
if (!\Drupal::service('file_system')
->prepareDirectory($filePath, FileSystemInterface::CREATE_DIRECTORY)) {
$messenger
->addMessage(t('Unable to create directory in file system for error File. Check permissions and try again.'), 'error');
return;
}
$file = \Drupal::service('file_system')
->saveData('', $fileUrl, FileSystemInterface::EXISTS_REPLACE);
if (!$file) {
$messenger
->addMessage(t('Unable to write to file system. Check permissions and try again.'), 'error');
return;
}
$fp = fopen($file, 'w');
if (!$fp) {
$messenger
->addMessage(t('Unable open file for writing. Check permissions and try again.'), 'error');
return;
}
fputcsv($fp, $header, $delimeter);
foreach ($results['rows'] as $row) {
fputcsv($fp, $row, $delimeter);
}
fclose($fp);
$link = Link::fromTextAndUrl(t($fileName), Url::fromUri(file_create_url($fileUrl)));
$messenger
->addMessage(t('Download Csv : @args', [
'@args' => $link
->toString(),
]));
}
else {
$error_operation = reset($operations);
$messenger
->addMessage(t('An error occurred while processing @operation with arguments : @args', [
'@operation' => $error_operation[0],
'@args' => print_r($error_operation[0], TRUE),
]), 'error');
}
}