Index: trunk/core/kernel/event_manager.php =================================================================== diff -u -N -r3907 -r4169 --- trunk/core/kernel/event_manager.php (.../event_manager.php) (revision 3907) +++ trunk/core/kernel/event_manager.php (.../event_manager.php) (revision 4169) @@ -375,7 +375,7 @@ function processHooks(&$event, $mode) { // * - get hooks that are valid with any special of given prefix - $hooks = array_merge_recursive2($this->getHooks($event, $mode, '*'), $this->getHooks($event, $mode)); + $hooks = array_merge($this->getHooks($event, $mode, '*'), $this->getHooks($event, $mode)); if ($hooks) { foreach ($hooks as $hook) { @@ -449,6 +449,17 @@ $sql = 'REPLACE INTO '.TABLE_PREFIX.'Cache (VarName,Data,Cached) VALUES (%s,%s,%s)'; $this->Conn->Query( sprintf($sql, $this->Conn->qstr('RegularEventRuns'), $this->Conn->qstr(serialize($event_last_runs)), adodb_mktime() ) ); } + + /** + * Allows to determine, that required event is beeing processed right now + * + * @param string $event_key Event name in format prefix[.special]:event_name + * @return bool + */ + function eventRunning($event_key) + { + return array_search($event_key, $this->recursionStack) !== false; + } }