Index: branches/unlabeled/unlabeled-1.79.4/core/kernel/db/db_event_handler.php =================================================================== diff -u -r7040 -r7043 --- branches/unlabeled/unlabeled-1.79.4/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 7040) +++ branches/unlabeled/unlabeled-1.79.4/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 7043) @@ -344,9 +344,7 @@ // $this->Application->setEvent($event->Prefix_Special, $current_event); $this->Application->setEvent($event->Prefix_Special, ''); - $mode_var = $this->GetMode($event); - $mode_processed = $this->Application->processPrefix($mode_var); - $save_event = $mode_var && $mode_processed['prefix'] == $event->Prefix ? 'OnSave' : 'OnUpdate'; + $save_event = $this->UseTempTables($event) && $this->Application->GetTopmostPrefix($event->Prefix) == $event->Prefix ? 'OnSave' : 'OnUpdate'; $this->Application->SetVar($event->Prefix_Special.'_SaveEvent',$save_event); } @@ -398,33 +396,26 @@ */ function UseTempTables(&$event) { - return $this->GetMode($event) !== false; - } - - function GetMode(&$event) - { $object = &$event->getObject(); $top_prefix = $this->Application->GetTopmostPrefix($event->Prefix); $var_names = Array ( $top_prefix, rtrim($top_prefix.'_'.$event->Special, '_'), rtrim($top_prefix.'.'.$event->Special, '.'), - $event->Prefix, - rtrim($event->Prefix.'_'.$event->Special, '_'), - rtrim($event->Prefix.'.'.$event->Special, '.'), ); $var_names = array_unique($var_names); $temp_mode = false; foreach ($var_names as $var_name) { $value = $this->Application->GetVar($var_name.'_mode'); if (substr($value, 0, 1) == 't') { - return $var_name; + $temp_mode = true; + break; } } - return false; + return $temp_mode; } /**