From: Stephen Cameron Date: Mon, 31 May 2021 07:05:51 +0000 (+0200) Subject: Fix problem with missing filename when post is in draft mode. WIP #3211 @0.5 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=a9484e5c904c40494cb387dab899633baa44637f;p=cube-wp-translate.git Fix problem with missing filename when post is in draft mode. WIP #3211 @0.5 --- 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');