Hooks

  1. 7.x drupal/includes/module.inc hooks
  2. 5.x drupal/includes/module.inc hooks
  3. 6.x drupal/includes/module.inc hooks
  4. 8.x drupal/core/includes/module.inc hooks

Allow modules to interact with the Drupal core.

Drupal's module system is based on the concept of "hooks". A hook is a PHP function that is named foo_bar(), where "foo" is the name of the module (whose filename is thus foo.module) and "bar" is the name of the hook. Each hook has a defined set of parameters and a specified result type.

To extend Drupal, a module need simply implement a hook. When Drupal wishes to allow intervention from modules, it determines which modules implement a hook and calls that hook in all enabled modules that implement it.

The available hooks to implement are explained here in the Hooks section of the developer documentation. The string "hook" is used as a placeholder for the module name in the hook definitions. For example, if the module file is called example.module, then hook_help() as implemented by that module would be defined as example_help().

Functions

Namesort descending Location Description
custom_url_rewrite_inbound documentation/developer/hooks/core.php custom_url_rewrite_inbound is not a hook, it's a function you can add to settings.php to alter incoming requests so they map to a Drupal path. This function is called before modules are loaded and the menu system is initialized and it changes…
custom_url_rewrite_outbound documentation/developer/hooks/core.php custom_url_rewrite_outbound is not a hook, it's a function you can add to settings.php to alter all links generated by Drupal. This function is called from url(). This function is called very frequently (100+ times per page) so performance…
hook_access documentation/developer/hooks/node.php Define access restrictions.
hook_actions_delete documentation/developer/hooks/core.php Execute code after an action is deleted.
hook_action_info documentation/developer/hooks/core.php Declare information about one or more Drupal actions.
hook_action_info_alter documentation/developer/hooks/core.php Alter the actions declared by another module.
hook_block documentation/developer/hooks/core.php Declare a block or set of blocks.
hook_boot documentation/developer/hooks/core.php Perform setup tasks. See also, hook_init.
hook_comment documentation/developer/hooks/core.php Respond to comment actions.
hook_cron documentation/developer/hooks/core.php Perform periodic actions.
hook_db_rewrite_sql documentation/developer/hooks/core.php Rewrite database queries, usually for access control.
hook_delete documentation/developer/hooks/node.php Respond to node deletion.
hook_disable documentation/developer/hooks/install.php Perform necessary actions before module is disabled.
hook_elements documentation/developer/hooks/core.php Allows modules to declare their own Forms API element types and specify their default values.
hook_enable documentation/developer/hooks/install.php Perform necessary actions after module is enabled.
hook_exit documentation/developer/hooks/core.php Perform cleanup tasks.
hook_file_download documentation/developer/hooks/core.php Control access to private file downloads and specify HTTP headers.
hook_filter documentation/developer/hooks/core.php Define content filters.
hook_filter_tips documentation/developer/hooks/core.php Provide tips for using filters.
hook_flush_caches documentation/developer/hooks/core.php Add a list of cache tables to be cleared.
hook_footer documentation/developer/hooks/core.php Insert closing HTML.
hook_form documentation/developer/hooks/node.php Display a node editing form.
hook_forms documentation/developer/hooks/core.php Map form_ids to builder functions.
hook_form_alter documentation/developer/hooks/core.php Perform alterations before a form is rendered.
hook_form_FORM_ID_alter documentation/developer/hooks/core.php Provide a form-specific alteration instead of the global hook_form_alter().
hook_help documentation/developer/hooks/core.php Provide online user help.
hook_hook_info documentation/developer/hooks/core.php Expose a list of triggers (events) that users can assign actions to.
hook_init documentation/developer/hooks/core.php Perform setup tasks. See also, hook_boot.
hook_insert documentation/developer/hooks/node.php Respond to node insertion.
hook_install documentation/developer/hooks/install.php Install the current version of the database schema, and any other setup tasks.
hook_link documentation/developer/hooks/core.php Define internal Drupal links.
hook_link_alter documentation/developer/hooks/core.php Perform alterations before links on a node or comment are rendered.
hook_load documentation/developer/hooks/node.php Load node-type-specific information.
hook_locale documentation/developer/hooks/core.php Allows modules to define their own text groups that can be translated.
hook_mail documentation/developer/hooks/core.php Prepare a message based on parameters; called from drupal_mail().
hook_mail_alter documentation/developer/hooks/core.php Alter any aspect of email sent by Drupal. You can use this hook to add a common site footer to all outgoing email, add extra header fields, and/or modify the email in any way. HTML-izing the outgoing email is one possibility. See also drupal_mail().
hook_menu documentation/developer/hooks/core.php Define menu items and page callbacks.
hook_menu_alter documentation/developer/hooks/core.php Alter the data being saved to the {menu_router} table after hook_menu is invoked.
hook_menu_link_alter documentation/developer/hooks/core.php Alter the data being saved to the {menu_links} table by menu_link_save().
hook_nodeapi documentation/developer/hooks/core.php Act on nodes defined by other modules.
hook_node_access_records documentation/developer/hooks/core.php Set permissions for a node to be written to the database.
hook_node_grants documentation/developer/hooks/core.php Inform the node access system what permissions the user has.
hook_node_info documentation/developer/hooks/node.php Define module-provided node types.
hook_node_operations documentation/developer/hooks/core.php Add mass node operations.
hook_node_type documentation/developer/hooks/node.php Act on node type changes.
hook_openid documentation/developer/hooks/core.php Allow modules to modify the OpenID request parameters.
hook_perm documentation/developer/hooks/core.php Define user permissions.
hook_ping documentation/developer/hooks/core.php Ping another server.
hook_prepare documentation/developer/hooks/node.php This is a hook used by node modules. It is called after load but before the node is shown on the add/edit form.
hook_preprocess documentation/developer/hooks/core.php Preprocess theme variables for template files.
hook_preprocess_HOOK documentation/developer/hooks/core.php Preprocess theme variables for a specific theme hook.
hook_profile_alter documentation/developer/hooks/core.php Alter profile items before they are rendered.
hook_requirements documentation/developer/hooks/install.php Check installation requirements and do status reporting.
hook_schema documentation/developer/hooks/install.php Define the current version of the database schema.
hook_schema_alter documentation/developer/hooks/core.php Performs alterations to existing database schemas.
hook_search documentation/developer/hooks/core.php Define a custom search routine.
hook_search_page documentation/developer/hooks/core.php Override the rendering of search results.
hook_search_preprocess documentation/developer/hooks/core.php Preprocess text for the search index.
hook_system_info_alter documentation/developer/hooks/core.php Alter the information parsed from module and theme .info files
hook_taxonomy documentation/developer/hooks/core.php Act on taxonomy changes.
hook_term_path documentation/developer/hooks/core.php Allows modules to provide an alternative path for the terms it manages.
hook_theme documentation/developer/hooks/core.php Register a module (or theme's) theme implementations.
hook_theme_registry_alter documentation/developer/hooks/core.php Alter the theme registry information returned from hook_theme().
hook_translated_menu_link_alter documentation/developer/hooks/core.php Alter a menu link after it's translated, but before it's rendered.
hook_translation_link_alter documentation/developer/hooks/core.php Perform alterations on translation links.
hook_uninstall documentation/developer/hooks/install.php Remove any information that the module sets.
hook_update documentation/developer/hooks/node.php Respond to node updating.
hook_update_index documentation/developer/hooks/core.php Update Drupal's full-text index for this module.
hook_update_last_removed documentation/developer/hooks/install.php Return a number which is no longer available as hook_update_N().
hook_update_N documentation/developer/hooks/install.php Perform a single update.
hook_update_projects_alter documentation/developer/hooks/core.php Alter the list of projects before fetching data and comparing versions.
hook_update_status_alter documentation/developer/hooks/core.php Alter the information about available updates for projects.
hook_user documentation/developer/hooks/core.php Act on user account actions.
hook_user_operations documentation/developer/hooks/core.php Add mass user operations.
hook_validate documentation/developer/hooks/node.php Verify a node editing form.
hook_view documentation/developer/hooks/node.php Display a node.
hook_watchdog documentation/developer/hooks/core.php Log an event message
hook_xmlrpc documentation/developer/hooks/core.php Register XML-RPC callbacks.
module_hook drupal/includes/module.inc Determine whether a module implements a hook.
module_implements drupal/includes/module.inc Determine which modules are implementing a hook.
module_invoke drupal/includes/module.inc Invoke a hook in a particular module.
module_invoke_all drupal/includes/module.inc Invoke a hook in all enabled modules that implement it.
page_cache_fastpath documentation/developer/hooks/core.php Outputs a cached page.

File

drupal/includes/module.inc, line 379
API for loading and interacting with Drupal modules.