rollback(); return $mailingab; } $transaction->commit(); return $mailingab; } /** * function to add the mailings * * @param array $params reference array contains the values submitted by the form * @param array $ids reference array contains the id * * @access public * @static * * @return object */ static function add(&$params, $ids = array()) { $id = CRM_Utils_Array::value('mailingab_id', $ids, CRM_Utils_Array::value('id', $params)); if ($id) { CRM_Utils_Hook::pre('edit', 'MailingAB', $id, $params); } else { CRM_Utils_Hook::pre('create', 'MailingAB', NULL, $params); } $mailingab = new CRM_Mailing_DAO_MailingAB(); $mailingab->id = $id; if (!$id) { $mailingab->domain_id = CRM_Utils_Array::value('domain_id', $params, CRM_Core_Config::domainID()); } $mailingab->copyValues($params); $result = $mailingab->save(); if ($id) { CRM_Utils_Hook::post('edit', 'MailingAB', $mailingab->id, $mailingab); } else { CRM_Utils_Hook::post('create', 'MailingAB', $mailingab->id, $mailingab); } return $result; } /** * Delete MailingAB and all its associated records * * @param int $id id of the mail to delete * * @return void * @access public * @static */ public static function del($id) { if (empty($id)) { CRM_Core_Error::fatal(); } CRM_Core_Transaction::create()->run(function() use ($id) { CRM_Utils_Hook::pre('delete', 'MailingAB', $id, CRM_Core_DAO::$_nullArray); $dao = new CRM_Mailing_DAO_MailingAB(); $dao->id = $id; if ($dao->find(TRUE)) { $mailing_ids = array($dao->mailing_id_a, $dao->mailing_id_b, $dao->mailing_id_c); $dao->delete(); foreach ($mailing_ids as $mailing_id) { if ($mailing_id) { CRM_Mailing_BAO_Mailing::del($mailing_id); } } } CRM_Core_Session::setStatus(ts('Selected mailing has been deleted.'), ts('Deleted'), 'success'); CRM_Utils_Hook::post('delete', 'MailingAB', $id, $dao); }); } }