/** * Get the export fields as array. * * @return array */ public function getExportFields() { if (!\Input::get('id')) { return array(); } $arrFields = array(); $systemColumns = \Leads\Leads::getSystemColumns(); foreach ($systemColumns as $k => $systemColumn) { $arrFields[$k] = $systemColumn['name']; } $objFields = \Database::getInstance()->prepare("SELECT * FROM tl_form_field WHERE leadStore!='' AND pid=(SELECT pid FROM tl_lead_export WHERE id=?)")->execute(Input::get('id')); while ($objFields->next()) { $strLabel = $objFields->name; // Use the field label if ($objFields->label != '') { $strLabel = $objFields->label . ' [' . $objFields->name . ']'; } $arrFields[$objFields->id] = $strLabel; } return $arrFields; }
/** * Prepares the default export configuration according to the configuration. * * @param \Database\Result $config * @param DataCollector $dataCollector * @return array */ protected function prepareDefaultExportConfig($config, DataCollector $dataCollector) { $columnConfig = array(); // Config: all if ('all' === $config->export) { // Add base information columns (system columns) foreach (Leads::getSystemColumns() as $systemColumn) { $columnConfig[] = $systemColumn; } // Add export data column config. foreach ($dataCollector->getFieldsData() as $fieldId => $fieldConfig) { $fieldConfig = $this->handleContaoSpecificConfig($fieldConfig); $fieldConfig['value'] = 'all'; $columnConfig[] = $fieldConfig; } return $columnConfig; } // We do this here so we don't have to do it in the loop $fieldsData = $dataCollector->getFieldsData(); // Config: tokens if ('tokens' === $config->export) { $allFieldsConfig = array(); foreach ($fieldsData as $fieldConfig) { $allFieldsConfig[] = $this->handleContaoSpecificConfig($fieldConfig); } foreach ($config->tokenFields as $column) { $column = array_merge($column, array('allFieldsConfig' => $allFieldsConfig)); $columnConfig[] = $column; } return $columnConfig; } // Config: custom $systemColumns = Leads::getSystemColumns(); foreach ($config->fields as $column) { // System column if (in_array($column['field'], array_keys($systemColumns))) { $columnConfig[] = $systemColumns[$column['field']]; } else { // Skip non existing fields if (!isset($fieldsData[$column['field']])) { continue; } // Merge form field config with custom export config $fieldConfig = array_merge($fieldsData[$column['field']], $column); $fieldConfig = $this->handleContaoSpecificConfig($fieldConfig); $columnConfig[] = $fieldConfig; } } return $columnConfig; }