//reminder_interval
$this->add('select', 'start_action_offset', ts('When'), $numericOptions);
- $title = ts('Email');
$isActive = ts('Send email');
$recordActivity = ts('Record activity for automated email');
if ($providersCount) {
$this->assign('sms', $providersCount);
- $title = ts('Email or SMS');
$isActive = ts('Send email or SMS');
$recordActivity = ts('Record activity for automated email or SMS');
$options = CRM_Core_OptionGroup::values('msg_mode');
foreach ($providers as $provider) {
$providerSelect[$provider['id']] = $provider['title'];
}
- $this->add('select', 'sms_provider_id', ts('From'), $providerSelect, TRUE);
+ $this->add('select', 'sms_provider_id', ts('SMS Provider'), $providerSelect, TRUE);
}
- $this->assign('title', $title);
foreach ($this->_freqUnits as $val => $label) {
$freqUnitsDisplay[$val] = ts('%1(s)', array(1 => $label));
}
$this->add('select', 'end_date', ts('Date Field'), $sel4, TRUE);
$this->add('text', 'from_name', ts('From Name'));
- $this->add('text', 'from_email', ts('From Email'));
+ $this->add('text', 'from_email', ts('From Email'));
$recipient = 'activity_contacts';
$recipientListingOptions = array();
}
}
- if (!empty($fields['is_active']) &&
+ if (!empty($fields['is_active']) && $fields['mode'] != 'SMS' &&
CRM_Utils_System::isNull($fields['subject'])
) {
$errors['subject'] = ts('Subject is a required field.');
}
$defaults['text_message'] = CRM_Utils_Array::value('body_text', $defaults);
$defaults['html_message'] = CRM_Utils_Array::value('body_html', $defaults);
+ $defaults['sms_text_message'] = CRM_Utils_Array::value('sms_body_text', $defaults);
$defaults['template'] = CRM_Utils_Array::value('msg_template_id', $defaults);
+ $defaults['SMStemplate'] = CRM_Utils_Array::value('sms_template_id', $defaults);
if (!empty($defaults['group_id'])) {
$defaults['recipient'] = 'group';
}
$params[$key] = CRM_Utils_Array::value($key, $values);
}
+ $params['is_repeat'] = CRM_Utils_Array::value('is_repeat', $values, 0);
+
$moreKeys = array(
'start_action_offset',
'start_action_unit',
if ($absoluteDate = CRM_Utils_Array::value('absolute_date', $params)) {
$params['absolute_date'] = CRM_Utils_Date::processDate($absoluteDate);
+ $params['is_repeat'] = 0;
foreach ($moreKeys as $mkey) {
$params[$mkey] = 'null';
}
}
$params['body_text'] = CRM_Utils_Array::value('text_message', $values);
+ $params['sms_body_text'] = CRM_Utils_Array::value('sms_text_message', $values);
$params['body_html'] = CRM_Utils_Array::value('html_message', $values);
if (CRM_Utils_Array::value('recipient', $values) == 'manual') {
}
$params['is_active'] = CRM_Utils_Array::value('is_active', $values, 0);
- $params['is_repeat'] = CRM_Utils_Array::value('is_repeat', $values, 0);
if (CRM_Utils_Array::value('is_repeat', $values) == 0) {
$params['repetition_frequency_unit'] = 'null';
$params['name'] = CRM_Utils_String::munge($params['title'], '_', 64);
}
+ $modePrefixes = array('Mail' => NULL, 'SMS' => 'SMS');
+
+ if ($params['mode'] == 'Email' || empty($params['sms_provider_id'])) {
+ unset($modePrefixes['SMS']);
+ }
+ elseif ($params['mode'] == 'SMS') {
+ unset($modePrefixes['Mail']);
+ }
+
+ //TODO: handle postprocessing of SMS and/or Email info based on $modePrefixes
+
$composeFields = array(
'template', 'saveTemplate',
'updateTemplate', 'saveTemplateName',
$msgTemplate = NULL;
//mail template is composed
- $composeParams = array();
- foreach ($composeFields as $key) {
- if (!empty($values[$key])) {
- $composeParams[$key] = $values[$key];
+ foreach ($modePrefixes as $prefix) {
+ $composeParams = array();
+ foreach ($composeFields as $key) {
+ $key = $prefix . $key;
+ if (!empty($values[$key])) {
+ $composeParams[$key] = $values[$key];
+ }
}
- }
-
- if (!empty($composeParams['updateTemplate'])) {
- $templateParams = array(
- 'msg_text' => $params['body_text'],
- 'msg_html' => $params['body_html'],
- 'msg_subject' => $params['subject'],
- 'is_active' => TRUE,
- );
-
- $templateParams['id'] = $values['template'];
- $msgTemplate = CRM_Core_BAO_MessageTemplate::add($templateParams);
- }
-
- if (!empty($composeParams['saveTemplate'])) {
- $templateParams = array(
- 'msg_text' => $params['body_text'],
- 'msg_html' => $params['body_html'],
- 'msg_subject' => $params['subject'],
- 'is_active' => TRUE,
- );
-
- $templateParams['msg_title'] = $composeParams['saveTemplateName'];
+ if (!empty($composeParams[$prefix . 'updateTemplate'])) {
+ $templateParams = array('is_active' => TRUE);
+ if ($prefix == 'SMS') {
+ $templateParams += array(
+ 'msg_text' => $params['sms_body_text'],
+ 'is_sms' => TRUE,
+ );
+ }
+ else {
+ $templateParams += array(
+ 'msg_text' => $params['body_text'],
+ 'msg_html' => $params['body_html'],
+ 'msg_subject' => $params['subject'],
+ );
+ }
+ $templateParams['id'] = $values[$prefix . 'template'];
+
+ $msgTemplate = CRM_Core_BAO_MessageTemplate::add($templateParams);
+ }
- $msgTemplate = CRM_Core_BAO_MessageTemplate::add($templateParams);
- }
+ if (!empty($composeParams[$prefix . 'saveTemplate'])) {
+ $templateParams = array('is_active' => TRUE);
+ if ($prefix == 'SMS') {
+ $templateParams += array(
+ 'msg_text' => $params['sms_body_text'],
+ 'is_sms' => TRUE,
+ );
+ }
+ else {
+ $templateParams += array(
+ 'msg_text' => $params['body_text'],
+ 'msg_html' => $params['body_html'],
+ 'msg_subject' => $params['subject'],
+ );
+ }
+ $templateParams['msg_title'] = $composeParams[$prefix . 'saveTemplateName'];
+
+ $msgTemplate = CRM_Core_BAO_MessageTemplate::add($templateParams);
+ }
- if (isset($msgTemplate->id)) {
- $params['msg_template_id'] = $msgTemplate->id;
- }
- else {
- $params['msg_template_id'] = CRM_Utils_Array::value('template', $values);
+ if ($prefix == 'SMS') {
+ if (isset($msgTemplate->id)) {
+ $params['sms_template_id'] = $msgTemplate->id;
+ }
+ else {
+ $params['sms_template_id'] = CRM_Utils_Array::value('SMStemplate', $values);
+ }
+ }
+ else {
+ if (isset($msgTemplate->id)) {
+ $params['msg_template_id'] = $msgTemplate->id;
+ }
+ else {
+ $params['msg_template_id'] = CRM_Utils_Array::value('template', $values);
+ }
+ }
}
$bao = CRM_Core_BAO_ActionSchedule::add($params);