function hook_help
Same name in other branches
- 9 core/modules/help/help.api.php \hook_help()
- 8.9.x core/modules/help/help.api.php \hook_help()
- 10 core/modules/help/help.api.php \hook_help()
- 11.x core/modules/help/help.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 paths. 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 as a system help block 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 Modules page.
For detailed usage examples of:
- Module overview help, see node_help(). Module overview help should follow the standard help template.
- Page-specific help with simple paths, see dashboard_help().
- Page-specific help using wildcards in path and $arg, see node_help() and block_help().
Parameters
$path: The router menu path, as defined in hook_menu(), for the help that is being requested; e.g., 'admin/people' or 'user/register'. If the router path includes a wildcard, then this will appear in $path as %, even if it is a named %autoloader wildcard in the hook_menu() implementation; for example, node pages would have $path equal to 'node/%' or 'node/%/view'. For the help page for the module as a whole, $path will have the value 'admin/help#module_name', where 'module_name" is the machine name of your module.
$arg: An array that corresponds to the return value of the arg() function, for modules that want to provide help that is specific to certain values of wildcards in $path. For example, you could provide help for the path 'user/1' by looking for the path 'user/%' and $arg[1] == '1'. This given array should always be used rather than directly invoking arg(), because your hook implementation may be called for other purposes besides building the current page's help. Note that depending on which module is invoking hook_help, $arg may contain only empty strings. Regardless, $arg[0] to $arg[11] will always be set.
Return value
A localized string containing the help text.
Related topics
49 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.
- aggregator_help in modules/
aggregator/ aggregator.module - Implements hook_help().
- block_help in modules/
block/ block.module - Implements hook_help().
- blog_help in modules/
blog/ blog.module - Implements hook_help().
- book_help in modules/
book/ book.module - Implements hook_help().
- boot_test_2_help in modules/
simpletest/ tests/ boot_test_2.module - Implements hook_help().
8 invocations of hook_help()
- boot_test_1_boot in modules/
simpletest/ tests/ boot_test_1.module - Implements hook_boot().
- EarlyBootstrapTestCase::testHookBoot in modules/
simpletest/ tests/ boot.test - Test hook_boot() on both regular and "early exit" pages.
- field_help in modules/
field/ field.module - Implements hook_help().
- help_links_as_list in modules/
help/ help.admin.inc - Provides a formatted list of available help topics.
- help_menu in modules/
help/ help.module - Implements hook_menu().
File
-
modules/
system/ system.api.php, line 2184
Code
function hook_help($path, $arg) {
switch ($path) {
// Main module help for the block module
case 'admin/help#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.', array(
'@blocks' => url('admin/structure/block'),
)) . '</p>';
// Help for another path in the block module
case 'admin/structure/block':
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>';
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.