Index: trunk/core/kernel/db/db_event_handler.php
===================================================================
diff -u -N -r4309 -r4320
--- trunk/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 4309)
+++ trunk/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 4320)
@@ -826,7 +826,7 @@
foreach ($items_info as $id => $field_values) {
$object->Load($id);
// record created for using with selector (e.g. Reviews->Select User), and not validated => Delete it
- if ($object->isLoaded() && !$object->Validate()) {
+ if ($object->isLoaded() && !$object->Validate() && ($id <= 0) ) {
$delete_ids[] = $id;
}
}
@@ -1656,17 +1656,20 @@
$this->RemoveRequiredFields($object);
$is_new = !$object->isLoaded();
+ $is_main = $this->Application->GetVar($event->Prefix.'_mode') == 't';
if ($is_new) {
- $new_event = $this->Application->GetVar($event->Prefix.'_mode' == 't') ? 'OnPreCreate' : 'OnNew';
+ $new_event = $is_main ? 'OnPreCreate' : 'OnNew';
$event->CallSubEvent($new_event);
}
$object->SetDBField($this->Application->RecallVar('dst_field'), $user_id);
if ($is_new) {
$object->Create();
- if ($object->IsTempTable()) $object->setTempID();
+ if (!$is_main && $object->IsTempTable()) {
+ $object->setTempID();
+ }
}
else {
$object->Update();
Index: trunk/kernel/admin_templates/incs/form_blocks.tpl
===================================================================
diff -u -N -r4309 -r4320
--- trunk/kernel/admin_templates/incs/form_blocks.tpl (.../form_blocks.tpl) (revision 4309)
+++ trunk/kernel/admin_templates/incs/form_blocks.tpl (.../form_blocks.tpl) (revision 4320)
@@ -171,14 +171,18 @@