You are here

function campaignmonitor_campaign_entity_storage_load in Campaign Monitor 8

Implements hook_entity_storage_load()

File

modules/campaignmonitor_campaign/campaignmonitor_campaign.module, line 138
Module file for campaignmonitor_campaign.

Code

function campaignmonitor_campaign_entity_storage_load(array $entities, $entity_type) {
  if ($entity_type != 'campaignmonitor_campaign') {
    return;
  }
  $ids = [];
  if (!empty($entities)) {
    foreach ($entities as $campaign) {
      $ids[] = $campaign
        ->getMcCampaignId();
    }
  }
  $mc_campaigns = campaignmonitor_campaign_get_campaigns($ids);
  foreach ($entities as $mc_campaign_id => $campaign) {
    $campaign->mc_data = $mc_campaigns[$mc_campaign_id];

    // Lists are cached separately, but we want to load them here.
    if (isset($campaign->mc_data->recipients->list_id) && $campaign->mc_data->recipients->list_id) {
      $campaign->list = campaignmonitor_get_list($campaign->mc_data->recipients->list_id);
    }
    if (isset($campaign->mc_data->settings->template_id) && $campaign->mc_data->settings->template_id) {
      $campaign->mc_template = campaignmonitor_campaign_get_template($campaign->mc_data->settings->template_id);
    }
  }
}