function CreateUpdateArchive($strUpdaterDir){ if(is_file($strUpdaterDir.'/install/version.php')){ require $strUpdaterDir.'/install/version.php'; $strModuleID = end(explode('/',$strUpdaterDir)); $strDir = $_SERVER['DOCUMENT_ROOT'].'/_updates/'.$strModuleID; if(!is_dir($strDir)){ mkdir($strDir, BX_DIR_PERMISSIONS, true); } $strArcFileName = $strDir.'/'.$arModuleVersion['VERSION'].'.tar.gz'; @unlink($strArcFileName); require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/classes/general/tar_gz.php'); $obArc = CBXArchive::GetArchive($strArcFileName, 'TAR.GZ'); if($obArc instanceof IBXArchive) { $obArc->SetOptions(array( 'COMPRESS' => true, 'ADD_PATH' => false, 'REMOVE_PATH' => $strUpdaterDir, 'CHECK_PERMISSIONS' => false )); $arPackFiles = array($strUpdaterDir); $obArc->pack($arPackFiles, ''); } unset($obArc); }}Этот код необходимо добавить в /bitrix/php_interface/init.php
Далее, необходимо в файле /bitrix/modules/main/classes/general/update_client_partner.php найти строку:
$updateDirTo = $_SERVER["DOCUMENT_ROOT"].US_SHARED_KERNEL_PATH."/modules/".$arModules[$i];
И сразу после этого вставить строку:
CreateUpdateArchive($updateDirFrom);
Все! Теперь все обновления будут складываться в папку /_updates/ в виде tar.gz-архивов, откуда их можно скачивать и изучать.
