* @link http://www.oxidmodule.com */ namespace D3\DataWizard\Application\Model\ExportRenderer; use League\Csv\CannotInsertRecord; use League\Csv\EncloseField; use League\Csv\Exception; use League\Csv\Writer; use OxidEsales\Eshop\Core\Registry; class Csv implements RendererInterface { /** * @param $rows * @param $fieldNames * * @return string * @throws Exception * @throws CannotInsertRecord */ public function getContent($rows, $fieldNames): string { $csv = $this->getCsv(); $csv->insertOne($fieldNames); $csv->insertAll($rows); return $csv->getContent(); } public function getFileExtension(): string { return 'csv'; } /** * @return Writer * @throws Exception */ protected function getCsv(): Writer { $csv = Writer::createFromString(); EncloseField::addTo($csv, "\t\x1f"); $sEncloser = Registry::getConfig()->getConfigParam('sGiCsvFieldEncloser'); if (false == $sEncloser) { $sEncloser = '"'; } $csv->setEnclosure($sEncloser); $sDelimiter = Registry::getConfig()->getConfigParam('sCSVSign'); if (false == $sDelimiter) { $sDelimiter = ';'; } $csv->setDelimiter($sDelimiter); return $csv; } }