/** * Process the form submission. */ public function postProcess() { if ($this->_action & CRM_Core_Action::DELETE) { CRM_Core_BAO_MailSettings::deleteMailSettings($this->_id); CRM_Core_Session::setStatus("", ts('Mail Setting Deleted.'), "success"); return; } //get the submitted form values. $formValues = $this->controller->exportValues($this->_name); //form fields. $fields = array('name', 'domain', 'localpart', 'server', 'return_path', 'protocol', 'port', 'username', 'password', 'source', 'is_ssl', 'is_default'); $params = array(); foreach ($fields as $f) { if (in_array($f, array('is_default', 'is_ssl'))) { $params[$f] = CRM_Utils_Array::value($f, $formValues, FALSE); } else { $params[$f] = CRM_Utils_Array::value($f, $formValues); } } $params['domain_id'] = CRM_Core_Config::domainID(); // assign id only in update mode $status = ts('Your New Email Settings have been saved.'); if ($this->_action & CRM_Core_Action::UPDATE) { $params['id'] = $this->_id; $status = ts('Your Email Settings have been updated.'); } $mailSettings = CRM_Core_BAO_MailSettings::create($params); if ($mailSettings->id) { CRM_Core_Session::setStatus($status, ts("Saved"), "success"); } else { CRM_Core_Session::setStatus("", ts('Changes Not Saved.'), "info"); } }