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); $translator =& $this->Application->recallObject($event->getPrefixSpecial()); $def_lang = $this->Application->GetDefaultLanguageId(); $current_lang = $translator->GetDBField('Language'); if (!$current_lang) $current_lang = $this->Application->RecallVar('trans_lang'); if (!$current_lang) $current_lang = $this->Application->GetVar('m_lang'); /*if ($current_lang == $def_lang) { $current_lang = $def_lang + 1; }*/ $this->Application->StoreVar('trans_lang', $current_lang); //remember translation language for user friendlyness $translator->SetID(1); $translator->SetDBField('Original', $object->GetDBField('l'.$this->Application->GetVar('m_lang').'_'.$field)); $translator->SetDBField('Language', $current_lang); $translator->SetDBField('SwitchLanguage', $current_lang); $translator->SetDBField('Translation', $object->GetDBField('l'.$current_lang.'_'.$field)); $cur_lang =& $this->Application->recallObject('lang.current'); $cur_lang->Load($current_lang); $translator->SetDBField('Charset', $cur_lang->GetDBField('Charset')); $event->redirect = false; } function OnSaveAndClose(&$event) { $event->CallSubEvent('OnPreSave'); // 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) { $translator =& $this->Application->recallObject($event->getPrefixSpecial()); $items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) ); if($items_info) $field_values = array_shift($items_info); $translator->SetFieldsFromHash($field_values); $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')); $this->RemoveRequiredFields($object); $object->Update(); } function OnChangeLanguage(&$event) { $event->CallSubEvent('OnPreSave'); $translator =& $this->Application->recallObject($event->getPrefixSpecial()); $translator->SetDBField('Language', $translator->GetDBField('SwitchLanguage')); $event->CallSubEvent('OnLoad'); $event->redirect = false; } } ?>