fix(cli): resolve display name from sys.ini #224
+22
-14
@@ -200,22 +200,30 @@ if ($manifest !== null) {
|
||||
$targetPlatform = "<targetplatform name=\"{$detectedPlatform}\" version=\".*\" />";
|
||||
}
|
||||
|
||||
// Resolve language key names (e.g. PLG_SYSTEM_MOKOJOOMTOS)
|
||||
if (preg_match('/^[A-Z_]+$/', $extName)) {
|
||||
$iniFiles = [];
|
||||
$iterator = new RecursiveIteratorIterator(
|
||||
new RecursiveDirectoryIterator($root, RecursiveDirectoryIterator::SKIP_DOTS)
|
||||
);
|
||||
foreach ($iterator as $file) {
|
||||
if (preg_match('/\.sys\.ini$/i', $file->getFilename())) {
|
||||
$iniFiles[] = $file->getPathname();
|
||||
}
|
||||
// Resolve display name from .sys.ini language files
|
||||
$iniFiles = [];
|
||||
$langIterator = new RecursiveIteratorIterator(
|
||||
new RecursiveDirectoryIterator($root, RecursiveDirectoryIterator::SKIP_DOTS)
|
||||
);
|
||||
foreach ($langIterator as $file) {
|
||||
if (preg_match('/\.sys\.ini$/i', $file->getFilename())) {
|
||||
$iniFiles[] = $file->getPathname();
|
||||
}
|
||||
foreach ($iniFiles as $ini) {
|
||||
$content = file_get_contents($ini);
|
||||
if (preg_match('/^' . preg_quote($extName, '/') . '="([^"]+)"/m', $content, $m)) {
|
||||
}
|
||||
$keyCandidates = [$extName];
|
||||
if (!preg_match('/^[A-Z_]+$/', $extName)) {
|
||||
$upper = strtoupper(str_replace([' ', '-'], '_', $extName));
|
||||
$keyCandidates[] = "TPL_{$upper}";
|
||||
$keyCandidates[] = "MOD_{$upper}";
|
||||
$keyCandidates[] = "COM_{$upper}";
|
||||
$keyCandidates[] = "PLG_{$upper}";
|
||||
}
|
||||
foreach ($iniFiles as $ini) {
|
||||
$content = file_get_contents($ini);
|
||||
foreach ($keyCandidates as $key) {
|
||||
if (preg_match('/^' . preg_quote($key, '/') . '="([^"]+)"/m', $content, $m)) {
|
||||
$extName = $m[1];
|
||||
break;
|
||||
break 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user