Index: trunk/core/units/translator/translator_event_handler.php =================================================================== diff -u -r1566 -r1795 --- trunk/core/units/translator/translator_event_handler.php (.../translator_event_handler.php) (revision 1566) +++ trunk/core/units/translator/translator_event_handler.php (.../translator_event_handler.php) (revision 1795) @@ -5,16 +5,26 @@ function OnLoad(&$event) { - $obj_prefix = $this->Application->GetVar($event->getPrefixSpecial(true).'_prefix'); + $field = $this->Application->GetVar($event->getPrefixSpecial(true).'_field'); + + if( strpos($field,':') !== false ) + { + list($obj_prefix,$field) = explode(':', $field); + } + else + { + $obj_prefix = $this->Application->GetVar($event->getPrefixSpecial(true).'_prefix'); + } + $object = $this->Application->recallObject($obj_prefix); /*$items_info = $this->Application->GetVar( $obj_prefix ); if($items_info) $field_values = array_shift($items_info); $object->SetFieldsFromHash($field_values); $object->Update();*/ - $field = $this->Application->GetVar($event->getPrefixSpecial(true).'_field'); + $translator =& $this->Application->recallObject($event->getPrefixSpecial()); $def_lang = $this->Application->GetDefaultLanguageId(); @@ -46,7 +56,10 @@ function OnSaveAndClose(&$event) { $event->CallSubEvent('OnPreSave'); - $this->finalizePopup($event, '', 'in-commerce/products/products_edit'); + + // 2. RESTORE SAVED LAST TEMPLATE AS LAST PARAM FOR FINILIZE_POPUP + $return_template = $this->Application->RecallVar('return_template'); + $this->finalizePopup($event, '', $return_template); } function OnPreSave(&$event) @@ -58,9 +71,19 @@ $translator->SetFieldsFromHash($field_values); - $object = $this->Application->recallObject($this->Application->GetVar($event->getPrefixSpecial(true).'_prefix')); $field = $this->Application->GetVar($event->getPrefixSpecial(true).'_field'); + if( strpos($field,':') !== false ) + { + list($obj_prefix,$field) = explode(':', $field); + } + else + { + $obj_prefix = $this->Application->GetVar($event->getPrefixSpecial(true).'_prefix'); + } + + $object = $this->Application->recallObject($obj_prefix); + $lang = $translator->GetDBField('Language'); $object->Fields['l'.$lang.'_'.$field] = Array(); $object->SetDBField('l'.$lang.'_'.$field, $translator->GetDBField('Translation'));