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));
$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; } } }