function module_invoke_all
7.x module.inc | module_invoke_all( |
6.x module.inc | module_invoke_all() |
Invokes a hook in all enabled modules that implement it.
All arguments are passed by value. Use drupal_alter() if you need to pass arguments by reference.
Parameters
$hook: The name of the hook to invoke.
...: Arguments to pass to the hook.
Return value
An array of return values of the hook implementations. If modules return arrays from their implementations, those are merged into one array.
See also
Related topics
147 calls to module_invoke_all()
- actions_delete in drupal-7.x/
includes/ actions.inc - Deletes a single action from the database.
- actions_list in drupal-7.x/
includes/ actions.inc - Discovers all available actions by invoking hook_action_info().
- aggregator_remove in drupal-7.x/
modules/ aggregator/ aggregator.module - Removes all items from a feed.
- ajax_footer in drupal-7.x/
includes/ ajax.inc - Performs end-of-Ajax-request tasks.
- archiver_get_info in drupal-7.x/
includes/ common.inc - Retrieves a list of all available archivers.
File
- drupal-7.x/
includes/ module.inc, line 887 - API for loading and interacting with Drupal modules.
Code
function module_invoke_all($hook) {
$args = func_get_args();
// Remove $hook from the arguments.
unset($args[0]);
$return = array();
foreach (module_implements($hook) as $module) {
$function = $module . '_' . $hook;
if (function_exists($function)) {
$result = call_user_func_array($function, $args);
if (isset($result) && is_array($result)) {
$return = array_merge_recursive($return, $result);
}
elseif (isset($result)) {
$return[] = $result;
}
}
}
return $return;
}