public function btnExport_Click($strFormId, $strControlId, $strParameter)
 {
     if (!$this->fileToUpload->Display) {
         $this->fileToUpload->Display = true;
         return false;
     }
     $objFileImporter = NarroFileType::GetFileImporter($this->objFile->TypeId);
     $objFileImporter->User = QApplication::$User;
     $objFileImporter->Project = $this->objFile->Project;
     $objFileImporter->SourceLanguage = NarroLanguage::LoadByLanguageCode(NarroLanguage::SOURCE_LANGUAGE_CODE);
     $objFileImporter->TargetLanguage = QApplication::$TargetLanguage;
     $objFileImporter->File = $this->objFile;
     $strTempFileName = tempnam(__TMP_PATH__, QApplication::$TargetLanguage->LanguageCode);
     if (file_exists($this->fileToUpload->File)) {
         $objFileImporter->ExportFile($this->fileToUpload->File, $strTempFileName);
         unlink($this->fileToUpload->File);
     } else {
         $objFileImporter->ExportFile($this->objFile->Project->DefaultTemplatePath . $this->objFile->FilePath, $strTempFileName);
     }
     ob_clean();
     header(sprintf('Content-Disposition: attachment; filename="%s"', $this->objFile->FileName));
     readfile($strTempFileName);
     unlink($strTempFileName);
     exit;
 }
 public function btnImport_Click($strFormId, $strControlId, $strParameter)
 {
     if (!$this->fileToUpload->Display) {
         $this->fileToUpload->Display = true;
         return false;
     }
     $objFileImporter = NarroFileType::GetFileImporter($this->objNarroFile->TypeId);
     $objFileImporter->User = QApplication::$User;
     $objFileImporter->Project = $this->objNarroFile->Project;
     $objFileImporter->SourceLanguage = NarroLanguage::LoadByLanguageCode(NarroLanguage::SOURCE_LANGUAGE_CODE);
     $objFileImporter->TargetLanguage = QApplication::$TargetLanguage;
     $objFileImporter->CheckEqual = true;
     $objFileImporter->File = $this->objNarroFile;
     $objFileImporter->OnlySuggestions = !QApplication::HasPermissionForThisLang('Can approve', $this->objNarroFile->ProjectId);
     $objFileImporter->ApproveAlreadyApproved = QApplication::HasPermissionForThisLang('Can approve', $this->objNarroFile->ProjectId);
     $objFileImporter->Approve = QApplication::HasPermissionForThisLang('Can approve', $this->objNarroFile->ProjectId);
     $strTempFileName = tempnam(__TMP_PATH__, QApplication::$TargetLanguage->LanguageCode);
     $objFileImporter->ImportFile($this->objNarroFile->Project->DefaultTemplatePath . $this->objNarroFile->FilePath, $this->fileToUpload->File);
 }
 public function ExportFile($objFile, $strTemplateFile, $strTranslatedFile)
 {
     if (!$objFile instanceof NarroFile) {
         NarroLogger::LogWarn(sprintf('Failed to find a corresponding file in the database for %s', $strTemplateFile));
         return false;
     }
     if (NarroFileProgress::CountByFileIdLanguageIdExport($objFile->FileId, $this->objTargetLanguage->LanguageId, 0)) {
         NarroLogger::LogWarn(sprintf('Not exporting %s based on the file settings.', $strTemplateFile));
         return false;
     }
     $objFileImporter = NarroFileType::GetFileImporter($objFile->TypeId, $this);
     // NarroLogger::LogDebug( sprintf( t('Starting to export "%s"'), str_replace($this->objProject->DefaultTranslationPath, '', $strTranslatedFile) ) );
     $objFileImporter->File = $objFile;
     QApplication::$PluginHandler->BeforeExportFile($objFile, $strTemplateFile, $strTranslatedFile);
     $blnMixResult = $objFileImporter->ExportFile($strTemplateFile, $strTranslatedFile);
     if (file_exists($strTranslatedFile)) {
         QApplication::$PluginHandler->AfterExportFile($objFile, $strTemplateFile, $strTranslatedFile);
     }
     $this->arrFileId[$objFile->FileId] = 1;
     return $blnMixResult;
 }