- Модуль: translate
- Путь к файлу: ~/bitrix/modules/translate/lib/io/archiver.php
- Класс: BitrixTranslateIOArchiver
- Вызов: Archiver::pack
public function pack(TranslateIODirectory $directory, $seekPath = '')
{
$this->setOptions(array(
'ADD_PATH' => $directory->getName(),
'REMOVE_PATH' => $directory->getPhysicalPath(),
));
if (empty($seekPath) && !empty($this->seekPath))
{
$seekPath = $this->seekPath;
}
$counter = Closure::bind(
function()
{
if ($this instanceof CArchiver)
{
/** @noinspection */
return count($this->lastFile) + ($this->tempres == "continue" ? 1 : 0);
}
return -1;
},
$this->archive,
'CArchiver'
);
$res = $this->archive->pack([$directory->getPhysicalPath()], $seekPath);
switch ($res)
{
case IBXArchive::StatusContinue:
$this->setSeekPosition($this->archive->getStartFile());
$this->processedFileCount = $counter();
break;
case IBXArchive::StatusSuccess:
$this->processedFileCount = $counter();
break;
case IBXArchive::StatusError:
$errors = $this->archive->getErrors();
if (count($errors) > 0)
{
foreach ($errors as $errorMessage)
{
$this->addError(new MainError($errorMessage[1], $errorMessage[0]));
}
}
break;
}
return $res;//($this->hasErrors() !== true);
}