Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

Form Questions /

TableListField custom CSV not working?


2 Posts   1400 Views


Community Member, 33 Posts

15 December 2009 at 12:37am

Edited: 15/12/2009 12:37am


I have amended the CMS form for one of my pages to include a TableListField.

This works fine, it shows the 4 columns I have asked it to show for the records in table ProgrammeLaunch.

However, it is ignoring my custom query that is set for the CSV export (ie on the form I show just 4 fields, but in the CSV export I want to see more fields, but only the 4 fields listed for the form view are being exported. Here is the code:

class ProgrammeLaunchPage extends Page
static $db = array();

function getCMSFields() {
$fields = parent::getCMSFields();

return $fields;

* Returns the questionnaire answers as a TableListField
* @return TableListField
protected function getProgrammeLaunchAnswersAsTLF() {

// Fields to display at the top level
$fieldList = array(
'AttendeeName' => 'Name',
'AttendeeJobTitle' => 'Job Title',
'AttendeeCompany' => 'Company',
'LastEdited' => 'Submitted',

$tf = new TableListField('Responses', 'ProgrammeLaunch', $fieldList);

$tf->setFieldCasting(array('LastEdited' => 'Date->Nice'));

// what is user allowed to do?
$tf->setPermissions(array('show', 'export', 'delete', 'print')); // export permission allows CSV exporting

//Page navigation

// CSV output def
$customCsvQuery = new SQLQuery('*', 'ProgrammeLaunch', null, 'AttendeeName');


return $tf;


If I uncomment the die statement, the SQL produced is valid: SELECT * FROM ProgrammeLaunch ORDER BY AttendeeName

What am I missing?

Many thanks for any help


Community Member, 33 Posts

15 December 2009 at 12:49am

Edited: 15/12/2009 1:40am

I've found a solution, although it does not provide an explanation for the above, so if anyone can explain why the above does not work, I'd be very grateful.

Solution is to use $tf->setFieldListCsv($csvFieldList); instead, where $csvFieldList is an array of field names => field descriptions