Index: branches/5.2.x/units/destinations/dst_event_handler.php =================================================================== diff -u -N -r14625 -r14872 --- branches/5.2.x/units/destinations/dst_event_handler.php (.../dst_event_handler.php) (revision 14625) +++ branches/5.2.x/units/destinations/dst_event_handler.php (.../dst_event_handler.php) (revision 14872) @@ -1,6 +1,6 @@ getObject( Array('skip_autoload' => true) ); + /* @var $object kDBItem */ - $items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) ); - if($items_info) - { - foreach($items_info as $id => $field_values) - { - $object->SetFieldsFromHash($field_values); - $this->customProcessing($event, 'before'); + // creates multiple db records from single request (OnCreate event only creates 1 record) + $items_info = $this->Application->GetVar($event->getPrefixSpecial(true)); - if ( $object->Create() ) { - $this->customProcessing($event, 'after'); - $event->status = kEvent::erSUCCESS; - } - else { - $event->status = kEvent::erFAIL; - $event->redirect = false; - $this->Application->SetVar($event->getPrefixSpecial().'_SaveEvent','OnCreate'); - $object->setID(0); - } + if ( !$items_info ) { + return; + } + + foreach ($items_info as $field_values) { + $object->SetFieldsFromHash($field_values); + $this->customProcessing($event, 'before'); + + if ( $object->Create() ) { + $this->customProcessing($event, 'after'); + $event->status = kEvent::erSUCCESS; } + else { + $event->status = kEvent::erFAIL; + $event->redirect = false; + $this->Application->SetVar($event->getPrefixSpecial() . '_SaveEvent', 'OnCreate'); + $object->setID(0); + } } }