function hook_help in Drupal 9
Same name and namespace in other branches
- 8 core/modules/help/help.api.php \hook_help()
- 7 modules/system/system.api.php \hook_help()
Provide online user help.
By implementing hook_help(), a module can make documentation available to the user for the module as a whole, or for specific pages. Help for developers should usually be provided via function header comments in the code, or in special API example files.
The page-specific help information provided by this hook appears in the Help block (provided by the core Help module), if the block is displayed on that page. The module overview help information is displayed by the Help module. It can be accessed from the page at /admin/help or from the Extend page. If a module implements hook_help() the help system expects module overview help to be provided.
For detailed usage examples of:
- Module overview help, see content_translation_help(). Module overview help should follow the standard help template.
- Page-specific help using only routes, see book_help().
- Page-specific help using routes and $request, see block_help().
Parameters
string $route_name: For page-specific help, use the route name as identified in the module's routing.yml file. For module overview help, the route name will be in the form of "help.page.$modulename".
\Drupal\Core\Routing\RouteMatchInterface $route_match: The current route match. This can be used to generate different help output for different pages that share the same route.
Return value
string|array A render array, localized string, or object that can be rendered into a string, containing the help text.
Related topics
86 functions implement hook_help()
Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.
- action_help in core/
modules/ action/ action.module - Implements hook_help().
- aggregator_help in core/
modules/ aggregator/ aggregator.module - Implements hook_help().
- automated_cron_help in core/
modules/ automated_cron/ automated_cron.module - Implements hook_help().
- ban_help in core/
modules/ ban/ ban.module - Implements hook_help().
- basic_auth_help in core/
modules/ basic_auth/ basic_auth.module - Implements hook_help().
8 invocations of hook_help()
- field_help in core/
modules/ field/ field.module - Implements hook_help().
- HelpBlock::build in core/
modules/ help/ src/ Plugin/ Block/ HelpBlock.php - Builds and returns the renderable array for this block plugin.
- HelpController::helpPage in core/
modules/ help/ src/ Controller/ HelpController.php - Prints a page listing general help for a module.
- HelpEmptyPageTest::testEmptyHookHelp in core/
modules/ help/ tests/ src/ Kernel/ HelpEmptyPageTest.php - Ensures that no URL generator is called on a page without hook_help().
- HelpTest::getModuleList in core/
modules/ help/ tests/ src/ Functional/ HelpTest.php - Gets the list of enabled modules that implement hook_help().
File
- core/
modules/ help/ help.api.php, line 49 - Hooks for the Help system.
Code
function hook_help($route_name, \Drupal\Core\Routing\RouteMatchInterface $route_match) {
switch ($route_name) {
// Main module help for the block module.
case 'help.page.block':
return '<p>' . t('Blocks are boxes of content rendered into an area, or region, of a web page. The default theme Bartik, for example, implements the regions "Sidebar first", "Sidebar second", "Featured", "Content", "Header", "Footer", etc., and a block may appear in any one of these areas. The <a href=":blocks">blocks administration page</a> provides a drag-and-drop interface for assigning a block to a region, and for controlling the order of blocks within regions.', [
':blocks' => Url::fromRoute('block.admin_display')
->toString(),
]) . '</p>';
// Help for another path in the block module.
case 'block.admin_display':
return '<p>' . t('This page provides a drag-and-drop interface for assigning a block to a region, and for controlling the order of blocks within regions. Since not all themes implement the same regions, or display regions in the same way, blocks are positioned on a per-theme basis. Remember that your changes will not be saved until you click the <em>Save blocks</em> button at the bottom of the page.') . '</p>';
}
}