/** * Dispatch Event * * @param string $eventName * @param array $data (optional) * @return array * */ private function __dispatchEvent(&$HandlerObject, $scope, $eventName, $data = array()) { $eventHandlerMethod = EventCore::__handlerMethodName($eventName); $_this =& EventCore::getInstance(); $return = array(); if (isset($_this->__eventHandlerCache[$eventName])) { foreach ($_this->__eventHandlerCache[$eventName] as $eventClass) { $pluginName = EventCore::__extractPluginName($eventClass); if ($scope == 'Global' || $scope == $pluginName) { if (!isset($_this->__eventClasses[$eventClass]) || !is_object($_this->__eventClasses[$eventClass])) { EventCore::__loadEventClass($eventClass); } $EventObject = $_this->__eventClasses[$eventClass]; //$Event = new Event($eventName, $HandlerObject, $pluginName, $data); $Event = new Event($eventName, $HandlerObject, $pluginName); $return[$pluginName] = call_user_func_array(array(&$EventObject, $eventHandlerMethod), array(&$Event, $data)); } } } return $return; }