You are here

function campaignmonitor_local_subscription_queue in Campaign Monitor 8

Add missing field values.

Parameters

$context:

1 call to campaignmonitor_local_subscription_queue()
campaignmonitor_local_batch in modules/campaignmonitor_local/campaignmonitor_local.batch.inc

File

modules/campaignmonitor_local/campaignmonitor_local.batch.inc, line 35
.

Code

function campaignmonitor_local_subscription_queue(&$context) {
  if (empty($context['sandbox']['max'])) {
    $context['sandbox']['max'] = db_query("SELECT COUNT(DISTINCT item_id) FROM {queue} WHERE name='campaignmonitor_local_subscriptions'")
      ->fetchField();
  }
  $limit = 10;
  $query = \Drupal::database()
    ->select('queue', 'q');

  // $query->join('content_field_image_image', 'cfii', 'cti.field_image_image_fid = cfii.field_image_image_fid');
  //  $query->leftJoin('term_node', 'tn', 'cti.nid = tn.nid');
  // $query->leftJoin('term_data', 'td', 'tn.tid = td.tid');.
  $query
    ->fields('q', [
    'item_id',
    'data',
  ])
    ->condition('name', 'campaignmonitor_local_subscriptions')
    ->condition('q.item_id', $context['sandbox']['current_id'], '>')
    ->orderBy('q.item_id')
    ->range(0, $limit);
  $result = $query
    ->execute();
  foreach ($result as $row) {
    $context['results'][] = $row->item_id;
    $context['sandbox']['progress']++;
    $context['sandbox']['current_id'] = $row->item_id;
    $context['message'] = 'queue Id ' . $row->item_id;
    $data = unserialize($row->data);
    $uid = $data['uid'];
    $mail = $data['mail'];

    // Get the CM subscription.
    $subs = campaignmonitor_user_get_user_subscriptions($mail);

    // Merge the data record.
    campaignmonitor_local_insert_user_data($uid, $subs);
    \Drupal::database()
      ->delete('queue')
      ->condition('item_id', $row->item_id)
      ->execute();
  }
  if ($context['sandbox']['progress'] < $context['sandbox']['max']) {
    $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max'];
  }
  else {
    $context['finished'] = 1;
  }
  \Drupal::service('page_cache_kill_switch')
    ->trigger();
}