Skip to content

Commit a5ae934

Browse files
authored
Merge pull request #8890 from jdarwood007/3.0/DetailedVersions
[3.0] Detailed version fixes for Languages
2 parents 3025402 + a2b4bbb commit a5ae934

File tree

4 files changed

+39
-33
lines changed

4 files changed

+39
-33
lines changed

Languages/en_US/Calendar.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

3-
// Version: 3.0 Alpha 4; General
3+
// Version: 3.0 Alpha 4; Calendar
44

55
$txt['birthdays'] = 'Birthdays:';
66
$txt['events'] = 'Events:';

Sources/Actions/Admin/ACP.php

Lines changed: 27 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1477,9 +1477,6 @@ public static function getServerVersions(array $checkFor): array
14771477
*/
14781478
public static function getFileVersions(array &$versionOptions): array
14791479
{
1480-
// Default place to find the languages would be the default theme dir.
1481-
$lang_dir = Theme::$current->settings['default_theme_dir'] . '/languages';
1482-
14831480
$version_info = [
14841481
'root_versions' => [],
14851482
'file_versions' => [],
@@ -1530,6 +1527,8 @@ public static function getFileVersions(array &$versionOptions): array
15301527
Config::$sourcedir . '/minify/*',
15311528
Config::$sourcedir . '/ReCaptcha/*',
15321529
Config::$sourcedir . '/Tasks/*',
1530+
Config::$sourcedir . '/ZxcvbnPhp/*',
1531+
Config::$sourcedir . '/Unicode/*',
15331532
];
15341533

15351534
foreach ($sources_dir as $filename => $file) {
@@ -1616,31 +1615,37 @@ public static function getFileVersions(array &$versionOptions): array
16161615
}
16171616

16181617
// Load up all the files in the default language directory and sort by language.
1619-
$this_dir = dir($lang_dir);
1618+
$langauges_dir = new \RecursiveIteratorIterator(
1619+
new \RecursiveDirectoryIterator(
1620+
Config::$boarddir . '/Languages',
1621+
\RecursiveDirectoryIterator::SKIP_DOTS,
1622+
),
1623+
);
16201624

1621-
while ($entry = $this_dir->read()) {
1622-
if (str_ends_with($entry, '.php') && $entry != 'index.php' && !is_dir($lang_dir . '/' . $entry)) {
1623-
// Read the first 768 bytes from the file.... enough for the header.
1624-
$fp = fopen($lang_dir . '/' . $entry, 'rb');
1625-
$header = fread($fp, 768);
1626-
fclose($fp);
1625+
foreach ($langauges_dir as $filename => $file) {
1626+
if (!$file->isFile() || $file->getFilename() === 'index.php' || $file->getExtension() !== 'php') {
1627+
continue;
1628+
}
16271629

1628-
// Split the file name off into useful bits.
1629-
list($name, $language) = explode('.', $entry);
1630+
$language = basename(\dirname($filename));
1631+
$short_name = $file->getBasename('.' . $file->getExtension());
1632+
$name = $file->getBasename();
16301633

1631-
// Look for the version comment in the file header.
1632-
if (preg_match('~(?://|/\*)\s*Version:\s+(.+?);\s*' . preg_quote($name, '~') . '(?:[\s]{2}|\*/)~i', $header, $match) == 1) {
1633-
$version_info['default_language_versions'][$language][$name] = $match[1];
1634-
}
1635-
// It wasn't found, but the file was... show a '??'.
1636-
else {
1637-
$version_info['default_language_versions'][$language][$name] = '??';
1638-
}
1634+
// Read the first 768 bytes from the file.... enough for the header.
1635+
$fp = $file->openFile('rb');
1636+
$header = $fp->fread(768);
1637+
$fp = null;
1638+
1639+
// Look for the version comment in the file header.
1640+
if (preg_match('~(?://|/\*)\s*Version:\s+(.+?);\s*' . preg_quote($short_name, '~') . '(?:[\s]{2}|\*/|$)~i', $header, $match) == 1) {
1641+
$version_info['default_language_versions'][$language][$name] = $match[1];
1642+
}
1643+
// It wasn't found, but the file was... show a '??'.
1644+
else {
1645+
$version_info['default_language_versions'][$language][$name] = '??';
16391646
}
16401647
}
16411648

1642-
$this_dir->close();
1643-
16441649
// Sort the file versions by filename.
16451650
if (!empty($versionOptions['sort_results'])) {
16461651
ksort($version_info['file_versions']);

Themes/default/Admin.template.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -469,13 +469,13 @@ function template_view_versions()
469469
echo '
470470
<tr class="windowbg">
471471
<td class="half_table">
472-
', $filename, '.<em>', $language, '</em>.php
472+
<em>', $language, '</em>/', $filename, '
473473
</td>
474474
<td class="quarter_table">
475-
<em id="your', $filename, '.', $language, '">', $version, '</em>
475+
<em id="yourLanguage_', $language, '_', $filename, '">', $version, '</em>
476476
</td>
477477
<td class="quarter_table">
478-
<em id="current', $filename, '.', $language, '">??</em>
478+
<em id="currentLanguage_', $language, '_', $filename, '">??</em>
479479
</td>
480480
</tr>';
481481
}
@@ -580,8 +580,8 @@ function template_view_versions()
580580
<script>
581581
var oViewVersions = new smf_ViewVersions({
582582
aKnownLanguages: [
583-
\'.', implode('\',
584-
\'.', Utils::$context['default_known_languages']), '\'
583+
\'', implode('\',
584+
\'', Utils::$context['default_known_languages']), '\'
585585
],
586586
oSectionContainerIds: {
587587
Sources: \'Sources\',

Themes/default/scripts/admin.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -286,13 +286,14 @@ smf_ViewVersions.prototype.determineVersions = function ()
286286
{
287287
for (var i = 0; i < this.opt.aKnownLanguages.length; i++)
288288
{
289-
if (!document.getElementById('current' + sFilename + this.opt.aKnownLanguages[i]))
289+
if (!document.getElementById('currentLanguage_' + this.opt.aKnownLanguages[i] + '_' + sFilename))
290290
continue;
291291

292-
setInnerHTML(document.getElementById('current' + sFilename + this.opt.aKnownLanguages[i]), smfLanguageVersions[sFilename]);
292+
setInnerHTML(document.getElementById('currentLanguage_' + this.opt.aKnownLanguages[i] + '_' + sFilename), smfLanguageVersions[sFilename]);
293293

294-
sYourVersion = getInnerHTML(document.getElementById('your' + sFilename + this.opt.aKnownLanguages[i]));
295-
setInnerHTML(document.getElementById('your' + sFilename + this.opt.aKnownLanguages[i]), sYourVersion);
294+
console.log('yourLanguage_' + this.opt.aKnownLanguages[i] + '_' +sFilename);
295+
sYourVersion = getInnerHTML(document.getElementById('yourLanguage_' + this.opt.aKnownLanguages[i] + '_' +sFilename));
296+
setInnerHTML(document.getElementById('yourLanguage_' + this.opt.aKnownLanguages[i] + '_' + sFilename), sYourVersion);
296297

297298
if ((this.compareVersions(oHighYour.Languages, sYourVersion) || oHighYour.Languages == '??') && !oLowVersion.Languages)
298299
oHighYour.Languages = sYourVersion;
@@ -302,7 +303,7 @@ smf_ViewVersions.prototype.determineVersions = function ()
302303
if (this.compareVersions(sYourVersion, smfLanguageVersions[sFilename]))
303304
{
304305
oLowVersion.Languages = sYourVersion;
305-
document.getElementById('your' + sFilename + this.opt.aKnownLanguages[i]).style.color = 'red';
306+
document.getElementById('yourLanguage_' + this.opt.aKnownLanguages[i] + '_' + sFilename).style.color = 'red';
306307
}
307308
}
308309
}

0 commit comments

Comments
 (0)