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-архивов, откуда их можно скачивать и изучать.