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().
The example functions included are not part of the Drupal core, they are just models that you can modify. Only the hooks implemented within modules are executed when running Drupal.
See also the themeable group page.
| Name | Description |
|---|---|
| hook_actions_delete | Executes code after an action is deleted. |
| hook_action_info | Declares information about actions. |
| hook_action_info_alter | Alters the actions declared by another module. |
| hook_admin_paths | Define administrative paths. |
| hook_admin_paths_alter | Redefine administrative paths defined by other modules. |
| hook_aggregator_fetch | Implement this hook to create an alternative fetcher for aggregator module. |
| hook_aggregator_fetch_info | Implement this hook to expose the title and a short description of your fetcher. |
| hook_aggregator_parse | Implement this hook to create an alternative parser for aggregator module. |
| hook_aggregator_parse_info | Implement this hook to expose the title and a short description of your parser. |
| hook_aggregator_process | Implement this hook to create a processor for aggregator module. |
| hook_aggregator_process_info | Implement this hook to expose the title and a short description of your processor. |
| hook_aggregator_remove | Implement this hook to remove stored data if a feed is being deleted or a feed's items are being removed. |
| hook_ajax_render_alter | Alter the commands that are sent to the user through the Ajax framework. |
| hook_archiver_info | Declare archivers to the system. |
| hook_archiver_info_alter | Alter archiver information declared by other modules. |
| hook_batch_alter | Alter batch information before a batch is processed. |
| hook_block_configure | Define a configuration form for a block. |
| hook_block_info | Define all blocks provided by the module. |
| hook_block_info_alter | Change block definition before saving to the database. |
| hook_block_list_alter | Act on blocks prior to rendering. |
| hook_block_save | Save the configuration options from hook_block_configure(). |
| hook_block_view | Return a rendered or renderable view of a block. |
| hook_block_view_alter | Perform alterations to the content of a block. |
| hook_block_view_MODULE_DELTA_alter | Perform alterations to a specific block. |
| hook_boot | Perform setup tasks. See also, hook_init. |
| hook_comment_delete | The comment is being deleted by the moderator. |
| hook_comment_insert | The comment is being inserted. |
| hook_comment_load | Comments are being loaded from the database. |
| hook_comment_presave | The comment passed validation and is about to be saved. |
| hook_comment_publish | The comment is being published by the moderator. |
| hook_comment_unpublish | The comment is being unpublished by the moderator. |
| hook_comment_update | The comment is being updated. |
| hook_comment_view | The comment is being viewed. This hook can be used to add additional data to the comment before theming. |
| hook_comment_view_alter | The comment was built; the module may modify the structured content. |
| hook_contextual_links_view_alter | Alter a contextual links element before it is rendered. |
| hook_countries_alter | Alter the default country list. |
| hook_cron | Perform periodic actions. |
| hook_cron_queue_info | Declare queues holding items that need to be run periodically. |
| hook_cron_queue_info_alter | Alter cron queue information before cron runs. |
| hook_css_alter | Alter CSS files before they are output on the page. |
| hook_custom_theme | Return the machine-readable name of the theme to use for the current page. |
| hook_dashboard_regions | Adds regions to the dashboard. |
| hook_dashboard_regions_alter | Alter dashboard regions provided by modules. |
| hook_date_formats | Define additional date formats. |
| hook_date_formats_alter | Alter date formats declared by another module. |
| hook_date_format_types | Define additional date types. |
| hook_date_format_types_alter | Modify existing date types. |
| hook_delete | Respond to node deletion. |
| hook_disable | Perform necessary actions before module is disabled. |
| hook_drupal_goto_alter | Change the page the user is sent to by drupal_goto(). |
| hook_element_info | Allows modules to declare their own Forms API element types and specify their default values. |
| hook_element_info_alter | Alter the element type information returned from modules. |
| hook_enable | Perform necessary actions after module is enabled. |
| hook_entity_delete | Act on entities when deleted. |
| hook_entity_info | Inform the base system and the Field API about one or more entity types. |
| hook_entity_info_alter | Alter the entity info. |
| hook_entity_insert | Act on entities when inserted. |
| hook_entity_load | Act on entities when loaded. |
| hook_entity_prepare_view | Act on entities as they are being prepared for view. |
| hook_entity_presave | Act on an entity before it is about to be created or updated. |
| hook_entity_query_alter | Alter or execute an EntityFieldQuery. |
| hook_entity_update | Act on entities when updated. |
| hook_entity_view | Act on entities being assembled before rendering. |
| hook_entity_view_alter | Alter the results of ENTITY_view(). |
| hook_exit | Perform cleanup tasks. |
| hook_filetransfer_info | Register information about FileTransfer classes provided by a module. |
| hook_filetransfer_info_alter | Alter the FileTransfer class registry. |
| hook_file_copy | Respond to a file that has been copied. |
| hook_file_delete | Respond to a file being deleted. |
| hook_file_download | Control access to private file downloads and specify HTTP headers. |
| hook_file_insert | Respond to a file being added. |
| hook_file_load | Load additional information into file objects. |
| hook_file_mimetype_mapping_alter | Alter MIME type mappings used to determine MIME type from a file extension. |
| hook_file_move | Respond to a file that has been moved. |
| hook_file_presave | Act on a file being inserted or updated. |
| hook_file_update | Respond to a file being updated. |
| hook_file_url_alter | Alter the URL to a file. |
| hook_file_validate | Check that files meet a given criteria. |
| hook_filter_format_disable | Perform actions when a text format has been disabled. |
| hook_filter_format_insert | Perform actions when a new text format has been created. |
| hook_filter_format_update | Perform actions when a text format has been updated. |
| hook_filter_info | Define content filters. |
| hook_filter_info_alter | Perform alterations on filter definitions. |
| hook_flush_caches | Add a list of cache tables to be cleared. |
| hook_form | Display a node editing form. |
| hook_forms | Map form_ids to form builder functions. |
| hook_form_alter | Perform alterations before a form is rendered. |
| hook_form_BASE_FORM_ID_alter | Provide a form-specific alteration for shared forms. |
| hook_form_FORM_ID_alter | Provide a form-specific alteration instead of the global hook_form_alter(). |
| hook_help | Provide online user help. |
| hook_hook_info | Defines one or more hooks that are exposed by a module. |
| hook_hook_info_alter | Alter information from hook_hook_info(). |
| hook_html_head_alter | Alter XHTML HEAD tags before they are rendered by drupal_get_html_head(). |
| hook_image_default_styles | Provide module-based image styles for reuse throughout Drupal. |
| hook_image_effect_info | Define information about image effects provided by a module. |
| hook_image_effect_info_alter | Alter the information provided in hook_image_effect_info(). |
| hook_image_styles_alter | Modify any image styles provided by other modules or the user. |
| hook_image_style_delete | Respond to image style deletion. |
| hook_image_style_flush | Respond to image style flushing. |
| hook_image_style_save | Respond to image style updating. |
| hook_image_toolkits | Define image toolkits provided by this module. |
| hook_init | Perform setup tasks. See also, hook_boot. |
| hook_insert | Respond to creation of a new node. |
| hook_install | Perform setup tasks when the module is installed. |
| hook_install_tasks | Return an array of tasks to be performed by an installation profile. |
| hook_install_tasks_alter | Alter the full list of installation tasks. |
| hook_js_alter | Perform necessary alterations to the JavaScript before it is presented on the page. |
| hook_language_fallback_candidates_alter | Perform alterations on the language fallback candidates. |
| hook_language_init | Allows modules to act after language initialization has been performed. |
| hook_language_negotiation_info | Allow modules to define their own language providers. |
| hook_language_negotiation_info_alter | Perform alterations on language providers. |
| hook_language_switch_links_alter | Perform alterations on language switcher links. |
| hook_language_types_info | Allow modules to define their own language types. |
| hook_language_types_info_alter | Perform alterations on language types. |
| hook_library | Registers JavaScript/CSS libraries associated with a module. |
| hook_library_alter | Alters the JavaScript/CSS library registry. |
| hook_load | Act on nodes being loaded from the database. |
| hook_locale | Allows modules to define their own text groups that can be translated. |
| hook_mail | Prepare a message based on parameters; called from drupal_mail(). |
| hook_mail_alter | Alter an email message created with the drupal_mail() function. |
| hook_menu | Define menu items and page callbacks. |
| hook_menu_alter | Alter the data being saved to the {menu_router} table after hook_menu is invoked. |
| hook_menu_breadcrumb_alter | Alter links in the active trail before it is rendered as the breadcrumb. |
| hook_menu_contextual_links_alter | Alter contextual links before they are rendered. |
| hook_menu_delete | Informs modules that a custom menu was deleted. |
| hook_menu_get_item_alter | Alter a menu router item right after it has been retrieved from the database or cache. |
| hook_menu_insert | Informs modules that a custom menu was created. |
| hook_menu_link_alter | Alter the data being saved to the {menu_links} table by menu_link_save(). |
| hook_menu_link_delete | Inform modules that a menu link has been deleted. |
| hook_menu_link_insert | Inform modules that a menu link has been created. |
| hook_menu_link_update | Inform modules that a menu link has been updated. |
| hook_menu_local_tasks_alter | Alter tabs and actions displayed on the page before they are rendered. |
| hook_menu_site_status_alter | Control site status before menu dispatching. |
| hook_menu_update | Informs modules that a custom menu was updated. |
| hook_modules_disabled | Perform necessary actions after modules are disabled. |
| hook_modules_enabled | Perform necessary actions after modules are enabled. |
| hook_modules_installed | Perform necessary actions after modules are installed. |
| hook_modules_uninstalled | Perform necessary actions after modules are uninstalled. |
| hook_module_implements_alter | Alter the registry of modules implementing a hook. |
| hook_multilingual_settings_changed | Allow modules to react to language settings changes. |
| hook_node_access | Control access to a node. |
| hook_node_access_records | Set permissions for a node to be written to the database. |
| hook_node_access_records_alter | Alter permissions for a node before it is written to the database. |
| hook_node_delete | Respond to node deletion. |
| hook_node_grants | Inform the node access system what permissions the user has. |
| hook_node_grants_alter | Alter user access rules when trying to view, edit or delete a node. |
| hook_node_info | Define module-provided node types. |
| hook_node_insert | Respond to creation of a new node. |
| hook_node_load | Act on nodes being loaded from the database. |
| hook_node_operations | Add mass node operations. |
| hook_node_prepare | Act on a node object about to be shown on the add/edit form. |
| hook_node_presave | Act on a node being inserted or updated. |
| hook_node_revision_delete | Respond to deletion of a node revision. |
| hook_node_search_result | Act on a node being displayed as a search result. |
| hook_node_submit | Act on a node after validated form values have been copied to it. |
| hook_node_type_delete | Respond to node type deletion. |
| hook_node_type_insert | Respond to node type creation. |
| hook_node_type_update | Respond to node type updates. |
| hook_node_update | Respond to updates to a node. |
| hook_node_update_index | Act on a node being indexed for searching. |
| hook_node_validate | Perform node validation before a node is created or updated. |
| hook_node_view | Act on a node that is being assembled before rendering. |
| hook_node_view_alter | Alter the results of node_view(). |
| hook_openid | Allow modules to modify the OpenID request parameters. |
| hook_openid_discovery_method_info | Allow modules to declare OpenID discovery methods. |
| hook_openid_discovery_method_info_alter | Allow modules to alter discovery methods. |
| hook_openid_normalization_method_info | Allow modules to declare OpenID normalization methods. |
| hook_openid_normalization_method_info_alter | Allow modules to alter normalization methods. |
| hook_openid_response | Allow modules to act upon a successful OpenID login. |
| hook_overlay_child_initialize | Allow modules to act when an overlay child window is initialized. |
| hook_overlay_parent_initialize | Allow modules to act when an overlay parent window is initialized. |
| hook_page_alter | Perform alterations before a page is rendered. |
| hook_page_build | Add elements to a page before it is rendered. |
| hook_page_delivery_callback_alter | Alters the delivery callback used to send the result of the page callback to the browser. |
| hook_path_delete | Allow modules to respond to a path being deleted. |
| hook_path_insert | Allow modules to respond to a path being inserted. |
| hook_path_update | Allow modules to respond to a path being updated. |
| hook_permission | Define user permissions. |
| hook_prepare | Act on a node object about to be shown on the add/edit form. |
| hook_query_alter | Perform alterations to a structured query. |
| hook_query_TAG_alter | Perform alterations to a structured query for a given tag. |
| hook_ranking | Provide additional methods of scoring for core search results for nodes. |
| hook_rdf_mapping | Allow modules to define RDF mappings for field bundles. |
| hook_rdf_namespaces | Allow modules to define namespaces for RDF mappings. |
| hook_registry_files_alter | Perform necessary alterations to the list of files parsed by the registry. |
| hook_requirements | Check installation requirements and do status reporting. |
| hook_schema | Define the current version of the database schema. |
| hook_schema_alter | Perform alterations to existing database schemas. |
| hook_search_access | Define access to a custom search routine. |
| hook_search_admin | Add elements to the search settings form. |
| hook_search_execute | Execute a search for a set of key words. |
| hook_search_info | Define a custom search type. |
| hook_search_page | Override the rendering of search results. |
| hook_search_preprocess | Preprocess text for search. |
| hook_search_reset | Take action when the search index is going to be rebuilt. |
| hook_search_status | Report the status of indexing. |
| hook_shortcut_default_set | Return the name of a default shortcut set for the provided user account. |
| hook_simpletest_alter | Alter the list of tests. |
| hook_stream_wrappers | Registers PHP stream wrapper implementations associated with a module. |
| hook_stream_wrappers_alter | Alters the list of PHP stream wrapper implementations. |
| hook_system_info_alter | Alter the information parsed from module and theme .info files |
| hook_system_themes_page_alter | Alters theme operation links. |
| hook_taxonomy_term_delete | Respond to the deletion of taxonomy terms. |
| hook_taxonomy_term_insert | Act on taxonomy terms when inserted. |
| hook_taxonomy_term_load | Act on taxonomy terms when loaded. |
| hook_taxonomy_term_presave | Act on taxonomy terms before they are saved. |
| hook_taxonomy_term_update | Act on taxonomy terms when updated. |
| hook_taxonomy_term_view_alter | Alter the results of taxonomy_term_view(). |
| hook_taxonomy_vocabulary_delete | Respond to the deletion of taxonomy vocabularies. |
| hook_taxonomy_vocabulary_insert | Act on taxonomy vocabularies when inserted. |
| hook_taxonomy_vocabulary_load | Act on taxonomy vocabularies when loaded. |
| hook_taxonomy_vocabulary_presave | Act on taxonomy vocabularies before they are saved. |
| hook_taxonomy_vocabulary_update | Act on taxonomy vocabularies when updated. |
| hook_test_finished | An individual test has finished. |
| hook_test_group_finished | A test group has finished. |
| hook_test_group_started | A test group has started. |
| hook_theme | Register a module (or theme's) theme implementations. |
| hook_theme_registry_alter | Alter the theme registry information returned from hook_theme(). |
| hook_tokens | Provide replacement values for placeholder tokens. |
| hook_tokens_alter | Alter replacement values for placeholder tokens. |
| hook_token_info | Provide information about available placeholder tokens and token types. |
| hook_token_info_alter | Alter the metadata about available placeholder tokens and token types. |
| hook_translated_menu_link_alter | Alter a menu link after it has been translated and before it is rendered. |
| hook_trigger_info | Declare triggers (events) for users to assign actions to. |
| hook_trigger_info_alter | Alter triggers declared by hook_trigger_info(). |
| hook_uninstall | Remove any information that the module sets. |
| hook_update | Respond to updates to a node. |
| hook_updater_info | Provide information on Updaters (classes that can update Drupal). |
| hook_updater_info_alter | Alter the Updater information array. |
| hook_update_dependencies | Return an array of information about module update dependencies. |
| hook_update_index | Update the search index for this module. |
| hook_update_last_removed | Return a number which is no longer available as hook_update_N(). |
| hook_update_N | Perform a single update. |
| hook_update_projects_alter | Alter the list of projects before fetching data and comparing versions. |
| hook_update_status_alter | Alter the information about available updates for projects. |
| hook_url_inbound_alter | Alters inbound URL requests. |
| hook_url_outbound_alter | Alters outbound URLs. |
| hook_username_alter | Alter the username that is displayed for a user. |
| hook_user_cancel | Act on user account cancellations. |
| hook_user_cancel_methods_alter | Modify account cancellation methods. |
| hook_user_categories | Retrieve a list of user setting or profile information categories. |
| hook_user_delete | Respond to user deletion. |
| hook_user_insert | A user account was created. |
| hook_user_load | Act on user objects when loaded from the database. |
| hook_user_login | The user just logged in. |
| hook_user_logout | The user just logged out. |
| hook_user_operations | Add mass user operations. |
| hook_user_presave | A user account is about to be created or updated. |
| hook_user_role_delete | Inform other modules that a user role has been deleted. |
| hook_user_role_insert | Inform other modules that a user role has been added. |
| hook_user_role_update | Inform other modules that a user role has been updated. |
| hook_user_update | A user account was updated. |
| hook_user_view | The user's account information is being displayed. |
| hook_user_view_alter | The user was built; the module may modify the structured content. |
| hook_validate | Perform node validation before a node is created or updated. |
| hook_verify_update_archive | Verify an archive after it has been downloaded and extracted. |
| hook_view | Display a node. |
| hook_watchdog | Log an event message |
| hook_xmlrpc | Register XML-RPC callbacks. |
| hook_xmlrpc_alter | Alters the definition of XML-RPC methods before they are called. |
| module_hook | Determine whether a module implements a hook. |
| module_hook_info | Retrieve a list of what hooks are explicitly declared. |
| module_implements | Determine which modules are implementing a hook. |
| module_implements_write_cache | Writes the hook implementation cache. |
| module_invoke | Invoke a hook in a particular module. |
| module_invoke_all | Invoke a hook in all enabled modules that implement it. |
| sample_search_conditions_callback | An example conditions callback function for search. |
drupal/