- Модуль: translate
- Путь к файлу: ~/bitrix/modules/translate/lib/controller/index/collectlangpath.php
- Класс: BitrixTranslateControllerIndexCollectLangPath
- Вызов: CollectLangPath::run
public function run($path = '', $runBefore = false)
{
if ($runBefore)
{
$this->onBeforeRun();
}
if (empty($path))
{
$path = TranslateConfig::getDefaultPath();
}
$path = '/'. trim($path, '/.\');
// List of files and folders
if ($this->isNewProcess)
{
$pathList = $this->controller->getRequest()->get('pathList');
if (!empty($pathList))
{
$pathList = preg_split("/[rn]+/", $pathList);
array_walk($pathList, 'trim');
$pathList = array_unique(array_filter($pathList));
}
if (empty($pathList))
{
$pathList = [$path];
}
$checkIndexExists = $this->controller->getRequest()->get('checkIndexExists') === 'Y';
foreach ($pathList as $testPath)
{
if ($checkIndexExists)
{
$indexPath = IndexPathIndex::loadByPath($testPath);
if ($indexPath instanceof IndexPathIndex)
{
if ($indexPath->getIndexed())
{
continue;// skip indexing if index exists
}
}
}
if (TranslateIOPath::isPhpFile($testPath))
{
if (!TranslateIOPath::isLangDir($testPath))
{
continue;// skip non lang files
}
}
$this->pathList[] = $testPath;
}
if (empty($this->pathList))
{
return [
'STATUS' => TranslateControllerSTATUS_COMPLETED,
];
}
$languages = $this->controller->getRequest()->get('languages');
if (is_array($languages) && !in_array('all', $languages))
{
$languages = array_intersect($languages, TranslateConfig::getEnabledLanguages());
if (!empty($languages))
{
$this->languages = $languages;
}
}
$this->isNewProcess = false;
$this->instanceTimer()->setTimeLimit(5);
}
return $this->performStep('runIndexing');
}