public static function callHooks($hookpoint, $hookpointParams) { Notifications::addLog("Hook {$hookpoint} called", 'Hooks'); foreach (Hooks::getHooks($hookpoint) as $hook) { // Determine funtioncall if ($hook['class']) { $callback = $hook['class'] . '::' . $hook['function']; } else { $callback = $hook['function']; } // Construct params $callBackParams = array(); foreach ((array) $hook['params'] as $param) { if (substr((string) $param, 0, 1) == '$') { $callBackParams[] = $hookpointParams[substr($param, 1)]; } else { $callBackParams[] = $param; } } $log = $callback . '(' . implode(', ', $callBackParams) . ')'; Notifications::addLog("Call hook {$log}", 'Hooks'); call_user_func_array($callback, $callBackParams); } }