batch_example_op_2
developer/examples/batch_example.module, строка 207
- Версии
- 6
batch_example_op_2(&$context)
Batch operation for batch 2 : load all nodes, 5 by five This is a multipart operation, using the
Связанные темы
Код
<?php
function batch_example_op_2(&$context) {
// Use the $context['sandbox'] at your convenience to store the
// information needed to track progression between successive calls.
if (!isset($context['sandbox']['progress'])) {
$context['sandbox']['progress'] = 0;
$context['sandbox']['current_node'] = 0;
$context['sandbox']['max'] = db_result(db_query('SELECT COUNT(DISTINCT nid) FROM {node}'));
}
// Process nodes by groups of 5 (arbitrary value).
// When a group of five is processed, the batch update engine determines
// whether it should continue processing in the same request or provide
// progress feedback to the user and wait for the next request.
$limit = 5;
// Retrieve the next group of nids.
$result = db_query_range("SELECT nid FROM {node} WHERE nid > %d ORDER BY nid ASC", $context['sandbox']['current_node'], 0, $limit);
while ($row = db_fetch_array($result)) {
// Here we actually perform our dummy 'processing' on the current node.
$node = node_load($row['nid'], NULL, TRUE);
// Store some result for post-processing in the finished callback.
$context['results'][] = $node->nid .' : '. $node->title;
// Update our progress information.
$context['sandbox']['progress']++;
$context['sandbox']['current_node'] = $node->nid;
$context['message'] = $node->title;
}
// 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'];
}
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии