node_mass_update(array $nodes, array $updates, $langcode = NULL, $load = FALSE, $revisions = FALSE)
Updates all nodes in the passed-in array with the passed-in field values.
IMPORTANT NOTE: This function is intended to work when called from a form submission handler. Calling it outside of the form submission process may not work correctly.
Parameters
array $nodes: Array of node nids or nodes to update.
array $updates: Array of key/value pairs with node field names and the value to update that field to.
string $langcode: (optional) The language updates should be applied to. If none is specified all available languages are processed.
bool $load: (optional) TRUE if $nodes contains an array of node IDs to be loaded, FALSE if it contains fully loaded nodes. Defaults to FALSE.
bool $revisions: (optional) TRUE if $nodes contains an array of revision IDs instead of node IDs. Defaults to FALSE; will be ignored if $load is FALSE.
File
- core/modules/node/node.admin.inc, line 33
- Content administration and module settings user interface.
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | function node_mass_update( array $nodes , array $updates , $langcode = NULL, $load = FALSE, $revisions = FALSE) { // We use batch processing to prevent timeout when updating a large number // of nodes. if ( count ( $nodes ) > 10) { $batch = array ( 'operations' => array ( array ( '_node_mass_update_batch_process' , array ( $nodes , $updates , $langcode , $load , $revisions )) ), 'finished' => '_node_mass_update_batch_finished' , 'title' => t( 'Processing' ), // We use a single multi-pass operation, so the default // 'Remaining x of y operations' message will be confusing here. 'progress_message' => '' , 'error_message' => t( 'The update has encountered an error.' ), // The operations do not live in the .module file, so we need to // tell the batch engine which file to load before calling them. 'file' => drupal_get_path( 'module' , 'node' ) . '/node.admin.inc' , ); batch_set( $batch ); } else { if ( $load && ! $revisions ) { $nodes = Node::loadMultiple( $nodes ); } foreach ( $nodes as $node ) { if ( $load && $revisions ) { $node = entity_revision_load( 'node' , $node ); } _node_mass_update_helper( $node , $updates , $langcode ); } drupal_set_message(t( 'The update has been performed.' )); } } |
Please login to continue.