Index: branches/unlabeled/unlabeled-1.26.2/core/units/languages/languages_event_handler.php =================================================================== diff -u -r5732 -r6078 --- branches/unlabeled/unlabeled-1.26.2/core/units/languages/languages_event_handler.php (.../languages_event_handler.php) (revision 5732) +++ branches/unlabeled/unlabeled-1.26.2/core/units/languages/languages_event_handler.php (.../languages_event_handler.php) (revision 6078) @@ -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) { @@ -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);