static function createTestSettings($group_id, $mailchimp_list_id = 'MailchimpListsTestListA', $mailchimp_interest_groups = array()) { $params = array('civicrm_group_id' => $group_id, 'mailchimp_list_id' => $mailchimp_list_id, 'mailchimp_interest_groups' => $mailchimp_interest_groups); $mailchimp_sync_setting = CRM_CiviMailchimp_BAO_SyncSettings::saveSettings($params); return $mailchimp_sync_setting; }
/** * Implementation of hook_civicrm_postProcess for the Group Edit form. */ function civimailchimp_civicrm_postProcess($formName, &$form) { // If the Mailchimp API call fails, the mailchimp_list field will not be // added to the form, so we want to retain the existing Mailchimp List // sync settings for the group, if the group is edited. if ($formName === "CRM_Group_Form_Edit" && isset($form->_elementIndex['mailchimp_list'])) { $params['civicrm_group_id'] = $form->getVar('_id'); // When creating a new group, the group ID is only accessible from the // 'amtgID' session variable. if (empty($params['civicrm_group_id'])) { $params['civicrm_group_id'] = $form->get('amtgID'); } if ($form->_submitValues['mailchimp_list']) { $params['mailchimp_list_id'] = $form->_submitValues['mailchimp_list']; if (isset($form->_submitValues['mailchimp_interest_groups'])) { $params['mailchimp_interest_groups'] = $form->_submitValues['mailchimp_interest_groups']; } CRM_CiviMailchimp_BAO_SyncSettings::saveSettings($params); } else { $mailchimp_sync_setting = CRM_CiviMailchimp_BAO_SyncSettings::findByGroupId($params['civicrm_group_id']); if ($mailchimp_sync_setting) { CRM_CiviMailchimp_BAO_SyncSettings::deleteSettings($mailchimp_sync_setting); } } } }