From 36cfdd2a2d92389f5a519157a1b6e38351691bcd Mon Sep 17 00:00:00 2001 From: Marc Michalsky forumZFD Date: Thu, 17 Dec 2020 17:05:54 +0100 Subject: [PATCH] implement Hook syncing when Campaign gets created --- twinglecampaign.php | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/twinglecampaign.php b/twinglecampaign.php index 4eb9f4d..7390f8d 100644 --- a/twinglecampaign.php +++ b/twinglecampaign.php @@ -1,7 +1,35 @@ addListener('hook_civicrm_postSave_civicrm_campaign', +// "twinglecampaign_postSave_civicrm_campaign", -1000); +/** + * Implements hook_civicrm_postSave_Campaigns(). + * + * @param $dao + * + * @throws CiviCRM_API3_Exception + */ +function twinglecampaign_civicrm_postSave_civicrm_campaign($dao) { + $twingle_campaign_types = ExtensionCache::getInstance()->getCampaigns()['campaign_types']; + $twingle_campaign_type_ids = []; + $hook_campaign_type_id = $dao->campaign_type_id; + $hook_campaign_id = $dao->id; + foreach ($twingle_campaign_types as $twingle_campaign_type) { + $id = civicrm_api3('OptionValue', 'get', + ['sequential' => 1, 'name' => $twingle_campaign_type['name']] + )['values'][0]['value']; + array_push($twingle_campaign_type_ids, $id); + } + if (in_array($hook_campaign_type_id, $twingle_campaign_type_ids)) { + civicrm_api3('TwingleSync', 'sync', ['id' => $hook_campaign_id]); + } +} /** * Implements hook_civicrm_config().