Index: trunk/core/units/languages/languages_event_handler.php =================================================================== diff -u -N -r4885 -r6093 --- trunk/core/units/languages/languages_event_handler.php (.../languages_event_handler.php) (revision 4885) +++ trunk/core/units/languages/languages_event_handler.php (.../languages_event_handler.php) (revision 6093) @@ -13,6 +13,7 @@ 'OnChangeLanguage' => Array('self' => true), 'OnSetPrimary' => Array('self' => 'advanced:set_primary|add|edit'), 'OnImportLanguage' => Array('self' => 'advanced:import'), + 'OnImportProgress' => Array('self' => 'advanced:import'), 'OnExportLanguage' => Array('self' => 'advanced:export'), 'OnExportProgress' => Array('self' => 'advanced:export'), @@ -42,6 +43,10 @@ */ function OnSetPrimary(&$event) { + if ($this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 1)) { + return; + } + $this->StoreSelectedIDs($event); $ids = $this->getSelectedIDs($event); if ($ids) { @@ -198,6 +203,10 @@ */ function OnImportLanguage(&$event) { + if ($this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 1)) { + return; + } + $items_info = $this->Application->GetVar('phrases_import'); if($items_info) { @@ -212,7 +221,7 @@ $lang_xml =& $this->Application->recallObject('LangXML'); $lang_xml->Parse($filename, $field_values['PhraseType'], $modules, $field_values['ImportOverwrite']); - $event->redirect = 'dummy'; + $event->redirect = true; $event->SetRedirectParams( Array('lang_event' => 'OnImportProgress', 'pass' => 'all,lang', 'mode'=>$field_values['ImportOverwrite']) ); } else @@ -287,8 +296,17 @@ $this->Application->InitParser(); $this->Application->setUnitOption('phrases','AutoLoad',false); echo $this->Application->ParseBlock($block_params); + + //break out of buffering + $buffer_content = Array(); + while (ob_get_level()) { + $buffer_content[] = ob_get_clean(); + } + $ret = implode('', array_reverse($buffer_content)); + echo $ret; flush(); + $sql = 'SELECT * FROM %s LIMIT %s,%s'; $rows = $this->Conn->Query( sprintf($sql,$src_table,$import_start,IMPORT_BY) ); @@ -349,6 +367,10 @@ */ function OnExportLanguage(&$event) { + if ($this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 1)) { + return; + } + $this->Application->setUnitOption('phrases','AutoLoad',false); $this->StoreSelectedIDs($event);