Fix to do not delete used message files with nested category names (#17021)

This commit is contained in:
Albert Borsos
2019-01-06 22:20:25 +01:00
committed by Alexander Makarov
parent b4cb42fb9d
commit ec1809bed2
3 changed files with 46 additions and 19 deletions

View File

@ -669,7 +669,7 @@ EOD;
}
if ($removeUnused) {
$this->deleteUnusedPhpMessageFiles($dirName, array_keys($messages));
$this->deleteUnusedPhpMessageFiles(array_keys($messages), $dirName);
}
}
@ -889,13 +889,16 @@ EOD;
}
}
private function deleteUnusedPhpMessageFiles($dirName, $existingCategories)
private function deleteUnusedPhpMessageFiles($existingCategories, $dirName)
{
$messageFiles = FileHelper::findFiles($dirName);
foreach ($messageFiles as $file) {
$category = preg_replace('#\.php$#', '', basename($file));
foreach ($messageFiles as $messageFile) {
$categoryFileName = str_replace($dirName, '', $messageFile);
$categoryFileName = ltrim($categoryFileName, DIRECTORY_SEPARATOR);
$category = preg_replace('#\.php$#', '', $categoryFileName);
if (!in_array($category, $existingCategories, true)) {
unlink($file);
unlink($messageFile);
}
}
}