function module_implements in Drupal 4
Same name and namespace in other branches
- 5 includes/module.inc \module_implements()
- 6 includes/module.inc \module_implements()
- 7 includes/module.inc \module_implements()
Determine which modules are implementing a hook.
Parameters
$hook: The name of the hook (e.g. "help" or "menu").
$sort: By default, modules are ordered by weight and filename, settings this option to TRUE, module list will be ordered by module name.
Return value
An array with the names of the modules which are implementing this hook.
Related topics
10 calls to module_implements()
- comment_invoke_comment in modules/
comment.module - Invoke a hook_comment() operation in all modules.
- drupal_get_form in includes/
form.inc - Processes a form array and produces the HTML output of a form. If there is input in the $_POST['edit'] variable, this function will attempt to validate it, using drupal_validate_form(), and then submit the form using drupal_submit_form().
- help_links_as_list in modules/
help.module - help_menu in modules/
help.module - Implementation of hook_menu().
- module_invoke_all in includes/
module.inc - Invoke a hook in all enabled modules that implement it.
File
- includes/
module.inc, line 142 - API for loading and interacting with Drupal modules.
Code
function module_implements($hook, $sort = FALSE) {
static $implementations;
if (!isset($implementations[$hook])) {
$implementations[$hook] = array();
$list = module_list(FALSE, TRUE, $sort);
foreach ($list as $module) {
if (module_hook($module, $hook)) {
$implementations[$hook][] = $module;
}
}
}
// The explicit cast forces a copy to be made. This is needed because
// $implementations[$hook] is only a reference to an element of
// $implementations and if there are nested foreaches (due to nested node
// API calls, for example), they would both manipulate the same array's
// references, which causes some modules' hooks not to be called.
// See also http://www.zend.com/zend/art/ref-count.php.
return (array) $implementations[$hook];
}