module_implements
Definition
module_implements($hook, $sort = FALSE)
includes/module.inc, line 142
Description
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
| Name | Description |
|---|---|
| Hooks | Allow modules to interact with the Drupal core. |
Code
<?php
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];
}
?> 