X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FAdmin%2FForm%2FScheduleReminders.php;h=154079b8fdec1fb858f39bda65cb0110f47a1b55;hb=892da4a9850da99e44b28e1a12315baf94c63296;hp=9f81d2e847e9c2e41cd60f9a6f795af899e766fd;hpb=924eee545748f525fba51ba5d56de27caf3a32ff;p=civicrm-core.git diff --git a/CRM/Admin/Form/ScheduleReminders.php b/CRM/Admin/Form/ScheduleReminders.php index 9f81d2e847..154079b8fd 100644 --- a/CRM/Admin/Form/ScheduleReminders.php +++ b/CRM/Admin/Form/ScheduleReminders.php @@ -135,12 +135,10 @@ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form { //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'); @@ -152,10 +150,9 @@ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form { 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)); } @@ -187,7 +184,7 @@ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form { $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(); @@ -260,7 +257,7 @@ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form { } } - 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.'); @@ -315,7 +312,9 @@ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form { } $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'; } @@ -367,6 +366,8 @@ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form { $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', @@ -382,6 +383,7 @@ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form { 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'; } @@ -394,6 +396,7 @@ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form { } $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') { @@ -426,7 +429,6 @@ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form { } $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'; @@ -445,6 +447,17 @@ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form { $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', @@ -452,44 +465,71 @@ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form { $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);