Index: branches/5.2.x/core/kernel/db/db_event_handler.php =================================================================== diff -u -N -r14597 -r14608 --- branches/5.2.x/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 14597) +++ branches/5.2.x/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 14608) @@ -1,6 +1,6 @@ Configure( $event->getEventParam('populate_ml_fields') || $this->Application->getUnitOption($event->Prefix, 'PopulateMlFields'), $form_name ); $this->PrepareObject($object, $event); + $parent_event = $event->getEventParam('parent_event'); + + if ( is_object($parent_event) ) { + $object->setParentEvent($parent_event); + } + // force live table if specified or is original item $live_table = $event->getEventParam('live_table') || $event->Special == 'original'; @@ -1025,7 +1031,7 @@ // always add forced sorting before any user sorting fields $forced_sorting = getArrayValue($list_sortings, $sorting_prefix, 'ForcedSorting'); /* @var $forced_sorting Array */ - + if ($forced_sorting) { foreach ($forced_sorting as $field => $dir) { $object->AddOrderField($field, $dir); @@ -1135,10 +1141,10 @@ if ( $view_filter ) { $view_filter = unserialize($view_filter); - + $temp_filter =& $this->Application->makeClass('kMultipleFilter'); /* @var $temp_filter kMultipleFilter */ - + $filter_menu = $this->Application->getUnitOption($event->Prefix, 'FilterMenu'); $group_key = 0; @@ -1405,7 +1411,7 @@ /* @var $object kDBItem */ $items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) ); - + if ( $items_info ) { foreach ($items_info as $id => $field_values) { $object->Load($id); @@ -1805,7 +1811,7 @@ if ( $this->isNewItemCreate($event) ) { $event->CallSubEvent('OnPreSaveCreated'); - + if ( is_object($event->MasterEvent) ) { $event->MasterEvent->setEventParam('IsNew', true); } @@ -1980,7 +1986,7 @@ // just reset id to 0 in case it was create $object =& $event->getObject( Array ('skip_autoload' => true) ); /* @var $object kDBItem */ - + $object->setID(0); $this->Application->SetVar($event->getPrefixSpecial() . '_id', 0); } @@ -2413,7 +2419,7 @@ /** * Sets view filter based on request - * + * * @param kEvent $event * @return void * @access protected @@ -2434,7 +2440,7 @@ list($id, $value) = explode('=', $a_filter); $view_filter[$id] = $value; } - + $this->Application->StoreVar($event->getPrefixSpecial() . '_view_filter', serialize($view_filter)); $event->redirect = false; } @@ -2498,7 +2504,7 @@ $cdata->SetDBField('ResourceId', $resource_id); $cdata->Create(); } - + $this->Application->SetVar($cdata->getPrefixSpecial() . '_id', $cdata->GetID()); }