Index: trunk/core/kernel/event_manager.php
===================================================================
diff -u -N -r7391 -r7635
--- trunk/core/kernel/event_manager.php (.../event_manager.php) (revision 7391)
+++ trunk/core/kernel/event_manager.php (.../event_manager.php) (revision 7635)
@@ -196,20 +196,20 @@
{
$unit_config_reader =& $this->Application->recallObject('kUnitConfigReader');
$unit_config_reader->loadConfig($event->Prefix);
+ if( !$this->Application->prefixRegistred($event->Prefix) )
+ {
+ trigger_error('Prefix '.$event->Prefix.' not registred (requested event '.$event->Name.')', E_USER_NOTICE);
+ return false;
+ }
}
- if( !$this->Application->prefixRegistred($event->Prefix) )
- {
- trigger_error('Prefix '.$event->Prefix.' not registred (requested event '.$event->Name.')', E_USER_NOTICE);
- return false;
- }
-
if (!$event->SkipBeforeHooks) {
$this->processHooks($event, hBEFORE);
if ($event->status == erFATAL) return true;
}
$event_handler =& $this->Application->recallObject($event->Prefix.'_EventHandler');
+ /* @var $event_handler kEventHandler */
$event_handler->processEvent($event);
if ($event->status == erFATAL) return true;
@@ -218,7 +218,6 @@
}
$this->popEvent();
-
return true;
}
@@ -249,13 +248,13 @@
}
// 3. store all prefixes passed before event processing, because they are used by GetTopmostPrefix
- $passed = explode(',', $this->Application->GetVar('passed'));
+ $all_passed = explode(',', $this->Application->GetVar('passed'));
foreach ($events as $prefix_special => $event_name) {
if (!$event_name) continue;
$prefix_special = explode('.',$prefix_special);
- array_push($passed, $prefix_special[0]);
+ array_push($all_passed, $prefix_special[0]);
}
- $this->Application->SetVar('passed', implode(',', $passed));
+ $this->Application->SetVar('all_passed', implode(',', $all_passed));
foreach ($events as $prefix_special => $event_name) {
if (!$event_name) continue;
@@ -278,6 +277,7 @@
$event->redirect = true;
$event_handler =& $this->Application->recallObject($event->Prefix.'_EventHandler');
+ /* @var $event_handler kEventHandler */
$event->setEventParam('top_prefix', $this->Application->GetTopmostPrefix($event->Prefix, true));
if (($this->Application->RecallVar('user_id') == -1) || $event_handler->CheckPermission($event)) {
$this->HandleEvent($event);
@@ -306,15 +306,15 @@
$wid = $this->Application->GetVar('m_wid');
if ($wid && $event->redirect_params['opener'] == 'u') {
$event->redirect_params['opener'] = 's'; // because Application->HREF will react differently when 'opener' = 'u'
- $event->redirect = 'incs/close_popup';
+ $event->redirect = defined('CLOSE_POPUP_TPL') ? CLOSE_POPUP_TPL : 'incs/close_popup';
}
$this->Application->Redirect($event->redirect, $event->redirect_params, null, $event->redirect_script);
}
}
$this->Application->SetVar('events', $events);
-// $this->Application->SetVar('passed', implode(',', $passed));
+ $this->Application->SetVar('passed', implode(',', $all_passed));
}
function processOpener()
@@ -381,9 +381,9 @@
* @param Array $params
* @param string $pass
*/
- function openerStackPush($t, $params, $pass = 'all')
+ function openerStackPush($t, $params, $pass = 'all', $wid=null)
{
- $wid = $this->Application->GetVar('m_wid');
+ if (!isset($wid)) $wid = $this->Application->GetVar('m_wid');
$stack_name = rtrim('opener_stack_'.$wid, '_');
$opener_stack = $this->Application->RecallVar($stack_name);