• Модуль: 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);
}