diff --git a/src/installer/dbinstall_mysql.sql b/src/installer/dbinstall_mysql.sql index 22c7cf2..e82faf7 100644 --- a/src/installer/dbinstall_mysql.sql +++ b/src/installer/dbinstall_mysql.sql @@ -19,6 +19,7 @@ INSERT INTO `DBPREFIXconfig` (`identifier`, `type`, `value`, `user_editable`) VA ('loginpokeclient', 'BOOL', 'true', 1), ('cache_logincode', 'INT', '120', 1), ('cache_adminstatus', 'INT', '60', 1), +('cache_languages', 'INT', '300', 1), ('adminstatus_groups', 'JSON', '[]', 1), ('adminstatus_mode', 'INT', '2', 1), ('adminstatus_enabled', 'BOOL', 'true', 1), diff --git a/src/private/php/Utils/Language/LanguageUtils.php b/src/private/php/Utils/Language/LanguageUtils.php index 64ab0d3..00cefa5 100644 --- a/src/private/php/Utils/Language/LanguageUtils.php +++ b/src/private/php/Utils/Language/LanguageUtils.php @@ -3,6 +3,7 @@ namespace Wruczek\TSWebsite\Utils\Language; use Wruczek\PhpFileCache\PhpFileCache; +use Wruczek\TSWebsite\Config; use Wruczek\TSWebsite\Utils\DatabaseUtils; use Wruczek\TSWebsite\Utils\SingletonTait; @@ -147,10 +148,18 @@ class LanguageUtils { $langs[] = new Language($langid, $englishname, $nativename, $langcode, $isdefault, $languageItems); } + uasort($langs, function ($a, $b) { + if ($a->getLanguageId() === $b->getLanguageId()) { + return 0; + } + + return strnatcmp($a->getLanguageNameNative(), $b->getLanguageNameNative()); + }); + $this->languages = $langs; if($updateCache) - $this->cache->store("languages", $langs, 300); + $this->cache->store("languages", $langs, Config::get("cache_languages", 300)); return $langs; }