function _forum_access_update_batch_operation in Forum Access 7
Same name and namespace in other branches
- 8 includes/forum_access.admin.inc \_forum_access_update_batch_operation()
- 6 forum_access.admin.inc \_forum_access_update_batch_operation()
Batch operation for forum_access_form_submit().
This is a multistep operation: we go through all nodes by packs of 20. The batch processing engine interrupts processing and sends progress feedback after 1 second execution time.
1 call to _forum_access_update_batch_operation()
1 string reference to '_forum_access_update_batch_operation'
File
- ./
forum_access.admin.inc, line 693 - forum_access.admin.inc
Code
function _forum_access_update_batch_operation($tid, $limit, $count, &$context) {
if (empty($context['sandbox'])) {
// Initiate multistep processing.
$context['sandbox']['progress'] = 0;
$context['sandbox']['current_node'] = 0;
$context['sandbox']['max'] = $count;
}
// Process the next $limit nodes.
$nids = db_select('taxonomy_index', 'n')
->fields('n', array(
'nid',
))
->distinct()
->condition('n.nid', $context['sandbox']['current_node'], '>')
->condition('n.tid', $tid)
->orderBy('n.nid')
->range(0, $limit)
->execute()
->fetchCol();
$nodes = node_load_multiple($nids);
foreach ($nodes as $node) {
// To preserve database integrity, only aquire grants if the node
// loads successfully.
if (!empty($node)) {
node_access_acquire_grants($node);
}
$context['sandbox']['progress']++;
$context['sandbox']['current_node'] = $node->nid;
}
// Multistep processing: report progress.
if ($context['sandbox']['progress'] != $context['sandbox']['max']) {
$context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max'];
}
}