2015-07-24 04:37:48 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Controller that handles requests to EmailRecipient's
|
|
|
|
*
|
|
|
|
* @package userforms
|
|
|
|
*/
|
2016-07-21 07:53:59 +02:00
|
|
|
class UserFormRecipientItemRequest extends GridFieldDetailForm_ItemRequest
|
|
|
|
{
|
2015-07-24 04:37:48 +02:00
|
|
|
|
2016-07-21 07:53:59 +02:00
|
|
|
private static $allowed_actions = array(
|
|
|
|
'edit',
|
|
|
|
'view',
|
|
|
|
'ItemEditForm',
|
|
|
|
'preview'
|
|
|
|
);
|
2015-07-24 04:37:48 +02:00
|
|
|
|
2016-07-21 07:53:59 +02:00
|
|
|
/**
|
|
|
|
* Renders a preview of the recipient email.
|
|
|
|
*/
|
|
|
|
public function preview()
|
|
|
|
{
|
2017-03-14 06:10:27 +01:00
|
|
|
// Enable theme for preview (may be needed for Shortcodes)
|
2017-06-09 00:19:58 +02:00
|
|
|
Config::nest();
|
2017-03-14 06:10:27 +01:00
|
|
|
Config::inst()->update('SSViewer', 'theme_enabled', true);
|
2017-06-09 00:19:58 +02:00
|
|
|
|
|
|
|
$content = $this->customise(new ArrayData(array(
|
2016-07-21 07:53:59 +02:00
|
|
|
'Body' => $this->record->getEmailBodyContent(),
|
|
|
|
'HideFormData' => $this->record->HideFormData,
|
|
|
|
'Fields' => $this->getPreviewFieldData()
|
|
|
|
)))->renderWith($this->record->EmailTemplate);
|
2017-06-09 00:19:58 +02:00
|
|
|
|
|
|
|
Config::unnest();
|
|
|
|
|
|
|
|
return $content;
|
2016-07-21 07:53:59 +02:00
|
|
|
}
|
2015-07-24 04:37:48 +02:00
|
|
|
|
2016-07-21 07:53:59 +02:00
|
|
|
/**
|
|
|
|
* Get some placeholder field values to display in the preview
|
|
|
|
* @return ArrayList
|
|
|
|
*/
|
|
|
|
private function getPreviewFieldData()
|
|
|
|
{
|
|
|
|
$data = new ArrayList();
|
2015-07-24 04:37:48 +02:00
|
|
|
|
2016-07-21 07:53:59 +02:00
|
|
|
$fields = $this->record->Form()->Fields()->filter(array(
|
|
|
|
'ClassName:not' => 'EditableLiteralField',
|
|
|
|
'ClassName:not' => 'EditableFormHeading'
|
|
|
|
));
|
2015-07-24 04:37:48 +02:00
|
|
|
|
2016-07-21 07:53:59 +02:00
|
|
|
foreach ($fields as $field) {
|
|
|
|
$data->push(new ArrayData(array(
|
2017-05-01 07:37:50 +02:00
|
|
|
'Name' => $field->dbObject('Name'),
|
|
|
|
'Title' => $field->dbObject('Title'),
|
|
|
|
'Value' => DBField::create_field('Varchar', '$' . $field->Name),
|
|
|
|
'FormattedValue' => DBField::create_field('Varchar', '$' . $field->Name)
|
2016-07-21 07:53:59 +02:00
|
|
|
)));
|
|
|
|
}
|
2015-07-24 04:37:48 +02:00
|
|
|
|
2016-07-21 07:53:59 +02:00
|
|
|
return $data;
|
|
|
|
}
|
2015-07-24 04:37:48 +02:00
|
|
|
}
|