Skip navigation
Help

hook_node_operations

6 core.php hook_node_operations()
7 node.api.php hook_node_operations()

Add mass node operations.

This hook enables modules to inject custom operations into the mass operations dropdown found at admin/content, by associating a callback function with the operation, which is called when the form is submitted. The callback function receives one initial argument, which is an array of the checked nodes.

Return value

An array of operations. Each operation is an associative array that may contain the following key-value pairs:

  • 'label': Required. The label for the operation, displayed in the dropdown menu.
  • 'callback': Required. The function to call for the operation.
  • 'callback arguments': Optional. An array of additional arguments to pass to the callback function.

Related topics

1 function implements hook_node_operations()

2 invocations of hook_node_operations()

File

drupal/modules/node/node.api.php, line 421
Hooks provided by the Node module.

Code

function hook_node_operations() {
  $operations = array(
    'publish' => array(
      'label' => t('Publish selected content'), 
      'callback' => 'node_mass_update', 
      'callback arguments' => array('updates' => array('status' => NODE_PUBLISHED)),
    ), 
    'unpublish' => array(
      'label' => t('Unpublish selected content'), 
      'callback' => 'node_mass_update', 
      'callback arguments' => array('updates' => array('status' => NODE_NOT_PUBLISHED)),
    ), 
    'promote' => array(
      'label' => t('Promote selected content to front page'), 
      'callback' => 'node_mass_update', 
      'callback arguments' => array('updates' => array(
          'status' => NODE_PUBLISHED,
          'promote' => NODE_PROMOTED,
        )),
    ), 
    'demote' => array(
      'label' => t('Demote selected content from front page'), 
      'callback' => 'node_mass_update', 
      'callback arguments' => array('updates' => array('promote' => NODE_NOT_PROMOTED)),
    ), 
    'sticky' => array(
      'label' => t('Make selected content sticky'), 
      'callback' => 'node_mass_update', 
      'callback arguments' => array('updates' => array(
          'status' => NODE_PUBLISHED,
          'sticky' => NODE_STICKY,
        )),
    ), 
    'unsticky' => array(
      'label' => t('Make selected content not sticky'), 
      'callback' => 'node_mass_update', 
      'callback arguments' => array('updates' => array('sticky' => NODE_NOT_STICKY)),
    ), 
    'delete' => array(
      'label' => t('Delete selected content'), 
      'callback' => NULL,
    ),
  );
  return $operations;
}