Merge branch 'develop' into wip/laravel-6

This commit is contained in:
Luke Towers 2020-03-31 09:54:00 -06:00
commit ff02e59740
5 changed files with 31 additions and 5 deletions

View File

@ -11,6 +11,7 @@ use Backend\Behaviors\ImportExportController\TranscodeFilter;
use Illuminate\Database\Eloquent\MassAssignmentException;
use League\Csv\Reader as CsvReader;
use League\Csv\Writer as CsvWriter;
use October\Rain\Parse\League\EscapeFormula as CsvEscapeFormula;
use ApplicationException;
use SplTempFileObject;
use Exception;
@ -624,6 +625,9 @@ class ImportExportController extends ControllerBehavior
$csv->setEnclosure($options['enclosure']);
$csv->setEscape($options['escape']);
// Temporary until upgrading to league/csv >= 9.1.0 (will be $csv->addFormatter($formatter))
$formatter = new CsvEscapeFormula();
/*
* Add headers
*/
@ -657,6 +661,10 @@ class ImportExportController extends ControllerBehavior
}
$record[] = $value;
}
// Temporary until upgrading to league/csv >= 9.1.0
$record = $formatter($record);
$csv->insertOne($record);
}

View File

@ -20,11 +20,19 @@ class TranscodeFilter extends php_user_filter
public function filter($in, $out, &$consumed, $closing)
{
while ($resource = stream_bucket_make_writeable($in)) {
$resource->data = @mb_convert_encoding(
$resource->data,
$this->encodingTo,
$this->encodingFrom
);
if (in_array($this->encodingFrom, mb_list_encodings())) {
$resource->data = @mb_convert_encoding(
$resource->data,
$this->encodingTo,
$this->encodingFrom
);
} else {
$resource->data = @iconv(
$this->encodingFrom,
$this->encodingTo,
$resource->data
);
}
$consumed += $resource->datalen;

View File

@ -550,6 +550,7 @@ return [
'iso_8859_13' => 'ISO-8859-13 (Latin-7, Baltic Rim)',
'iso_8859_14' => 'ISO-8859-14 (Latin-8, Celtic)',
'iso_8859_15' => 'ISO-8859-15 (Latin-9, Western European revision with euro sign)',
'windows_1250' => 'Windows-1250 (CP1250, Central and Eastern European)',
'windows_1251' => 'Windows-1251 (CP1251)',
'windows_1252' => 'Windows-1252 (CP1252)',
],

View File

@ -5,6 +5,7 @@ use Lang;
use Model;
use Response;
use League\Csv\Writer as CsvWriter;
use October\Rain\Parse\League\EscapeFormula as CsvEscapeFormula;
use ApplicationException;
use SplTempFileObject;
@ -111,6 +112,9 @@ abstract class ExportModel extends Model
$csv->setEscape($options['escape']);
}
// Temporary until upgrading to league/csv >= 9.1.0 (will be $csv->addFormatter($formatter))
$formatter = new CsvEscapeFormula();
/*
* Add headers
*/
@ -124,6 +128,10 @@ abstract class ExportModel extends Model
*/
foreach ($results as $result) {
$data = $this->matchDataToColumns($result, $columns);
// Temporary until upgrading to league/csv >= 9.1.0
$data = $formatter($data);
$csv->insertOne($data);
}

View File

@ -231,6 +231,7 @@ abstract class ImportModel extends Model
'iso-8859-13',
'iso-8859-14',
'iso-8859-15',
'Windows-1250',
'Windows-1251',
'Windows-1252'
];