Файл: upload/core/hooks.php
Строк: 27
<?php
$HOOKS = [];
/**
* Регистрирует хук
*/
function register_hook($event, $callback) {
global $HOOKS;
if (!isset($HOOKS[$event])) {
$HOOKS[$event] = [];
}
$HOOKS[$event][] = $callback;
}
/**
* ACTION‑hook: для вывода (render)
* НИЧЕГО не возвращает, только вызывает callback'и
*/
function run_action($event, ...$args) {
global $HOOKS;
if (empty($HOOKS[$event])) {
return;
}
foreach ($HOOKS[$event] as $callback) {
call_user_func_array($callback, $args);
}
}
/**
* FILTER‑hook: для логики (verify)
* Возвращает значение, которое можно проверять
*/
function run_filter($event, $value = null, ...$args) {
global $HOOKS;
if (empty($HOOKS[$event])) {
return $value;
}
foreach ($HOOKS[$event] as $callback) {
$value = call_user_func_array($callback, [$value, ...$args]);
}
return $value;
}
?>