Merge #17814 - Fix column names option for CSV Export

Pull-request: #17814
Ref: #14076
Ref: #14007

Signed-off-by: William Desportes <williamdes@wdes.fr>
This commit is contained in:
William Desportes 2022-11-25 21:23:18 +01:00
commit 997877a14f
No known key found for this signature in database
GPG Key ID: 90A0EF1B8251A889
5 changed files with 13 additions and 17 deletions

View File

@ -1011,7 +1011,7 @@ final class Export
private function setCsvColumns(array $export): bool
{
if (! isset($export['csv_columns'])) {
return false;
return true;
}
return (bool) $export['csv_columns'];

View File

@ -105,10 +105,6 @@ class ExportCsv extends ExportPlugin
public function exportHeader(): bool
{
global $what, $csv_terminated, $csv_separator, $csv_enclosed, $csv_escaped;
//Enable columns names by default for CSV
if ($what === 'csv') {
$GLOBALS['csv_columns'] = 'yes';
}
// Here we just prepare some values for export
if ($what === 'excel') {
@ -129,7 +125,7 @@ class ExportCsv extends ExportPlugin
$csv_enclosed = '"';
$csv_escaped = '"';
if (isset($GLOBALS['excel_columns'])) {
$GLOBALS['csv_columns'] = 'yes';
$GLOBALS['csv_columns'] = true;
}
} else {
if (empty($csv_terminated) || mb_strtolower($csv_terminated) === 'auto') {
@ -226,7 +222,7 @@ class ExportCsv extends ExportPlugin
$fields_cnt = $result->numFields();
// If required, get fields name at the first line
if (isset($GLOBALS['csv_columns'])) {
if (isset($GLOBALS['csv_columns']) && $GLOBALS['csv_columns']) {
$schema_insert = '';
foreach ($result->getFieldNames() as $col_as) {
if (! empty($aliases[$db]['tables'][$table]['columns'][$col_as])) {

View File

@ -1677,7 +1677,7 @@ $cfg['Export']['texytext_null'] = 'NULL';
/**
* @global boolean $cfg['Export']['csv_columns']
*/
$cfg['Export']['csv_columns'] = false;
$cfg['Export']['csv_columns'] = true;
/**
* @global string $cfg['Export']['csv_structure_or_data']

View File

@ -48,7 +48,7 @@ class ExportTest extends TestCase
'texytext_structure_or_data' => 'structure_and_data',
'texytext_columns' => false,
'texytext_null' => 'NULL',
'csv_columns' => false,
'csv_columns' => true,
'csv_structure_or_data' => 'data',
'csv_null' => 'NULL',
'csv_separator' => ',',
@ -193,7 +193,7 @@ class ExportTest extends TestCase
['texytext_structure_or_data', null, 'structure_and_data'],
['texytext_columns', null, false],
['texytext_null', null, 'NULL'],
['csv_columns', null, false],
['csv_columns', null, true],
['csv_structure_or_data', null, 'data'],
['csv_null', null, 'NULL'],
['csv_separator', null, ','],
@ -305,7 +305,7 @@ class ExportTest extends TestCase
['texytext_structure_or_data', 'structure', 'structure'],
['texytext_columns', false, false],
['texytext_null', 'test', 'test'],
['csv_columns', false, false],
['csv_columns', true, true],
['csv_structure_or_data', 'structure', 'structure'],
['csv_null', 'test', 'test'],
['csv_separator', 'test', 'test'],
@ -409,7 +409,7 @@ class ExportTest extends TestCase
['htmlword_columns', true, true],
['texytext_structure_or_data', 'data', 'data'],
['texytext_columns', true, true],
['csv_columns', true, true],
['csv_columns', false, false],
['csv_structure_or_data', 'data', 'data'],
['csv_removeCRLF', true, true],
['excel_columns', false, false],

View File

@ -233,13 +233,13 @@ class ExportCsvTest extends AbstractTestCase
$this->assertEquals('"', $GLOBALS['csv_escaped']);
$this->assertEquals('yes', $GLOBALS['csv_columns']);
$this->assertEquals(true, $GLOBALS['csv_columns']);
// case 2
$GLOBALS['excel_edition'] = 'mac_excel2003';
unset($GLOBALS['excel_columns']);
$GLOBALS['csv_columns'] = 'no';
$GLOBALS['csv_columns'] = false;
$this->assertTrue(
$this->object->exportHeader()
@ -253,7 +253,7 @@ class ExportCsvTest extends AbstractTestCase
$this->assertEquals('"', $GLOBALS['csv_escaped']);
$this->assertEquals('no', $GLOBALS['csv_columns']);
$this->assertEquals(false, $GLOBALS['csv_columns']);
// case 3
@ -271,7 +271,7 @@ class ExportCsvTest extends AbstractTestCase
$this->assertEquals('"', $GLOBALS['csv_escaped']);
$this->assertEquals('no', $GLOBALS['csv_columns']);
$this->assertEquals(false, $GLOBALS['csv_columns']);
// case 4
@ -353,7 +353,7 @@ class ExportCsvTest extends AbstractTestCase
public function testExportData(): void
{
// case 1
$GLOBALS['csv_columns'] = 'yes';
$GLOBALS['csv_columns'] = true;
$GLOBALS['csv_terminated'] = ';';
$GLOBALS['output_kanji_conversion'] = false;