977 |
977 |
$email->populateTemplate($emailData);
|
978 |
978 |
$email->setFrom($recipient->EmailFrom);
|
979 |
979 |
$email->setBody($recipient->EmailBody);
|
980 |
|
$email->setTo($recipient->EmailAddress);
|
981 |
980 |
$email->setSubject($recipient->EmailSubject);
|
|
981 |
$email->setTo($recipient->EmailAddress);
|
982 |
982 |
|
983 |
983 |
if($recipient->EmailReplyTo) {
|
984 |
984 |
$email->setReplyTo($recipient->EmailReplyTo);
|
... | ... | |
1008 |
1008 |
$email->setSubject($submittedFormField->Value);
|
1009 |
1009 |
}
|
1010 |
1010 |
}
|
1011 |
|
|
|
1011 |
|
1012 |
1012 |
$this->extend('updateEmail', $email, $recipient, $emailData);
|
1013 |
1013 |
|
1014 |
1014 |
if($recipient->SendPlain) {
|
... | ... | |
1138 |
1138 |
|
1139 |
1139 |
if($this->Form()) {
|
1140 |
1140 |
$dropdowns = array();
|
1141 |
|
$validEmailFields = DataObject::get("EditableEmailField", "\"ParentID\" = '" . (int)$this->FormID . "'");
|
1142 |
|
$multiOptionFields = DataObject::get("EditableMultipleOptionField", "\"ParentID\" = '" . (int)$this->FormID . "'");
|
1143 |
|
$validSubjectFields = EditableTextField::get()->filter('ParentID', (int)$this->FormID)->filterByCallback(function($item, $list) { return $item->getSetting('Rows') === 1; });
|
1144 |
|
|
|
1141 |
// if they have email fields then we could send from it
|
|
1142 |
$validEmailFields = EditableEmailField::get()->filter('ParentID', (int)$this->FormID);
|
|
1143 |
// for the subject, only one-line entry boxes make sense
|
|
1144 |
$validSubjectFields = EditableTextField::get()->filter('ParentID', (int)$this->FormID)
|
|
1145 |
->filterByCallback(function($item, $list) { return (int)$item->getSetting('Rows') === 1; });
|
|
1146 |
// predefined choices are also candidates
|
|
1147 |
$multiOptionFields = EditableMultipleOptionField::get()->filter('ParentID', (int)$this->FormID);
|
|
1148 |
|
1145 |
1149 |
$fields->insertAfter($dropdowns[] = new DropdownField(
|
1146 |
|
'SendEmailFromFieldID',
|
1147 |
|
_t('UserDefinedForm.ORSELECTAFIELDTOUSEASFROM', '.. or select a field to use as reply to address'),
|
1148 |
|
$validEmailFields->map('ID', 'Title')
|
|
1150 |
'SendEmailFromFieldID',
|
|
1151 |
_t('UserDefinedForm.ORSELECTAFIELDTOUSEASFROM', '.. or select a field to use as reply to address'),
|
|
1152 |
$validEmailFields->map('ID', 'Title')
|
1149 |
1153 |
), 'EmailReplyTo');
|
1150 |
|
|
1151 |
|
if($multiOptionFields) {
|
1152 |
|
$validEmailFields = new ArrayList($validEmailFields->toArray());
|
1153 |
|
$validEmailFields->merge($multiOptionFields);
|
1154 |
|
$validSubjectFields->merge($multiOptionFields);
|
1155 |
|
}
|
1156 |
|
if($validEmailFields) {
|
1157 |
|
$fields->insertAfter($dropdowns[] = new DropdownField(
|
1158 |
|
'SendEmailToFieldID',
|
1159 |
|
_t('UserDefinedForm.ORSELECTAFIELDTOUSEASTO', '.. or select a field to use as the to address'),
|
1160 |
|
$validEmailFields = $validEmailFields->map('ID', 'Title')
|
1161 |
|
), 'EmailAddress');
|
1162 |
|
}
|
1163 |
|
if($validSubjectFields) {
|
1164 |
|
$fields->insertAfter($dropdowns[] = new DropdownField(
|
1165 |
|
'SendEmailSubjectFieldID',
|
1166 |
|
_t('UserDefinedForm.SELECTAFIELDTOSETSUBJECT', '... or select a field to use as the subject'),
|
1167 |
|
$validSubjectFields->map('ID', 'Title')
|
1168 |
|
), 'SendEmailSubjectField');
|
1169 |
|
}
|
1170 |
1154 |
|
1171 |
|
if($dropdowns) {
|
1172 |
|
foreach($dropdowns as $dropdown) {
|
1173 |
|
$dropdown->setHasEmptyDefault(true);
|
1174 |
|
$dropdown->setEmptyString(" ");
|
1175 |
|
}
|
|
1155 |
$validEmailFields = new ArrayList($validEmailFields->toArray());
|
|
1156 |
$validEmailFields->merge($multiOptionFields);
|
|
1157 |
$validSubjectFields->merge($multiOptionFields);
|
|
1158 |
|
|
1159 |
$fields->insertAfter($dropdowns[] = new DropdownField(
|
|
1160 |
'SendEmailToFieldID',
|
|
1161 |
_t('UserDefinedForm.ORSELECTAFIELDTOUSEASTO', '.. or select a field to use as the to address'),
|
|
1162 |
$validEmailFields->map('ID', 'Title')
|
|
1163 |
), 'EmailAddress');
|
|
1164 |
$fields->insertAfter($dropdowns[] = new DropdownField(
|
|
1165 |
'SendEmailSubjectFieldID',
|
|
1166 |
_t('UserDefinedForm.SELECTAFIELDTOSETSUBJECT', '.. or select a field to use as the subject'),
|
|
1167 |
$validSubjectFields->map('ID', 'Title')
|
|
1168 |
), 'EmailSubject');
|
|
1169 |
|
|
1170 |
foreach($dropdowns as $dropdown) {
|
|
1171 |
$dropdown->setHasEmptyDefault(true);
|
|
1172 |
$dropdown->setEmptyString(" ");
|
1176 |
1173 |
}
|
1177 |
1174 |
}
|
1178 |
1175 |
|