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

Define functions that alter the behavior of Drupal core.

One way for modules to alter the core behavior of Drupal (or another module) is to use hooks. Hooks are specially-named functions that a module defines (this is known as "implementing the hook"), which are discovered and called at specific times to alter or add to the base behavior or data (this is known as "invoking the hook"). Each hook has a name (example: hook_batch_alter()), a defined set of parameters, and a defined return value. Your modules can implement hooks that are defined by Drupal core or other modules that they interact with. Your modules can also define their own hooks, in order to let other modules interact with them.

To implement a hook:

  • Locate the documentation for the hook. Hooks are documented in *.api.php files, by defining functions whose name starts with "hook_" (these files and their functions are never loaded by Drupal -- they exist solely for documentation). The function should have a documentation header, as well as a sample function body. For example, in the core file system.api.php, you can find hooks such as hook_batch_alter(). Also, if you are viewing this documentation on an API reference site, the Core hooks will be listed in this topic.
  • Copy the function to your module's .module file.
  • Change the name of the function, substituting your module's short name (name of the module's directory, and .info.yml file without the extension) for the "hook" part of the sample function name. For instance, to implemnt hook_batch_alter(), you would rename it to my_module_batch_alter().
  • Edit the documentation for the function (normally, your implementation should just have one line saying "Implements hook_batch_alter().").
  • Edit the body of the function, substituting in what you need your module to do.

To define a hook:

  • Choose a unique name for your hook. It should start with "hook_", followed by your module's short name.
  • Provide documentation in a *.api.php file in your module's main directory. See the "implementing" section above for details of what this should contain (parameters, return value, and sample function body).
  • Invoke the hook in your module's code.

To invoke a hook, use methods on \Drupal\Core\Extension\ModuleHandlerInterface such as alter(), invoke(), and invokeAll(). You can obtain a module handler by calling \Drupal::moduleHandler(), or getting the 'module_handler' service on an injected container.

See also

Extending and altering Drupal

Default theme implementations

Callbacks

\Drupal\Core\Extension\ModuleHandlerInterface

\Drupal::moduleHandler()

Functions

Namesort descending Location Description
callback_queue_worker drupal/core/modules/system/system.api.php Work on a single queue item.
hook_ajax_render_alter drupal/core/modules/system/system.api.php Alter the Ajax command data that is sent to the client.
hook_archiver_info_alter drupal/core/modules/system/system.api.php Alter archiver information declared by other modules.
hook_batch_alter drupal/core/modules/system/system.api.php Alter batch information before a batch is processed.
hook_block_access drupal/core/modules/block/block.api.php Control access to a block instance.
hook_block_view_alter drupal/core/modules/block/block.api.php Alter the result of \Drupal\block\BlockBase::build().
hook_block_view_BASE_BLOCK_ID_alter drupal/core/modules/block/block.api.php Provide a block plugin specific block_view alteration.
hook_cache_flush drupal/core/modules/system/system.api.php Flush all persistent and static caches.
hook_ckeditor_css_alter drupal/core/modules/ckeditor/ckeditor.api.php Modify the list of CSS files that will be added to a CKEditor instance.
hook_ckeditor_plugin_info_alter drupal/core/modules/ckeditor/ckeditor.api.php Modify the list of available CKEditor plugins.
hook_comment_links_alter drupal/core/modules/comment/comment.api.php Alter the links of a comment.
hook_config_import_steps_alter drupal/core/modules/system/system.api.php Alter the configuration synchronization steps.
hook_config_translation_info drupal/core/modules/config_translation/config_translation.api.php Introduce dynamic translation tabs for translation of configuration.
hook_config_translation_info_alter drupal/core/modules/config_translation/config_translation.api.php Alter existing translation tabs for translation of configuration.
hook_config_translation_type_info_alter drupal/core/modules/config_translation/config_translation.api.php Alter config typed data definitions.
hook_contextual_links_alter drupal/core/modules/system/system.api.php Alter contextual links before they are rendered.
hook_contextual_links_plugins_alter drupal/core/modules/system/system.api.php Alter the plugin definition of contextual links.
hook_contextual_links_view_alter drupal/core/modules/contextual/contextual.api.php Alter a contextual links element before it is rendered.
hook_countries_alter drupal/core/modules/system/system.api.php Alter the default country list.
hook_cron drupal/core/modules/system/system.api.php Perform periodic actions.
hook_css_alter drupal/core/modules/system/system.api.php Alter CSS files before they are output on the page.
hook_data_type_info_alter drupal/core/modules/system/system.api.php Alter available data types for typed data wrappers.
hook_display_variant_plugin_alter drupal/core/modules/system/core.api.php Alter display variant plugin definitions.
hook_editor_default_settings drupal/core/modules/editor/editor.api.php Provides defaults for editor instances.
hook_editor_default_settings_alter drupal/core/modules/editor/editor.api.php Modifies default settings for editor instances.
hook_editor_info_alter drupal/core/modules/editor/editor.api.php Performs alterations on text editor definitions.
hook_editor_js_settings_alter drupal/core/modules/editor/editor.api.php Modifies JavaScript settings that are added for text editors.
hook_editor_xss_filter_alter drupal/core/modules/editor/editor.api.php Modifies the text editor XSS filter that will used for the given text format.
hook_element_info drupal/core/modules/system/system.api.php Allows modules to declare their own Form API element types and specify their default values.
hook_element_info_alter drupal/core/modules/system/system.api.php Alter the element type information returned from modules.
hook_entity_access drupal/core/modules/system/entity.api.php Control entity operation access.
hook_entity_base_field_info drupal/core/modules/system/entity.api.php Provides custom base field definitions for a content entity type.
hook_entity_base_field_info_alter drupal/core/modules/system/entity.api.php Alter base field definitions for a content entity type.
hook_entity_build_defaults_alter drupal/core/modules/system/entity.api.php Alter entity renderable values before cache checking in drupal_render().
hook_entity_bundle_create drupal/core/modules/system/entity.api.php Act on entity_bundle_create().
hook_entity_bundle_delete drupal/core/modules/system/entity.api.php Act on entity_bundle_delete().
hook_entity_bundle_field_info drupal/core/modules/system/entity.api.php Provides field definitions for a specific bundle within an entity type.
hook_entity_bundle_field_info_alter drupal/core/modules/system/entity.api.php Alter bundle field definitions.
hook_entity_bundle_info drupal/core/modules/system/entity.api.php Describe the bundles for entity types.
hook_entity_bundle_info_alter drupal/core/modules/system/entity.api.php Alter the bundles for entity types.
hook_entity_bundle_rename drupal/core/modules/system/entity.api.php Act on entity_bundle_rename().
hook_entity_create drupal/core/modules/system/entity.api.php Act on a newly created entity.
hook_entity_create_access drupal/core/modules/system/entity.api.php Control entity create access.
hook_entity_delete drupal/core/modules/system/entity.api.php Respond to entity deletion.
hook_entity_display_build_alter drupal/core/modules/system/entity.api.php Alter the render array generated by an EntityDisplay for an entity.
hook_entity_extra_field_info drupal/core/modules/system/entity.api.php Exposes "pseudo-field" components on content entities.
hook_entity_extra_field_info_alter drupal/core/modules/system/entity.api.php Alter "pseudo-field" components on content entities.
hook_entity_field_access drupal/core/modules/system/entity.api.php Control access to fields.
hook_entity_field_access_alter drupal/core/modules/system/entity.api.php Alter the default access behavior for a given field.
hook_entity_field_storage_info drupal/core/modules/system/entity.api.php Provides field storage definitions for a content entity type.
hook_entity_field_storage_info_alter drupal/core/modules/system/entity.api.php Alter field storage definitions for a content entity type.
hook_entity_form_display_alter drupal/core/modules/system/entity.api.php Alter the settings used for displaying an entity form.
hook_entity_insert drupal/core/modules/system/entity.api.php Respond to creation of a new entity.
hook_entity_load drupal/core/modules/system/entity.api.php Act on entities when loaded.
hook_entity_operation drupal/core/modules/system/entity.api.php Declares entity operations.
hook_entity_operation_alter drupal/core/modules/system/entity.api.php Alter entity operations.
hook_entity_predelete drupal/core/modules/system/entity.api.php Act before entity deletion.
hook_entity_prepare_form drupal/core/modules/system/entity.api.php Acts on an entity object about to be shown on an entity form.
hook_entity_prepare_view drupal/core/modules/system/entity.api.php Act on entities as they are being prepared for view.
hook_entity_presave drupal/core/modules/system/entity.api.php Act on an entity before it is created or updated.
hook_entity_query_alter drupal/core/modules/system/entity.api.php Alter or execute an Drupal\Core\Entity\Query\EntityQueryInterface.
hook_entity_revision_delete drupal/core/modules/system/entity.api.php Respond to entity revision deletion.
hook_entity_storage_load drupal/core/modules/system/entity.api.php Act on content entities when loaded from the storage.
hook_entity_translation_delete drupal/core/modules/system/entity.api.php Respond to entity translation deletion.
hook_entity_translation_insert drupal/core/modules/system/entity.api.php Respond to creation of a new entity translation.
hook_ENTITY_TYPE_access drupal/core/modules/system/entity.api.php Control entity operation access for a specific entity type.
hook_entity_type_alter drupal/core/modules/system/entity.api.php Alter the entity type definitions.
hook_entity_type_build drupal/core/modules/system/entity.api.php Add to entity type definitions.
hook_ENTITY_TYPE_build_defaults_alter drupal/core/modules/system/entity.api.php Alter entity renderable values before cache checking in drupal_render().
hook_ENTITY_TYPE_create drupal/core/modules/system/entity.api.php Act on a newly created entity of a specific type.
hook_ENTITY_TYPE_create_access drupal/core/modules/system/entity.api.php Control entity create access for a specific entity type.
hook_ENTITY_TYPE_delete drupal/core/modules/system/entity.api.php Respond to entity deletion of a particular type.
hook_ENTITY_TYPE_insert drupal/core/modules/system/entity.api.php Respond to creation of a new entity of a particular type.
hook_ENTITY_TYPE_load drupal/core/modules/system/entity.api.php Act on entities of a specific type when loaded.
hook_ENTITY_TYPE_predelete drupal/core/modules/system/entity.api.php Act before entity deletion of a particular entity type.
hook_ENTITY_TYPE_prepare_form drupal/core/modules/system/entity.api.php Acts on a particular type of entity object about to be in an entity form.
hook_ENTITY_TYPE_presave drupal/core/modules/system/entity.api.php Act on a specific type of entity before it is created or updated.
hook_ENTITY_TYPE_revision_delete drupal/core/modules/system/entity.api.php Respond to entity revision deletion of a particular type.
hook_ENTITY_TYPE_storage_load drupal/core/modules/system/entity.api.php Act on content entities of a given type when loaded from the storage.
hook_ENTITY_TYPE_translation_delete drupal/core/modules/system/entity.api.php Respond to entity translation deletion of a particular type.
hook_ENTITY_TYPE_translation_insert drupal/core/modules/system/entity.api.php Respond to creation of a new entity translation of a particular type.
hook_ENTITY_TYPE_update drupal/core/modules/system/entity.api.php Respond to updates to an entity of a particular type.
hook_ENTITY_TYPE_view drupal/core/modules/system/entity.api.php Act on entities of a particular type being assembled before rendering.
hook_ENTITY_TYPE_view_alter drupal/core/modules/system/entity.api.php Alter the results of the entity build array for a particular entity type.
hook_entity_update drupal/core/modules/system/entity.api.php Respond to updates to an entity.
hook_entity_view drupal/core/modules/system/entity.api.php Act on entities being assembled before rendering.
hook_entity_view_alter drupal/core/modules/system/entity.api.php Alter the results of the entity build array.
hook_entity_view_display_alter drupal/core/modules/system/entity.api.php Alter the settings used for displaying an entity.
hook_entity_view_mode_alter drupal/core/modules/system/entity.api.php Change the view mode of an entity that is being displayed.
hook_entity_view_mode_info_alter drupal/core/modules/system/entity.api.php Alter the view modes for entity types.
hook_field_formatter_info_alter drupal/core/modules/field/field.api.php Perform alterations on Field API formatter types.
hook_field_info_alter drupal/core/modules/field/field.api.php Perform alterations on Field API field types.
hook_field_info_max_weight drupal/core/modules/field/field.api.php Returns the maximum weight for the entity components handled by the module.
hook_field_purge_field_storage drupal/core/modules/field/field.api.php Acts when a field storage definition is being purged.
hook_field_purge_instance drupal/core/modules/field/field.api.php Acts when a field instance is being purged.
hook_field_storage_config_update_forbid drupal/core/modules/field/field.api.php Forbid a field storage update from occurring.
hook_field_widget_form_alter drupal/core/modules/field/field.api.php Alter forms for field widgets provided by other modules.
hook_field_widget_info_alter drupal/core/modules/field/field.api.php Perform alterations on Field API widget types.
hook_field_widget_WIDGET_TYPE_form_alter drupal/core/modules/field/field.api.php Alter widget forms for a specific widget provided by another module.
hook_filetransfer_info drupal/core/modules/system/system.api.php Register information about FileTransfer classes provided by a module.
hook_filetransfer_info_alter drupal/core/modules/system/system.api.php Alter the FileTransfer class registry.
hook_file_copy drupal/core/modules/file/file.api.php Respond to a file that has been copied.
hook_file_download drupal/core/modules/system/system.api.php Control access to private file downloads and specify HTTP headers.
hook_file_mimetype_mapping_alter drupal/core/modules/system/system.api.php Alter MIME type mappings used to determine MIME type from a file extension.
hook_file_move drupal/core/modules/file/file.api.php Respond to a file that has been moved.
hook_file_url_alter drupal/core/modules/system/system.api.php Alter the URL to a file.
hook_file_validate drupal/core/modules/file/file.api.php Check that files meet a given criteria.
hook_filter_format_disable drupal/core/modules/filter/filter.api.php Perform actions when a text format has been disabled.
hook_filter_info_alter drupal/core/modules/filter/filter.api.php Perform alterations on filter definitions.
hook_filter_secure_image_alter drupal/core/modules/filter/filter.api.php Alters images with an invalid source.
hook_form_alter drupal/core/modules/system/system.api.php Perform alterations before a form is rendered.
hook_form_BASE_FORM_ID_alter drupal/core/modules/system/system.api.php Provide a form-specific alteration for shared ('base') forms.
hook_form_FORM_ID_alter drupal/core/modules/system/system.api.php Provide a form-specific alteration instead of the global hook_form_alter().
hook_help drupal/core/modules/system/system.api.php Provide online user help.
hook_hook_info drupal/core/modules/system/system.api.php Defines one or more hooks that are exposed by a module.
hook_image_effect_info_alter drupal/core/modules/image/image.api.php Alter the information provided in \Drupal\image\Annotation\ImageEffect.
hook_image_style_flush drupal/core/modules/image/image.api.php Respond to image style flushing.
hook_install drupal/core/modules/system/system.api.php Perform setup tasks when the module is installed.
hook_install_tasks drupal/core/modules/system/system.api.php Return an array of tasks to be performed by an installation profile.
hook_install_tasks_alter drupal/core/modules/system/system.api.php Alter the full list of installation tasks.
hook_js_alter drupal/core/modules/system/system.api.php Perform necessary alterations to the JavaScript before it is presented on the page.
hook_language_fallback_candidates_alter drupal/core/modules/language/language.api.php Allow modules to alter the language fallback candidates.
hook_language_fallback_candidates_OPERATION_alter drupal/core/modules/language/language.api.php Allow modules to alter the fallback candidates for specific operations.
hook_language_negotiation_info_alter drupal/core/modules/language/language.api.php Perform alterations on language negotiation methods.
hook_language_switch_links_alter drupal/core/modules/system/language.api.php Perform alterations on language switcher links.
hook_language_types_info drupal/core/modules/language/language.api.php Define language types.
hook_language_types_info_alter drupal/core/modules/language/language.api.php Perform alterations on language types.
hook_library_alter drupal/core/modules/system/system.api.php Alters a JavaScript/CSS library before it is attached.
hook_library_info_alter drupal/core/modules/system/system.api.php Alters the JavaScript/CSS library registry.
hook_link_alter drupal/core/modules/system/system.api.php Alter the parameters for links.
hook_locale_translation_projects_alter drupal/core/modules/locale/locale.api.php Alter the list of projects to be updated by locale's interface translation.
hook_local_tasks_alter drupal/core/modules/system/system.api.php Alter local tasks plugins.
hook_mail drupal/core/modules/system/system.api.php Prepare a message based on parameters; called from drupal_mail().
hook_mail_alter drupal/core/modules/system/system.api.php Alter an email message created with the drupal_mail() function.
hook_mail_backend_info_alter drupal/core/modules/system/system.api.php Alter the list of mail backend plugin definitions.
hook_menu_link_defaults_alter drupal/core/modules/system/system.api.php Alter links for menus.
hook_menu_local_actions_alter drupal/core/modules/system/system.api.php Alter local actions plugins.
hook_menu_local_tasks drupal/core/modules/system/system.api.php Alter tabs and actions displayed on the page before they are rendered.
hook_menu_local_tasks_alter drupal/core/modules/system/system.api.php Alter tabs and actions displayed on the page before they are rendered.
hook_migrate_prepare_row drupal/core/modules/migrate/migrate.api.php Allows adding data to a row before processing it.
hook_modules_installed drupal/core/modules/system/system.api.php Perform necessary actions after modules are installed.
hook_modules_uninstalled drupal/core/modules/system/system.api.php Perform necessary actions after modules are uninstalled.
hook_module_implements_alter drupal/core/modules/system/system.api.php Alter the registry of modules implementing a hook.
hook_module_preinstall drupal/core/modules/system/system.api.php Perform necessary actions before a module is installed.
hook_module_preuninstall drupal/core/modules/system/system.api.php Perform necessary actions before a module is uninstalled.
hook_node_access drupal/core/modules/node/node.api.php Controls access to a node.
hook_node_access_records drupal/core/modules/node/node.api.php Set permissions for a node to be written to the database.
hook_node_access_records_alter drupal/core/modules/node/node.api.php Alter permissions for a node before it is written to the database.
hook_node_grants drupal/core/modules/node/node.api.php Inform the node access system what permissions the user has.
hook_node_grants_alter drupal/core/modules/node/node.api.php Alter user access rules when trying to view, edit or delete a node.
hook_node_links_alter drupal/core/modules/node/node.api.php Alter the links of a node.
hook_node_search_result drupal/core/modules/node/node.api.php Act on a node being displayed as a search result.
hook_node_submit drupal/core/modules/node/node.api.php Act on a node after validated form values have been copied to it.
hook_node_update_index drupal/core/modules/node/node.api.php Act on a node being indexed for searching.
hook_node_validate drupal/core/modules/node/node.api.php Perform node validation before a node is created or updated.
hook_page_alter drupal/core/modules/system/system.api.php Perform alterations before a page is rendered.
hook_page_build drupal/core/modules/system/system.api.php Add elements to a page before it is rendered.
hook_path_delete drupal/core/modules/path/path.api.php Respond to a path being deleted.
hook_path_insert drupal/core/modules/path/path.api.php Respond to a path being inserted.
hook_path_update drupal/core/modules/path/path.api.php Respond to a path being updated.
hook_permission drupal/core/modules/system/system.api.php Define user permissions.
hook_query_alter drupal/core/modules/system/system.api.php Perform alterations to a structured query.
hook_query_TAG_alter drupal/core/modules/system/system.api.php Perform alterations to a structured query for a given tag.
hook_queue_info drupal/core/modules/system/system.api.php Declare queues holding items that need to be run periodically.
hook_queue_info_alter drupal/core/modules/system/system.api.php Alter cron queue information before cron runs.
hook_quickedit_editor_alter drupal/core/modules/quickedit/quickedit.api.php Allow modules to alter in-place editor plugin metadata.
hook_quickedit_render_field drupal/core/modules/quickedit/quickedit.api.php Returns a renderable array for the value of a single field in an entity.
hook_ranking drupal/core/modules/node/node.api.php Provide additional methods of scoring for core search results for nodes.
hook_rdf_namespaces drupal/core/modules/rdf/rdf.api.php Allow modules to define namespaces for RDF mappings.
hook_rebuild drupal/core/modules/system/system.api.php Rebuild data based upon refreshed caches.
hook_requirements drupal/core/modules/system/system.api.php Check installation requirements and do status reporting.
hook_rest_resource_alter drupal/core/modules/rest/rest.api.php Alter the resource plugin definitions.
hook_schema drupal/core/modules/system/system.api.php Define the current version of the database schema.
hook_schema_alter drupal/core/modules/system/system.api.php Perform alterations to existing database schemas.
hook_search_plugin_alter drupal/core/modules/search/search.api.php Alter search plugin definitions.
hook_search_preprocess drupal/core/modules/search/search.api.php Preprocess text for search.
hook_shortcut_default_set drupal/core/modules/shortcut/shortcut.api.php Return the name of a default shortcut set for the provided user account.
hook_simpletest_alter drupal/core/modules/simpletest/simpletest.api.php Alter the list of tests.
hook_stream_wrappers drupal/core/modules/system/system.api.php Registers PHP stream wrapper implementations associated with a module.
hook_stream_wrappers_alter drupal/core/modules/system/system.api.php Alters the list of PHP stream wrapper implementations.
hook_system_breadcrumb_alter drupal/core/modules/system/system.api.php Perform alterations to the breadcrumb built by the BreadcrumbManager.
hook_system_info_alter drupal/core/modules/system/system.api.php Alter the information parsed from module and theme .info.yml files
hook_system_themes_page_alter drupal/core/modules/system/system.api.php Alters theme operation links.
hook_template_preprocess_default_variables_alter drupal/core/modules/system/system.api.php Alter the default, hook-independent variables for all templates.
hook_test_finished drupal/core/modules/simpletest/simpletest.api.php An individual test has finished.
hook_test_group_finished drupal/core/modules/simpletest/simpletest.api.php A test group has finished.
hook_test_group_started drupal/core/modules/simpletest/simpletest.api.php A test group has started.
hook_theme drupal/core/modules/system/system.api.php Register a module or theme's theme implementations.
hook_theme_registry_alter drupal/core/modules/system/system.api.php Alter the theme registry information returned from hook_theme().
hook_tokens drupal/core/modules/system/system.api.php Provide replacement values for placeholder tokens.
hook_tokens_alter drupal/core/modules/system/system.api.php Alter replacement values for placeholder tokens.
hook_token_info drupal/core/modules/system/system.api.php Provide information about available placeholder tokens and token types.
hook_token_info_alter drupal/core/modules/system/system.api.php Alter the metadata about available placeholder tokens and token types.
hook_toolbar drupal/core/modules/toolbar/toolbar.api.php Add items to the toolbar menu.
hook_toolbar_alter drupal/core/modules/toolbar/toolbar.api.php Alter the toolbar menu after hook_toolbar() is invoked.
hook_tour_tips_alter drupal/core/modules/tour/tour.api.php Allow modules to alter tour items before render.
hook_tour_tips_info_alter drupal/core/modules/tour/tour.api.php Allow modules to alter tip plugin definitions.
hook_translated_menu_link_alter drupal/core/modules/menu_link/menu_link.api.php Alter a menu link after it has been translated and before it is rendered.
hook_transliteration_overrides_alter drupal/core/modules/system/language.api.php Provide language-specific overrides for transliteration.
hook_uninstall drupal/core/modules/system/system.api.php Remove any information that the module sets.
hook_updater_info drupal/core/modules/system/system.api.php Provide information on Updaters (classes that can update Drupal).
hook_updater_info_alter drupal/core/modules/system/system.api.php Alter the Updater information array.
hook_update_dependencies drupal/core/modules/system/system.api.php Return an array of information about module update dependencies.
hook_update_last_removed drupal/core/modules/system/system.api.php Return a number which is no longer available as hook_update_N().
hook_update_N drupal/core/modules/system/system.api.php Perform a single update.
hook_update_projects_alter drupal/core/modules/update/update.api.php Alter the list of projects before fetching data and comparing versions.
hook_update_status_alter drupal/core/modules/update/update.api.php Alter the information about available updates for projects.
hook_user_cancel drupal/core/modules/user/user.api.php Act on user account cancellations.
hook_user_cancel_methods_alter drupal/core/modules/user/user.api.php Modify account cancellation methods.
hook_user_format_name_alter drupal/core/modules/user/user.api.php Alter the username that is displayed for a user.
hook_user_login drupal/core/modules/user/user.api.php The user just logged in.
hook_user_logout drupal/core/modules/user/user.api.php The user just logged out.
hook_verify_update_archive drupal/core/modules/update/update.api.php Verify an archive after it has been downloaded and extracted.

File

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