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