Changeset View
Changeset View
Standalone View
Standalone View
branches/5.2.x/core/units/translator/translator_event_handler.php
Show First 20 Lines • Show All 76 Lines • ▼ Show 20 Line(s) | |||||
* @param kEvent $event | * @param kEvent $event | ||||
* @return void | * @return void | ||||
* @access protected | * @access protected | ||||
*/ | */ | ||||
protected function OnLoad($event) | protected function OnLoad($event) | ||||
{ | { | ||||
list($obj_prefix, $field) = $this->getPrefixAndField($event); | list($obj_prefix, $field) = $this->getPrefixAndField($event); | ||||
/** @var kDBItem $object */ | |||||
$object = $this->Application->recallObject($obj_prefix); | $object = $this->Application->recallObject($obj_prefix); | ||||
/* @var $object kDBItem */ | |||||
/** @var kDBItem $translator */ | |||||
$translator = $event->getObject(); | $translator = $event->getObject(); | ||||
/* @var $translator kDBItem */ | |||||
$def_lang = $this->Application->GetDefaultLanguageId(); | $def_lang = $this->Application->GetDefaultLanguageId(); | ||||
$current_lang = $translator->GetDBField('Language'); | $current_lang = $translator->GetDBField('Language'); | ||||
if (!$current_lang) $current_lang = $this->Application->RecallVar('trans_lang'); | if (!$current_lang) $current_lang = $this->Application->RecallVar('trans_lang'); | ||||
if (!$current_lang) $current_lang = $this->Application->GetVar('m_lang'); | if (!$current_lang) $current_lang = $this->Application->GetVar('m_lang'); | ||||
/*if ($current_lang == $def_lang) { | /*if ($current_lang == $def_lang) { | ||||
$current_lang = $def_lang + 1; | $current_lang = $def_lang + 1; | ||||
}*/ | }*/ | ||||
$this->Application->StoreVar('trans_lang', $current_lang); //remember translation language for user friendlyness | $this->Application->StoreVar('trans_lang', $current_lang); //remember translation language for user friendlyness | ||||
$translator->SetID(1); | $translator->SetID(1); | ||||
$translator->SetDBField('Original', $object->GetDBField('l'.$this->Application->GetVar('m_lang').'_'.$field)); | $translator->SetDBField('Original', $object->GetDBField('l'.$this->Application->GetVar('m_lang').'_'.$field)); | ||||
$translator->SetDBField('Language', $current_lang); | $translator->SetDBField('Language', $current_lang); | ||||
$translator->SetDBField('SwitchLanguage', $current_lang); | $translator->SetDBField('SwitchLanguage', $current_lang); | ||||
$translator->SetDBField('Translation', $object->GetDBField('l'.$current_lang.'_'.$field)); | $translator->SetDBField('Translation', $object->GetDBField('l'.$current_lang.'_'.$field)); | ||||
/** @var LanguagesItem $cur_lang */ | |||||
$cur_lang = $this->Application->recallObject('lang.current'); | $cur_lang = $this->Application->recallObject('lang.current'); | ||||
/* @var $cur_lang LanguagesItem */ | |||||
$cur_lang->Load($current_lang); | $cur_lang->Load($current_lang); | ||||
$translator->SetDBField('Charset', CHARSET); | $translator->SetDBField('Charset', CHARSET); | ||||
$event->redirect = false; | $event->redirect = false; | ||||
} | } | ||||
Show All 16 Lines | |||||
* If there is no id, new item is created in temp table | * If there is no id, new item is created in temp table | ||||
* | * | ||||
* @param kEvent $event | * @param kEvent $event | ||||
* @return void | * @return void | ||||
* @access protected | * @access protected | ||||
*/ | */ | ||||
protected function OnPreSave(kEvent $event) | protected function OnPreSave(kEvent $event) | ||||
{ | { | ||||
/** @var kDBItem $translator */ | |||||
$translator = $event->getObject(); | $translator = $event->getObject(); | ||||
/* @var $translator kDBItem */ | |||||
$field_values = $this->getSubmittedFields($event); | $field_values = $this->getSubmittedFields($event); | ||||
$translator->SetFieldsFromHash($field_values); | $translator->SetFieldsFromHash($field_values); | ||||
$event->setEventParam('form_data', $field_values); | $event->setEventParam('form_data', $field_values); | ||||
list($obj_prefix, $field) = $this->getPrefixAndField($event); | list($obj_prefix, $field) = $this->getPrefixAndField($event); | ||||
/** @var kDBItem $object */ | |||||
$object = $this->Application->recallObject($obj_prefix); | $object = $this->Application->recallObject($obj_prefix); | ||||
/* @var $object kDBItem */ | |||||
$lang = $translator->GetDBField('Language'); | $lang = $translator->GetDBField('Language'); | ||||
$object->SetFieldOptions('l' . $lang . '_' . $field, Array ()); | $object->SetFieldOptions('l' . $lang . '_' . $field, Array ()); | ||||
$object->SetDBField('l' . $lang . '_' . $field, $translator->GetDBField('Translation')); | $object->SetDBField('l' . $lang . '_' . $field, $translator->GetDBField('Translation')); | ||||
$this->RemoveRequiredFields($object); | $this->RemoveRequiredFields($object); | ||||
$object->Update(); | $object->Update(); | ||||
} | } | ||||
/** | /** | ||||
* Changes current language in translation popup | * Changes current language in translation popup | ||||
* | * | ||||
* @param kEvent $event | * @param kEvent $event | ||||
* @return void | * @return void | ||||
* @access protected | * @access protected | ||||
*/ | */ | ||||
protected function OnChangeLanguage($event) | protected function OnChangeLanguage($event) | ||||
{ | { | ||||
$event->CallSubEvent('OnPreSave'); | $event->CallSubEvent('OnPreSave'); | ||||
/** @var kDBItem $object */ | |||||
$object = $event->getObject(); | $object = $event->getObject(); | ||||
/* @var $object kDBItem */ | |||||
$object->SetDBField('Language', $object->GetDBField('SwitchLanguage')); | $object->SetDBField('Language', $object->GetDBField('SwitchLanguage')); | ||||
$event->CallSubEvent('OnLoad'); | $event->CallSubEvent('OnLoad'); | ||||
$event->redirect = false; | $event->redirect = false; | ||||
} | } | ||||
} | } |