Source of file UserFormRecipientItemRequest.php
Size: 2,164 Bytes - Last Modified: 2021-12-23T10:38:03+00:00
/var/www/docs.ssmods.com/process/src/code/Model/Recipient/UserFormRecipientItemRequest.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | <?php namespace SilverStripe\UserForms\Model\Recipient; use SilverStripe\Core\Config\Config; use SilverStripe\Forms\GridField\GridFieldDetailForm_ItemRequest; use SilverStripe\ORM\ArrayList; use SilverStripe\ORM\FieldType\DBField; use SilverStripe\UserForms\Model\EditableFormField\EditableFormHeading; use SilverStripe\UserForms\Model\EditableFormField\EditableLiteralField; use SilverStripe\View\ArrayData; use SilverStripe\View\SSViewer; /** * Controller that handles requests to EmailRecipient's * * @package userforms */ class UserFormRecipientItemRequest extends GridFieldDetailForm_ItemRequest { private static $allowed_actions = [ 'edit', 'view', 'ItemEditForm', 'preview' ]; /** * Renders a preview of the recipient email. */ public function preview() { // Enable theme for preview (may be needed for Shortcodes) Config::nest(); Config::modify()->set(SSViewer::class, 'theme_enabled', true); $content = $this->customise([ 'Body' => $this->record->getEmailBodyContent(), 'HideFormData' => (bool) $this->record->HideFormData, 'Fields' => $this->getPreviewFieldData() ])->renderWith($this->record->EmailTemplate); Config::unnest(); return $content; } /** * Get some placeholder field values to display in the preview * * @return ArrayList */ protected function getPreviewFieldData() { $data = ArrayList::create(); $fields = $this->record->Form()->Fields()->filter( 'ClassName:not', [ EditableLiteralField::class, EditableFormHeading::class, ] ); foreach ($fields as $field) { $data->push(ArrayData::create([ 'Name' => $field->dbObject('Name'), 'Title' => $field->dbObject('Title'), 'Value' => DBField::create_field('Varchar', '$' . $field->Name), 'FormattedValue' => DBField::create_field('Varchar', '$' . $field->Name) ])); } return $data; } } |