Skip to content

Commit 205a6d5

Browse files
authored
Merge pull request #1628 from alex001x/fix/report_projects_all_blank
fix(report_projects): prevent blank page when projectid=all by saniti…
2 parents 93ed5f5 + a4284c2 commit 205a6d5

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

report_projects.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,16 @@
121121

122122
if ( sizeof( $prCabList ) + sizeof( $prDevList ) > 0 ) {
123123
$sheet = $workBook->createSheet(null);
124-
$sheet->setTitle( $p->ProjectName );
124+
// Sanitize worksheet title to avoid PhpSpreadsheet exceptions
125+
// Titles must be <= 31 chars and cannot contain: : \ / ? * [ ]
126+
if (class_exists('\\PhpOffice\\PhpSpreadsheet\\Worksheet\\Worksheet') && method_exists('\\PhpOffice\\PhpSpreadsheet\\Worksheet\\Worksheet','sanitizeSheetTitle')) {
127+
$safeTitle = \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet::sanitizeSheetTitle($p->ProjectName);
128+
} else {
129+
$safeTitle = preg_replace('/[:\\\\\/?*\[\]]/',' ', (string)$p->ProjectName);
130+
}
131+
$safeTitle = mb_substr($safeTitle, 0, 31);
132+
$safeTitle = (trim($safeTitle) !== '') ? $safeTitle : __('Project');
133+
$sheet->setTitle( $safeTitle );
125134

126135
$sheet->setCellValue( 'A1', __("Project Name:"));
127136
$sheet->setCellValue( 'B1', $p->ProjectName );

0 commit comments

Comments
 (0)