function PackFileArchive($path)
 {
     include_once dirname(__FILE__) . '/tar_gz.php';
     if (file_exists($path)) {
         $path = realpath($path);
         $arcname = CTempFile::GetFileName(md5(uniqid(rand(), true)) . '.tar.gz');
         CheckDirPath($arcname);
         $ob = new CArchiver($arcname);
         $rem_path = dirname($path);
         if ($ob->Add(array($path), false, $rem_path)) {
             return $arcname;
         }
     }
     return false;
 }
 function Export($documentId)
 {
     $work_dir = CTempFile::GetDirectoryName();
     CheckDirPath($work_dir);
     $file = "import";
     $file_name = $work_dir . $file . ".xml";
     $file_dir = $file . "_files/";
     $arcname = $work_dir . $file . '.tar.gz';
     if ($fp = fopen($file_name, "ab")) {
         $documentService = $this->workflow->GetService("DocumentService");
         $document = $documentService->GetDocument($documentId);
         $obExport = new CIBlockCMLExport();
         $step = array();
         $PROPERTY_MAP = array();
         $SECTION_MAP = array();
         if ($obExport->Init($fp, $document["IBLOCK_ID"], $step, true, $work_dir, $file_dir)) {
             $obExport->StartExport();
             $obExport->StartExportMetadata();
             $obExport->ExportProperties($PROPERTY_MAP);
             $obExport->ExportSections($SECTION_MAP, time(), 0);
             $obExport->EndExportMetadata();
             $obExport->StartExportCatalog(true, true);
             $obExport->ExportElements($PROPERTY_MAP, $SECTION_MAP, time(), 0, 0, array("SHOW_NEW" => "Y", "IBLOCK_ID" => $document["IBLOCK_ID"], "=ID" => $document["ID"]));
             $obExport->EndExportCatalog();
             $obExport->EndExport();
             fclose($fp);
             include_once $_SERVER["DOCUMENT_ROOT"] . BX_ROOT . '/modules/main/classes/general/tar_gz.php';
             $ob = new CArchiver($arcname);
             $res = $ob->Add('"' . $file_name . '"', false, $work_dir);
             if ($res) {
                 $res = $ob->Add('"' . $work_dir . $file_dir . '"', false, $work_dir);
             }
             if ($res) {
                 return $arcname;
             } else {
                 return '';
             }
         } else {
             return '';
         }
     } else {
         return '';
     }
 }
         }
     }
     __ReWalkDirs($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules", $targetLanguagePath, $language_id, $bConvert, $strEncodingIn, $strEncodingOut);
     if ($fp1 = fopen($targetLanguagePath . "/main/lang/" . $language_id . "/supd_lang_date.dat", "wb")) {
         fwrite($fp1, $lang_date);
         fclose($fp1);
     } else {
         $strErrorMessage .= GetMessage('TR_ERROR_OPEN_FILE', array('%FILE%' => $targetLanguagePath . "/main/lang/" . $language_id . "/supd_lang_date.dat")) . '<br>';
     }
 }
 if (strlen($strErrorMessage) <= 0) {
     if ($pack_files == "Y") {
         @unlink($_SERVER["DOCUMENT_ROOT"] . "/bitrix/updates/_langs/file-" . $language_id . ".tar.gz");
         $oArc = new CArchiver($_SERVER["DOCUMENT_ROOT"] . "/bitrix/updates/_langs/file-" . $language_id . ".tar.gz", $bUseCompression);
         $oArc->_strSeparator = '|';
         $res = $oArc->Add($_SERVER["DOCUMENT_ROOT"] . "/bitrix/updates/_langs/" . $language_id, false, $_SERVER["DOCUMENT_ROOT"] . "/bitrix/updates/_langs");
         if (!$res) {
             $strErrorMessage .= GetMessage('TR_ERROR_ARCHIVE') . '<br>';
             if (count($oArc->_arErrors) > 0) {
                 $strErrorMessage .= ": ";
                 foreach ($oArc->_arErrors as $e) {
                     $strErrorMessage .= $e[1] . ", ";
                 }
             }
         } else {
             $strOKMessage = GetMessage('TR_LANGUAGE_COLLECTED_ARCHIVE', array('%LANG%' => $language_id, '%FILE_PATH%' => $_SERVER["DOCUMENT_ROOT"] . "/bitrix/updates/_langs/file-" . $language_id . ".tar.gz", '%LINK%' => "<a href=\"/bitrix/updates/_langs/file-" . $language_id . ".tar.gz\">file-" . $language_id . ".tar.gz</a>"));
         }
     }
 }
 if (strlen($strErrorMessage) <= 0 && strlen($strOKMessage) <= 0) {
     $strOKMessage = GetMessage('TR_LANGUAGE_COLLECTED_FOLDER', array('%LANG%' => $language_id, '%PATH%' => $targetLanguagePath));
Example #4
0
         $dir = "/" . COption::GetOptionString("main", "upload_dir", "upload") . "/learning/scorm/" . $COURSE_ID . "/";
         $arc = new CArchiver($_SERVER["DOCUMENT_ROOT"] . $DATA_FILE_NAME, $bUseCompression);
         $res = $arc->Add("\"" . $_SERVER["DOCUMENT_ROOT"] . $dir . "\"", false, $_SERVER["DOCUMENT_ROOT"] . $dir);
         if (!$res) {
             $arErrors =& $arc->GetErrors();
             foreach ($arErrors as $value) {
                 $strError .= "[" . $value[0] . "] " . $value[1] . "<br>";
             }
         }
     } else {
         $package = new CCoursePackage($COURSE_ID);
         if (strlen($package->LAST_ERROR) <= 0) {
             $success = $package->CreatePackage($tmp_dir);
             if ($success) {
                 $arc = new CArchiver($_SERVER["DOCUMENT_ROOT"] . $DATA_FILE_NAME, $bUseCompression);
                 $res = $arc->Add("\"" . $_SERVER['DOCUMENT_ROOT'] . $tmp_dir . "\"", false, $_SERVER['DOCUMENT_ROOT'] . $tmp_dir);
                 if (!$res) {
                     $arErrors =& $arc->GetErrors();
                     foreach ($arErrors as $value) {
                         $strError .= "[" . $value[0] . "] " . $value[1] . "<br>";
                     }
                 }
                 DeleteDirFilesEx($tmp_dir);
             } else {
                 $strError .= $package->LAST_ERROR;
             }
         } else {
             $strError .= $package->LAST_ERROR;
         }
     }
 }