+--------------------------------------------------------------------+
| CiviCRM version 4.7 |
+--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2016 |
+ | Copyright CiviCRM LLC (c) 2004-2017 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
* @throws \Civi\API\Exception\UnauthorizedException
*/
function civicrm_api3_mailing_create($params) {
+ if (isset($params['template_options']) && is_array($params['template_options'])) {
+ $params['template_options'] = ($params['template_options'] === array()) ? '{}' : json_encode($params['template_options']);
+ }
if (CRM_Mailing_Info::workflowEnabled()) {
// Note: 'schedule mailings' and 'approve mailings' can update certain fields, but can't create.
$safeParams = $params;
}
$safeParams['_evil_bao_validator_'] = 'CRM_Mailing_BAO_Mailing::checkSendable';
- return _civicrm_api3_basic_create(_civicrm_api3_get_BAO(__FUNCTION__), $safeParams);
+ $result = _civicrm_api3_basic_create(_civicrm_api3_get_BAO(__FUNCTION__), $safeParams);
+ return _civicrm_api3_mailing_get_formatResult($result);
}
* Array of parameters determined by getfields.
*/
function _civicrm_api3_mailing_create_spec(&$params) {
- $params['created_id']['api.required'] = 1;
$params['created_id']['api.default'] = 'user_contact_id';
$params['override_verp']['api.default'] = !CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::MAILING_PREFERENCES_NAME, 'track_civimail_replies');
$params['unsubscribe_id']['api.default'] = CRM_Mailing_PseudoConstant::defaultComponent('Unsubscribe', '');
$params['mailing_type']['api.default'] = 'standalone';
$defaultAddress = CRM_Core_OptionGroup::values('from_email_address', NULL, NULL, NULL, ' AND is_default = 1');
- foreach ($defaultAddress as $id => $value) {
+ foreach ($defaultAddress as $value) {
if (preg_match('/"(.*)" <(.*)>/', $value, $match)) {
$params['from_email']['api.default'] = $match[2];
$params['from_name']['api.default'] = $match[1];
'approval_note',
'is_archived',
'hash',
+ 'mailing_type',
);
$get = civicrm_api3('Mailing', 'getsingle', array('id' => $params['id']));
* @return array
*/
function civicrm_api3_mailing_get($params) {
- return _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params);
+ $result = _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params);
+ return _civicrm_api3_mailing_get_formatResult($result);
+}
+
+/**
+ * Format definition.
+ *
+ * @param array $result
+ *
+ * @return array
+ * @throws \CRM_Core_Exception
+ */
+function _civicrm_api3_mailing_get_formatResult($result) {
+ if (isset($result['values']) && is_array($result['values'])) {
+ foreach ($result['values'] as $key => $caseType) {
+ if (isset($result['values'][$key]['template_options']) && is_string($result['values'][$key]['template_options'])) {
+ $result['values'][$key]['template_options'] = json_decode($result['values'][$key]['template_options'], TRUE);
+ }
+ }
+ }
+ return $result;
}
/**