/**
  * Exports based on Excel format.
  *
  * @param \Database\Result $config
  * @param array|null       $ids
  * @param string           $format
  */
 protected function exportWithFormat($config, $ids, $format)
 {
     $dataCollector = $this->prepareDefaultDataCollector($config, $ids);
     $reader = new ArrayReader($dataCollector->getExportData());
     if ($config->headerFields) {
         $reader->setHeaderFields($this->prepareDefaultHeaderFields($config, $dataCollector));
     }
     $row = new Row($config, $this->prepareDefaultExportConfig($config, $dataCollector));
     if ($config->useTemplate) {
         $this->exportWithTemplate($config, $reader, $row, $format);
     } else {
         $this->exportWithoutTemplate($config, $reader, $row, $format);
     }
 }
Beispiel #2
0
 /**
  * Exports a given set of data row ids using a given configuration.
  *
  * @param \Database\Result $config
  * @param array|null       $ids
  *
  * @throws ExportFailedException
  */
 public function export($config, $ids = null)
 {
     $dataCollector = $this->prepareDefaultDataCollector($config, $ids);
     $reader = new ArrayReader($dataCollector->getExportData());
     $writer = new CsvFileWriter('system/tmp/' . File::getName($config));
     // Add header fields
     if ($config->headerFields) {
         $reader->setHeaderFields($this->prepareDefaultHeaderFields($config, $dataCollector));
         $writer->enableHeaderFields();
     }
     $row = new Row($config, $this->prepareDefaultExportConfig($config, $dataCollector));
     $writer->setRowCallback(function ($data) use($row) {
         return $row->compile($data);
     });
     $this->handleDefaultExportResult($writer->writeFrom($reader));
     $this->updateLastRun($config);
     $objFile = new \File($writer->getFilename());
     $objFile->sendToBrowser();
 }
Beispiel #3
0
 /**
  * Get the export fields
  *
  * @param object
  * @param array
  * @return ArrayReader
  *
  * @deprecated Use the DataCollector class instead.
  */
 protected function getExportData($objConfig, $arrIds = null)
 {
     $dataCollector = new DataCollector($objConfig->master);
     // Limit the fields
     if ($objConfig->export != 'all') {
         $arrLimitFields = array_keys($objConfig->fields);
         $dataCollector->setFieldIds(array_map('intval', $arrLimitFields));
     }
     if (null !== $arrIds) {
         $dataCollector->setLeadDataIds($arrIds);
     }
     $objReader = new ArrayReader($dataCollector->getExportData());
     // Add header fields
     if ($objConfig->headerFields) {
         $arrHeader = array();
         // Add base information columns
         if ($objConfig->export == 'all') {
             \System::loadLanguageFile('tl_lead_export');
             $arrHeader[] = $GLOBALS['TL_LANG']['tl_lead_export']['field_form'];
             $arrHeader[] = $GLOBALS['TL_LANG']['tl_lead_export']['field_created'];
             $arrHeader[] = $GLOBALS['TL_LANG']['tl_lead_export']['field_member'];
         } else {
             if ($objConfig->fields['_form']) {
                 $arrHeader[] = $objConfig->fields['_form']['name'];
             }
             if ($objConfig->fields['_created']) {
                 $arrHeader[] = $objConfig->fields['_created']['name'];
             }
             if ($objConfig->fields['_member']) {
                 $arrHeader[] = $objConfig->fields['_member']['name'];
             }
         }
         // Add export data header fields
         foreach ($dataCollector->getHeaderFields() as $fieldId => $label) {
             // Use a custom header field
             if ($objConfig->fields[$fieldId]['name'] != '') {
                 $arrHeader[] = $objConfig->fields[$fieldId]['name'];
             } else {
                 $arrHeader[] = $label;
             }
         }
         $objReader->setHeaderFields($arrHeader);
     }
     return $objReader;
 }