module_implements
includes/module.inc, строка 403
- Версии
- 5 – 6
module_implements($hook, $sort = FALSE, $refresh = FALSE)
Определяет, какие модули реализуют хук.
Параметры
$hook
Имя хука (напр. 'help'
или 'menu'
).
$sort
По умолчанию модули сортируются сначала по весу, затем по имени файла. Если этот параметр установлен в TRUE
, модули будут отсортированы только по имени.
$refresh
Только для внутреннего использования: обновлять ли кешированный список реализаций хуков в модулях (например, после включения модуля но до вызова hook_enable()
).
Возвращаемое значение
Массив имён модулей, которые реализуют этот хук.
Связанные темы
Код
<?php
function module_implements($hook, $sort = FALSE, $refresh = FALSE) {
static $implementations;
if ($refresh) {
$implementations = array();
return;
}
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];
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии