From 41856a920e17b6eb1bb39e393c712b8cea137532 Mon Sep 17 00:00:00 2001 From: BENKE Charlie Date: Fri, 3 Jun 2016 23:41:32 +0200 Subject: [PATCH 1/4] if \n or \r we addquote too --- htdocs/core/modules/export/export_csv.modules.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/htdocs/core/modules/export/export_csv.modules.php b/htdocs/core/modules/export/export_csv.modules.php index e8977c11789..83de884e7c3 100644 --- a/htdocs/core/modules/export/export_csv.modules.php +++ b/htdocs/core/modules/export/export_csv.modules.php @@ -307,9 +307,12 @@ class ExportCsv extends ModeleExports //print $charset.' '.$newvalue."\n"; // Rule 1 CSV: No CR, LF in cells + $oldvalue=$newvalue; $newvalue=str_replace("\r",'',$newvalue); $newvalue=str_replace("\n",'\n',$newvalue); - + if($oldvalue != $newvalue) + $addquote=1; + // Rule 2 CSV: If value contains ", we must escape with ", and add " if (preg_match('/"/',$newvalue)) { From 2a8f17bc40744f9ea083098bf04aa9c98c39771c Mon Sep 17 00:00:00 2001 From: BENKE Charlie Date: Fri, 3 Jun 2016 23:58:37 +0200 Subject: [PATCH 2/4] Update export_csv.modules.php --- htdocs/core/modules/export/export_csv.modules.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/htdocs/core/modules/export/export_csv.modules.php b/htdocs/core/modules/export/export_csv.modules.php index 83de884e7c3..04b090f8827 100644 --- a/htdocs/core/modules/export/export_csv.modules.php +++ b/htdocs/core/modules/export/export_csv.modules.php @@ -299,7 +299,9 @@ class ExportCsv extends ModeleExports */ function csv_clean($newvalue, $charset) { + global $conf; $addquote=0; + // Rule Dolibarr: No HTML //print $charset.' '.$newvalue."\n"; @@ -308,10 +310,14 @@ class ExportCsv extends ModeleExports // Rule 1 CSV: No CR, LF in cells $oldvalue=$newvalue; - $newvalue=str_replace("\r",'',$newvalue); + $newvalue=str_replace("\r",'\r',$newvalue); $newvalue=str_replace("\n",'\n',$newvalue); - if($oldvalue != $newvalue) + if ($conf->global->USE_STRICT_CSV_RULES && $oldvalue != $newvalue) + { + // If strict use of CSV rules, we just add quote + $newvalue=$oldvalue; $addquote=1; + } // Rule 2 CSV: If value contains ", we must escape with ", and add " if (preg_match('/"/',$newvalue)) From 2f36611cad728c377adff5a247508457221d3e60 Mon Sep 17 00:00:00 2001 From: BENKE Charlie Date: Sat, 4 Jun 2016 19:22:15 +0200 Subject: [PATCH 3/4] Update export_csv.modules.php --- htdocs/core/modules/export/export_csv.modules.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/modules/export/export_csv.modules.php b/htdocs/core/modules/export/export_csv.modules.php index 04b090f8827..d11c2cb275f 100644 --- a/htdocs/core/modules/export/export_csv.modules.php +++ b/htdocs/core/modules/export/export_csv.modules.php @@ -312,7 +312,7 @@ class ExportCsv extends ModeleExports $oldvalue=$newvalue; $newvalue=str_replace("\r",'\r',$newvalue); $newvalue=str_replace("\n",'\n',$newvalue); - if ($conf->global->USE_STRICT_CSV_RULES && $oldvalue != $newvalue) + if (! empty($conf->global->USE_STRICT_CSV_RULES && $oldvalue != $newvalue) { // If strict use of CSV rules, we just add quote $newvalue=$oldvalue; From 7cd8e270cc632fe319961e133cc3477234ab8625 Mon Sep 17 00:00:00 2001 From: BENKE Charlie Date: Sat, 4 Jun 2016 19:25:32 +0200 Subject: [PATCH 4/4] Update export_csv.modules.php --- htdocs/core/modules/export/export_csv.modules.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/modules/export/export_csv.modules.php b/htdocs/core/modules/export/export_csv.modules.php index d11c2cb275f..58891ddd2c9 100644 --- a/htdocs/core/modules/export/export_csv.modules.php +++ b/htdocs/core/modules/export/export_csv.modules.php @@ -312,7 +312,7 @@ class ExportCsv extends ModeleExports $oldvalue=$newvalue; $newvalue=str_replace("\r",'\r',$newvalue); $newvalue=str_replace("\n",'\n',$newvalue); - if (! empty($conf->global->USE_STRICT_CSV_RULES && $oldvalue != $newvalue) + if (! empty($conf->global->USE_STRICT_CSV_RULES) && $oldvalue != $newvalue) { // If strict use of CSV rules, we just add quote $newvalue=$oldvalue;