• Модуль: translate
  • Путь к файлу: ~/bitrix/modules/translate/lib/controller/export/exportaction.php
  • Класс: BitrixTranslateControllerExportExportAction
  • Вызов: ExportAction::createExportTempFile
protected function createExportTempFile(string $exportFileName): TranslateIOCsvFile
{
	/** @var TranslateIOCsvFile $csvFile */
	$exportFolder = TranslateConfig::getExportFolder();
	if (!empty($exportFolder))
	{
		$tempDir = new TranslateIODirectory($exportFolder);
		if ($tempDir->isExists())
		{
			$tempDir->wipe(function(MainIOFileSystemEntry $entry){
				// clear .csv files older than 3 hours
				return (
					$entry->isFile() &&
					preg_match("#.+_([0-9]+).csv$#", $entry->getName(), $matches) &&
					(time() - (int)$matches[1] > 3 * 3600)
				);
			});
		}
		else
		{
			$tempDir->create();
		}

		$fileName = preg_replace("#(.+).csv$#", "$1_".time().'.csv',  $exportFileName);

		$csvFile = new TranslateIOCsvFile($tempDir->getPhysicalPath() .'/'. $fileName);
	}
	else
	{
		$csvFile = TranslateIOCsvFile::generateTemporalFile('translate', '.csv', 3);
	}

	$this->configureExportCsvFile($csvFile);

	$csvFile->openWrite();

	$row = ['file', 'key'];
	foreach ($this->languages as $langId)
	{
		$row[] = $langId;
	}
	$csvFile->put($row);
	$csvFile->close();

	return $csvFile;
}