function _node_mass_update_batch_process

Executes a batch operation for node_mass_update().

Parameters

array $nodes: An array of node IDs.

array $updates: Associative array of updates.

bool $load: TRUE if $nodes contains an array of node IDs to be loaded, FALSE if it contains fully loaded nodes.

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

1 string reference to '_node_mass_update_batch_process'
node_mass_update in drupal/core/modules/node/node.admin.inc
Updates all nodes in the passed-in array with the passed-in field values.

File

drupal/core/modules/node/node.admin.inc, line 126
Content administration and module settings user interface.

Code

function _node_mass_update_batch_process(array $nodes, array $updates, $load, array &$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.
    $node = array_shift($context['sandbox']['nodes']);
    if ($load) {
      $node = entity_load('node', $node);
    }
    $node = _node_mass_update_helper($node, $updates);

    // Store result for post-processing in the finished callback.
    $context['results'][] = l($node
      ->label(), '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'];
  }
}