<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.6 |
+ | CiviCRM version 4.7 |
+--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2014 |
+ | Copyright CiviCRM LLC (c) 2004-2015 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
$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', NULL, FALSE
- );
+ $params['override_verp']['api.default'] = !CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::MAILING_PREFERENCES_NAME, 'track_civimail_replies');
$params['visibility']['api.default'] = 'Public Pages';
- $params['dedupe_email']['api.default'] = CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::MAILING_PREFERENCES_NAME,
- 'dedupe_email_default', NULL, FALSE
- );
+ $params['dedupe_email']['api.default'] = CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::MAILING_PREFERENCES_NAME, 'dedupe_email_default');
$params['forward_replies']['api.default'] = FALSE;
$params['auto_responder']['api.default'] = FALSE;
}
}
+function _civicrm_api3_mailing_clone_spec(&$spec) {
+ $mailingFields = CRM_Mailing_DAO_Mailing::fields();
+ $spec['id'] = $mailingFields['id'];
+ $spec['id']['api.required'] = 1;
+}
+
+function civicrm_api3_mailing_clone($params) {
+ $BLACKLIST = array(
+ 'id',
+ 'is_completed',
+ 'created_id',
+ 'created_date',
+ 'scheduled_id',
+ 'scheduled_date',
+ 'approver_id',
+ 'approval_date',
+ 'approval_status_id',
+ 'approval_note',
+ 'is_archived',
+ 'hash',
+ );
+
+ $get = civicrm_api3('Mailing', 'getsingle', array('id' => $params['id']));
+
+ $newParams = array();
+ $newParams['debug'] = CRM_Utils_Array::value('debug', $params);
+ $newParams['groups']['include'] = array();
+ $newParams['groups']['exclude'] = array();
+ $newParams['mailings']['include'] = array();
+ $newParams['mailings']['exclude'] = array();
+ foreach ($get as $field => $value) {
+ if (!in_array($field, $BLACKLIST)) {
+ $newParams[$field] = $value;
+ }
+ }
+
+ $dao = new CRM_Mailing_DAO_MailingGroup();
+ $dao->mailing_id = $params['id'];
+ $dao->find();
+ while ($dao->fetch()) {
+ // CRM-11431; account for multi-lingual
+ $entity = (substr($dao->entity_table, 0, 15) == 'civicrm_mailing') ? 'mailings' : 'groups';
+ $newParams[$entity][strtolower($dao->group_type)][] = $dao->entity_id;
+ }
+
+ return civicrm_api3('Mailing', 'create', $newParams);
+}
+
/**
* Handle a delete event.
*
->where('c.is_opt_out = 0')
->where('c.do_not_email = 0')
->where('c.is_deceased = 0')
+ ->where('c.is_deleted = 0')
->groupBy('e.id')
->orderBy(array('e.is_bulkmail DESC', 'e.is_primary DESC'))
->toSQL();
$isComplete = FALSE;
$config = CRM_Core_Config::singleton();
- $mailerJobSize = (property_exists($config, 'mailerJobSize')) ? $config->mailerJobSize : NULL;
+ $mailerJobSize = Civi::settings()->get('mailerJobSize');
while (!$isComplete) {
// Q: In CRM_Mailing_BAO_Mailing::processQueue(), the three runJobs*()
// functions are all called. Why does Mailing.send_test only call one?