Index: trunk/kernel/units/translator/translator_event_handler.php =================================================================== diff -u -r4788 -r6625 --- trunk/kernel/units/translator/translator_event_handler.php (.../translator_event_handler.php) (revision 4788) +++ trunk/kernel/units/translator/translator_event_handler.php (.../translator_event_handler.php) (revision 6625) @@ -1,6 +1,6 @@ permMapping = array_merge($this->permMapping, $permissions); } - + /** * Check permission of item, that being translated * @@ -24,13 +24,13 @@ function CheckPermission(&$event) { list($prefix, $field) = $this->getPrefixAndField($event); - + $top_prefix = $this->Application->GetTopmostPrefix($prefix); $event->setEventParam('top_prefix', $top_prefix); return parent::CheckPermission($event); } - - + + /** * Returns prefix and field being translated * @@ -39,74 +39,74 @@ function getPrefixAndField(&$event) { $field = $this->Application->GetVar($event->getPrefixSpecial(true).'_field'); - + if (strpos($field,':') !== false) { - list($prefix, $field) = explode(':', $field); + list($prefix, $field) = explode(':', $field); } else { - $prefix = $this->Application->GetVar($event->getPrefixSpecial(true).'_prefix'); + $prefix = $this->Application->GetVar($event->getPrefixSpecial(true).'_prefix'); } return Array($prefix, $field); } - + function OnLoad(&$event) { list($obj_prefix, $field) = $this->getPrefixAndField($event); - + $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'); $this->finalizePopup($event); } - + 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); - + list($obj_prefix, $field) = $this->getPrefixAndField($event); - + $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'); @@ -115,7 +115,7 @@ $event->CallSubEvent('OnLoad'); $event->redirect = false; } - + }