Node API Hooks

Functions to define and modify content types.

Each content type is maintained by a primary module, which is either node.module (for content types created in the user interface) or the module that implements hook_node_info() to define the content type.

During node operations (create, update, view, delete, etc.), there are several sets of hooks that get invoked to allow modules to modify the base node operation:

  • Node-type-specific hooks: When defining a node type, hook_node_info() returns a 'base' component. Node-type-specific hooks are named base_hookname() instead of mymodule_hookname() (in a module called 'mymodule' for example). Only the node type's corresponding implementation is invoked. For example, poll_node_info() in poll.module defines the base for the 'poll' node type as 'poll'. So when a poll node is created, hook_insert() is invoked on poll_insert() only. Hooks that are node-type-specific are noted below.
  • All-module hooks: This set of hooks is invoked on all implementing modules, to allow other modules to modify what the primary node module is doing. For example, hook_node_insert() is invoked on all modules when creating a poll node.
  • Field hooks: Hooks related to the fields attached to the node. These are invoked from the field operations functions described below, and can be either field-type-specific or all-module hooks.
  • Entity hooks: Generic hooks for "entity" operations. These are always invoked on all modules.

Here is a list of the node and entity hooks that are invoked, field operations, and other steps that take place during node operations:

File

modules/node/node.api.php, line 8

Functions

Title Sort descending File name Summary
hook_delete modules/node/node.api.php Respond to node deletion.
hook_form modules/node/node.api.php Display a node editing form.
hook_insert modules/node/node.api.php Respond to creation of a new node.
hook_load modules/node/node.api.php Act on nodes being loaded from the database.
hook_node_delete modules/node/node.api.php Respond to node deletion.
hook_node_info modules/node/node.api.php Define module-provided node types.
hook_node_insert modules/node/node.api.php Respond to creation of a new node.
hook_node_load modules/node/node.api.php Act on arbitrary nodes being loaded from the database.
hook_node_prepare modules/node/node.api.php Act on a node object about to be shown on the add/edit form.
hook_node_presave modules/node/node.api.php Act on a node being inserted or updated.
hook_node_revision_delete modules/node/node.api.php Respond to deletion of a node revision.
hook_node_search_result modules/node/node.api.php Act on a node being displayed as a search result.
hook_node_submit modules/node/node.api.php Act on a node after validated form values have been copied to it.
hook_node_update modules/node/node.api.php Respond to updates to a node.
hook_node_update_index modules/node/node.api.php Act on a node being indexed for searching.
hook_node_validate modules/node/node.api.php Perform node validation before a node is created or updated.
hook_node_view modules/node/node.api.php Act on a node that is being assembled before rendering.
hook_node_view_alter modules/node/node.api.php Alter the results of node_view().
hook_prepare modules/node/node.api.php Act on a node object about to be shown on the add/edit form.
hook_ranking modules/node/node.api.php Provide additional methods of scoring for core search results for nodes.
hook_update modules/node/node.api.php Respond to updates to a node.
hook_validate modules/node/node.api.php Perform node validation before a node is created or updated.
hook_view modules/node/node.api.php Display a node.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.