From a9484e5c904c40494cb387dab899633baa44637f Mon Sep 17 00:00:00 2001 From: Stephen Cameron Date: Mon, 31 May 2021 09:05:51 +0200 Subject: [PATCH] Fix problem with missing filename when post is in draft mode. WIP #3211 @0.5 --- src/Elementor/Translation.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Elementor/Translation.php b/src/Elementor/Translation.php index 97023d9..ba11be4 100644 --- a/src/Elementor/Translation.php +++ b/src/Elementor/Translation.php @@ -580,7 +580,9 @@ class Translation $spreadsheet->getActiveSheet()->getColumnDimension('E')->setWidth(70); // Translation // Rename worksheet - $spreadsheet->getActiveSheet()->setTitle(substr($this->post->post_name,0,30)); // 31 char maximum for sheet title + // We can't rely on post_name being set (eg. on drafts) so we fallback to the post title + $sheet_title = !empty($this->post->post_name) ? $this->post->post_name : sanitize_title($this->post->post_title); + $spreadsheet->getActiveSheet()->setTitle(substr($sheet_title,0,30)); // 31 char maximum for sheet title // Set active sheet index to the first sheet, so Excel opens this as the first sheet $spreadsheet->setActiveSheetIndex(0); @@ -753,10 +755,11 @@ class Translation public function export_XLS($id) { $spreadsheet = $this->prepare_spreadsheet($id); + $filename = !empty($this->post->post_name) ? $this->post->post_name : sanitize_title($this->post->post_title); // Redirect output to the client's web browser (xls) header('Content-Type: application/vnd.ms-excel'); - header('Content-Disposition: attachment;filename="'. $this->post->post_name .'.xls"'); + header('Content-Disposition: attachment;filename="'. $filename .'.xls"'); header('Cache-Control: max-age=0'); $writer = IOFactory::createWriter($spreadsheet, 'Xls'); -- 2.39.5