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();
}