Skip to content

Instantly share code, notes, and snippets.

@AndrewHaine
Last active April 10, 2017 21:28
Show Gist options
  • Save AndrewHaine/f2ce342b17c0b18d3950a79b0b56e09e to your computer and use it in GitHub Desktop.
Save AndrewHaine/f2ce342b17c0b18d3950a79b0b56e09e to your computer and use it in GitHub Desktop.
Silverstripe UserForms extension for custom submission summary fields
UserDefinedForm:
extensions:
- UserformsSubmissionExtension
EditableFormField:
extensions:
- EditableFormFieldExtension
class EditableFormFieldExtension extends Extension
{
private static $db =
[
'ShowInSummary' => 'Boolean'
];
/**
* Update Fields
* @return FieldList
*/
public function updateCMSFields(FieldList $fields)
{
$fields->addFieldToTab(
'Root.Main',
CheckboxSetField::create('ShowInSummary', 'Show In Table', ['1' => '']),
'Name'
);
return $fields;
}
}
<?php
class UserformsSubmissionExtension extends DataExtension
{
/**
* Update Fields
* @return FieldList
*/
public function updateCMSFields(FieldList $fields)
{
$submissionSummaryFields = [
'Created' => 'Created',
];
foreach(EditableFormField::get()->filter(["ParentID" => $this->owner->ID]) as $formField) {
if($formField->ShowInSummary) {
$submissionSummaryFields[$formField->Name] = $formField->Title ?: $formField->Name;
}
}
$config = $fields->dataFieldByName('Submissions')->getConfig();
$config->getComponentByType('GridFieldDataColumns')->setDisplayFields($submissionSummaryFields);
return $fields;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment