Index: branches/5.2.x/core/units/email_events/email_events_event_handler.php =================================================================== diff -u -N -r15065 -r15116 --- branches/5.2.x/core/units/email_events/email_events_event_handler.php (.../email_events_event_handler.php) (revision 15065) +++ branches/5.2.x/core/units/email_events/email_events_event_handler.php (.../email_events_event_handler.php) (revision 15116) @@ -1,6 +1,6 @@ Array ('self' => 'edit'), 'OnSaveSelected' => Array ('self' => 'view'), 'OnProcessEmailQueue' => Array ('self' => 'add|edit'), + 'OnExportEmailEvents' => Array ('self' => 'view'), 'OnSuggestAddress' => Array ('self' => 'add|edit'), @@ -1044,9 +1045,36 @@ $object->SetDBField('ReplacementTags', $replacement_tags ? serialize($replacement_tags) : NULL); } + + if ( $this->translationChanged($object) ) { + $object->SetDBField('LastChanged_date', TIMENOW); + $object->SetDBField('LastChanged_time', TIMENOW); + } } /** + * Checks, that at least one of phrase's translations was changed + * + * @param kDBItem $object + * @return bool + */ + function translationChanged(&$object) + { + $changed_fields = array_keys( $object->GetChangedFields() ); + $translation_fields = Array ('Subject', 'Body'); + + foreach ($changed_fields as $changed_field) { + $changed_field = preg_replace('/^l[\d]+_/', '', $changed_field); + + if ( in_array($changed_field, $translation_fields) ) { + return true; + } + } + + return false; + } + + /** * Validates address using given field prefix * * @param kEvent $event @@ -1213,4 +1241,32 @@ $object->SetError($field, 'parsing_error'); } } + + /** + * Stores ids of selected phrases and redirects to export language step 1 + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnExportEmailEvents(kEvent &$event) + { + if ( $this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 1) ) { + $event->status = kEvent::erFAIL; + return; + } + + $this->Application->setUnitOption('phrases', 'AutoLoad', false); + + $this->StoreSelectedIDs($event); + $this->Application->StoreVar('export_language_ids', $this->Application->GetVar('m_lang')); + + $event->setRedirectParams( + Array ( + 'phrases.export_event' => 'OnNew', + 'pass' => 'all,phrases.export', + 'export_mode' => $event->Prefix, + ) + ); + } } \ No newline at end of file