function _node_mass_update_batch_process

Same name in other branches
  1. 9 core/modules/node/node.admin.inc \_node_mass_update_batch_process()
  2. 8.9.x core/modules/node/node.admin.inc \_node_mass_update_batch_process()
  3. 10 core/modules/node/node.admin.inc \_node_mass_update_batch_process()
  4. 11.x core/modules/node/node.admin.inc \_node_mass_update_batch_process()

Implements callback_batch_operation().

Executes a batch operation for node_mass_update().

Parameters

array $nodes: An array of node IDs.

array $updates: Associative array of updates.

array $context: An array of contextual key/values.

1 string reference to '_node_mass_update_batch_process'
node_mass_update in modules/node/node.admin.inc
Make mass update of nodes, changing all nodes in the $nodes array to update them with the field values in $updates.

File

modules/node/node.admin.inc, line 343

Code

function _node_mass_update_batch_process($nodes, $updates, &$context) {
    if (!isset($context['sandbox']['progress'])) {
        $context['sandbox']['progress'] = 0;
        $context['sandbox']['max'] = count($nodes);
        $context['sandbox']['nodes'] = $nodes;
    }
    // Process nodes by groups of 5.
    $count = min(5, count($context['sandbox']['nodes']));
    for ($i = 1; $i <= $count; $i++) {
        // For each nid, load the node, reset the values, and save it.
        $nid = array_shift($context['sandbox']['nodes']);
        $node = _node_mass_update_helper($nid, $updates);
        // Store result for post-processing in the finished callback.
        $context['results'][] = l($node->title, 'node/' . $node->nid);
        // Update our progress information.
        $context['sandbox']['progress']++;
    }
    // Inform the batch engine that we are not finished,
    // and provide an estimation of the completion level we reached.
    if ($context['sandbox']['progress'] != $context['sandbox']['max']) {
        $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max'];
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.