Index: branches/5.2.x/core/units/phrases/phrases_event_handler.php =================================================================== diff -u -N -r15065 -r15116 --- branches/5.2.x/core/units/phrases/phrases_event_handler.php (.../phrases_event_handler.php) (revision 15065) +++ branches/5.2.x/core/units/phrases/phrases_event_handler.php (.../phrases_event_handler.php) (revision 15116) @@ -1,6 +1,6 @@ Array ('self' => true, 'subitem' => true), + 'OnPreparePhrase' => Array ('self' => true, 'subitem' => true), + 'OnExportPhrases' => Array ('self' => 'view'), + ); + + $this->permMapping = array_merge($this->permMapping, $permissions); + } + + /** * Apply some special processing to object being * recalled before using it in other events that * call prepareObject @@ -59,25 +79,6 @@ } /** - * Allows to override standard permission mapping - * - * @return void - * @access protected - * @see kEventHandler::$permMapping - */ - protected function mapPermissions() - { - parent::mapPermissions(); - - $permissions = Array ( - 'OnItemBuild' => Array('self' => true, 'subitem' => true), - 'OnPreparePhrase' => Array('self' => true, 'subitem' => true), - ); - - $this->permMapping = array_merge($this->permMapping, $permissions); - } - - /** * Prepares phrase for translation * * @param kEvent $event @@ -465,4 +466,32 @@ // use language from grid, instead of primary language used by default $event->SetRedirectParam('m_lang', $this->Application->GetVar('m_lang')); } + + /** + * Stores ids of selected phrases and redirects to export language step 1 + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnExportPhrases(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