function node_access_rebuild_progressive_process_chunk in Node Access Rebuild Progressive 7
Same name and namespace in other branches
- 8 node_access_rebuild_progressive.module \node_access_rebuild_progressive_process_chunk()
- 2.x node_access_rebuild_progressive.module \node_access_rebuild_progressive_process_chunk()
Processes a chunk of nodes.
Return value
array An array with the following keys:
- total: the number of nodes retrieved for processing.
- processed: the number of nodes actually processed.
2 calls to node_access_rebuild_progressive_process_chunk()
- node_access_rebuild_progressive_process_cron in ./
node_access_rebuild_progressive.module - Processes a chunk of nodes at cron run.
- _drush_node_access_rebuild_progressive_process in ./
node_access_rebuild_progressive.drush.inc - Processes a pass of nodes.
File
- ./
node_access_rebuild_progressive.module, line 132 - Provides ability to rebuild node access silently.
Code
function node_access_rebuild_progressive_process_chunk() {
$current = variable_get('node_access_rebuild_progressive_current', 0);
$chunk_size = (int) variable_get('node_access_rebuild_progressive_chunk', 500);
$nids = db_query("SELECT nid FROM {node} WHERE nid < :current ORDER BY nid DESC LIMIT 0,{$chunk_size}", array(
':current' => $current,
))
->fetchCol();
$total = count($nids);
$processed = 0;
if ($total) {
$nodes = node_load_multiple($nids, array(), TRUE);
foreach ($nodes as $node) {
// Make sure the node can be loaded properly.
if (!empty($node->nid)) {
node_access_acquire_grants($node);
$current = $node->nid;
$processed++;
}
}
variable_set('node_access_rebuild_progressive_current', $current);
}
return array(
'total' => $total,
'processed' => $processed,
);
}