diff --git a/CHANGELOG.md b/CHANGELOG.md index 12d7752888..af6fc732ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,34 @@ # NamelessMC v2 Changelog -## [Unreleased](https://github.com/NamelessMC/Nameless/compare/v2.1.0...v2) +## [Unreleased](https://github.com/NamelessMC/Nameless/compare/v2.1.1...v2) > [Milestone](https://github.com/NamelessMC/Nameless/milestone/21) +## [2.1.1](https://github.com/NamelessMC/Nameless/compare/v2.1.0...v2.1.1) - 2023-06-18 +### Added +- Add Russian translation for Members module [#3352](https://github.com/NamelessMC/Nameless/pull/3352) + +### Changed +- Add all missing languages to the Members module [#3350](https://github.com/NamelessMC/Nameless/pull/3350) +- Remove unable to update groups catch [#3360](https://github.com/NamelessMC/Nameless/pull/3360) +- Call compileQueries only when needed [#3386](https://github.com/NamelessMC/Nameless/pull/3386) +- Remove Discord discriminator requirement [#3374](https://github.com/NamelessMC/Nameless/pull/3374) +- Require module autoload file before module init [#3397](https://github.com/NamelessMC/Nameless/pull/3397) + +### Fixed +- Fix AuthMe enabled value [#3349](https://github.com/NamelessMC/Nameless/pull/3349) +- Ensure Minecraft integration is enabled [#3356](https://github.com/NamelessMC/Nameless/pull/3356) +- Include .htaccess file in release zip [#3362](https://github.com/NamelessMC/Nameless/pull/3362) +- Fix missing cache settings [#3361](https://github.com/NamelessMC/Nameless/pull/3361) +- Fix user group issue [#3365](https://github.com/NamelessMC/Nameless/pull/3365) +- Fix forum title/description encoding on edit [#3359](https://github.com/NamelessMC/Nameless/pull/3359) +- Remove placeholder from singular message [#3369](https://github.com/NamelessMC/Nameless/pull/3369) +- Fix not being able to see Members page in Navigation settings [#3372](https://github.com/NamelessMC/Nameless/pull/3372) +- Fix multi query [#3383](https://github.com/NamelessMC/Nameless/pull/3383) +- Fix icon not being properly shown [#3377](https://github.com/NamelessMC/Nameless/pull/3377) +- Fix ghost player on status page [#3351](https://github.com/NamelessMC/Nameless/pull/3351) +- Fix outdated event [#3394](https://github.com/NamelessMC/Nameless/pull/3394) +- Fix OAuth linking for forced integrations [#3395](https://github.com/NamelessMC/Nameless/pull/3395) + ## [2.1.0](https://github.com/NamelessMC/Nameless/compare/v2.0.3...v2.1.0) - 2023-05-01 ### Added - Add dark mode toggle switch [#2877](https://github.com/NamelessMC/Nameless/pull/2877) diff --git a/core/classes/Core/User.php b/core/classes/Core/User.php index 0d2faef8c0..b689b32dc5 100644 --- a/core/classes/Core/User.php +++ b/core/classes/Core/User.php @@ -6,7 +6,7 @@ * @author Samerton * @author Partydragen * @author Aberdeener - * @version 2.0.2 + * @version 2.1.1 * @license MIT */ class User { @@ -130,7 +130,7 @@ private function find(string $value, string $field = 'id'): bool { * @return bool True on success, false if they already have it. */ public function addGroup(int $group_id, int $expire = 0): bool { - if (array_key_exists($group_id, $this->_groups ?? [])) { + if (array_key_exists($group_id, $this->getGroups())) { return false; } @@ -545,6 +545,7 @@ public function getGroups(): array { $default_group = Group::find(1, 'default_group'); $default_group_id = $default_group->id ?? 1; + $this->_groups = []; $this->addGroup($default_group_id); } diff --git a/core/classes/Database/DatabaseInitialiser.php b/core/classes/Database/DatabaseInitialiser.php index 47bdb084ab..568b0130f1 100644 --- a/core/classes/Database/DatabaseInitialiser.php +++ b/core/classes/Database/DatabaseInitialiser.php @@ -7,7 +7,7 @@ class DatabaseInitialiser { private function __construct() { $this->_db = DB::getInstance(); - $this->_cache = new Cache(); + $this->_cache = new Cache(['name' => 'nameless', 'extension' => '.cache', 'path' => ROOT_PATH . '/cache/']); } public static function runPreUser() { @@ -183,7 +183,7 @@ private function initialiseSettings(): void { Util::setSetting('recaptcha_type', 'Recaptcha3'); Util::setSetting('recaptcha_login', '0'); Util::setSetting('email_verification', '1'); - Util::setSetting('nameless_version', '2.1.0'); + Util::setSetting('nameless_version', '2.1.1'); Util::setSetting('version_checked', date('U')); Util::setSetting('phpmailer', '0'); Util::setSetting('user_avatars', '0'); diff --git a/core/classes/Database/QueryRecorder.php b/core/classes/Database/QueryRecorder.php index 2d60af160d..7034cee875 100644 --- a/core/classes/Database/QueryRecorder.php +++ b/core/classes/Database/QueryRecorder.php @@ -19,7 +19,17 @@ class QueryRecorder extends Instanceable { * @return array SQL queries */ public function getSqlStack(): array { - return array_reverse($this->_query_stack); + $stack = array_reverse($this->_query_stack); + + // Compile queries - replace bound parameters with their values and syntax highlight + foreach ($stack as &$query) { + $query['sql_query'] = $this->compileQuery( + $query['sql_string'], + $query['sql_params'] + ); + } + + return $stack; } /** @@ -38,7 +48,8 @@ public function pushQuery(string $sql, array $params): void { $this->_query_stack[] = [ 'number' => $this->_query_stack_num, 'frame' => ErrorHandler::parseFrame(null, $backtrace['file'], $backtrace['line'], $this->_query_stack_num), - 'sql_query' => $this->compileQuery($sql, $params) + 'sql_string' => $sql, + 'sql_params' => $params, ]; $this->_query_stack_num++; diff --git a/core/classes/Minecraft/PluginQuery.php b/core/classes/Minecraft/PluginQuery.php index b7ea6656c9..18ca8d3d31 100644 --- a/core/classes/Minecraft/PluginQuery.php +++ b/core/classes/Minecraft/PluginQuery.php @@ -63,17 +63,18 @@ public static function multiQuery(array $servers, Language $language, bool $accu $cache->setCache('latest_query'); foreach ($servers as $server) { - $server_id = $server->id; - $data = $cache->retrieve($server_id); + $server_id = $server['id']; + if (!$cache->isCached($server_id) && $accumulate === true) { $to_return[] = [ - 'name' => Output::getClean($data['name']), + 'name' => Output::getClean($server['name']), 'status_value' => 0, 'status' => $language->get('general', 'offline'), 'server_offline' => $language->get('general', 'server_offline') ]; } else { // Server is online + $data = $cache->retrieve($server_id); if ($accumulate === false) { $to_return[] = [ 'name' => Output::getClean($server['name']), @@ -107,4 +108,4 @@ public static function multiQuery(array $servers, Language $language, bool $accu return $to_return; } -} \ No newline at end of file +} diff --git a/core/classes/Misc/ErrorHandler.php b/core/classes/Misc/ErrorHandler.php index fa9ec37198..fd74b14342 100644 --- a/core/classes/Misc/ErrorHandler.php +++ b/core/classes/Misc/ErrorHandler.php @@ -142,6 +142,7 @@ public static function catchException(?Throwable $exception, ?string $error_stri 'PRISM_CSS' => $path . 'plugins/prism/prism_light_atom.css', 'PRISM_JS' => $path . 'plugins/prism/prism.js', 'DETAILED_ERROR' => Debugging::canViewDetailedError(), + 'LOGO' => $path . 'img/namelessmc_logo.png', 'FATAL_ERROR_TITLE' => $language->get('errors', 'fatal_error_title'), 'FATAL_ERROR_MESSAGE_ADMIN' => $language->get('errors', 'fatal_error_message_admin'), 'FATAL_ERROR_MESSAGE_USER' => $language->get('errors', 'fatal_error_message_user'), diff --git a/core/includes/error.tpl b/core/includes/error.tpl index cd78d737c4..d304bf3281 100644 --- a/core/includes/error.tpl +++ b/core/includes/error.tpl @@ -19,7 +19,7 @@ {if $DETAILED_ERROR} \ No newline at end of file + diff --git a/dev/scripts/release.py b/dev/scripts/release.py index 9b5c50b966..8ba212a632 100644 --- a/dev/scripts/release.py +++ b/dev/scripts/release.py @@ -18,6 +18,7 @@ ] INCLUDE_FILES = [ + '.htaccess', '403.php', '404.php', 'index.php', diff --git a/modules/Cookie Consent/language/tr_TR.json b/modules/Cookie Consent/language/tr_TR.json index 0967ef424b..4ef0daa2c3 100644 --- a/modules/Cookie Consent/language/tr_TR.json +++ b/modules/Cookie Consent/language/tr_TR.json @@ -1 +1,13 @@ -{} +{ + "cookie/configure_cookies": "Çerezleri Yönet", + "cookie/cookie_notice_success": "Çerez bildirimi başarıyla güncellendi.", + "cookie/cookie_notice": "Çerez Bildirimi", + "cookie/cookie_notice_error": "Lütfen en fazla 10.000 karakterlik bir çerez bildirimi girin.", + "cookie/cookie_notice_info": "Bu widget çerez gerektirir", + "cookie/cookie_popup": "Bu web sitesi, tarama deneyiminizi geliştirmek için çerezleri kullanır.", + "cookie/cookie_popup_allow": "Çerezlere izin ver", + "cookie/cookie_popup_disallow": "Çerezlere izin verme", + "cookie/cookie_popup_more_info": "Daha fazla bilgi", + "cookie/cookies": "Çerezler", + "cookie/update_settings": "Çerez Açılır Penceresini Göster" +} diff --git a/modules/Cookie Consent/module.php b/modules/Cookie Consent/module.php index f5788b4f7a..8beaac5e9c 100644 --- a/modules/Cookie Consent/module.php +++ b/modules/Cookie Consent/module.php @@ -2,7 +2,7 @@ /* * Made by Samerton * https://github.com/NamelessMC/Nameless/ - * NamelessMC version 2.1.0 + * NamelessMC version 2.1.1 * * License: MIT * @@ -20,8 +20,8 @@ public function __construct(Language $language, Language $cookie_language, Pages $name = 'Cookie Consent'; $author = 'Samerton'; - $module_version = '2.1.0'; - $nameless_version = '2.1.0'; + $module_version = '2.1.1'; + $nameless_version = '2.1.1'; parent::__construct($this, $name, $author, $module_version, $nameless_version); diff --git a/modules/Core/classes/Misc/CoreApiErrors.php b/modules/Core/classes/Misc/CoreApiErrors.php index 9b0cb5ab7b..a5b1d0c40b 100644 --- a/modules/Core/classes/Misc/CoreApiErrors.php +++ b/modules/Core/classes/Misc/CoreApiErrors.php @@ -36,7 +36,6 @@ class CoreApiErrors { public const ERROR_USER_ALREADY_ACTIVE = 'core:user_already_active'; public const ERROR_UNABLE_TO_UPDATE_USERNAME = 'core:unable_to_update_username'; - public const ERROR_UNABLE_TO_UPDATE_GROUPS = 'core:unable_to_update_groups'; public const ERROR_INTEGRATION_IDENTIFIER_ERRORS = 'core:integration_identifier_errors'; public const ERROR_INTEGRATION_USERNAME_ERRORS = 'core:integration_username_errors'; diff --git a/modules/Core/includes/endpoints/ServerInfoEndpoint.php b/modules/Core/includes/endpoints/ServerInfoEndpoint.php index 1b70984e9b..214086de1a 100644 --- a/modules/Core/includes/endpoints/ServerInfoEndpoint.php +++ b/modules/Core/includes/endpoints/ServerInfoEndpoint.php @@ -64,21 +64,23 @@ public function execute(Nameless2API $api): void { $api->throwError(CoreApiErrors::ERROR_UNABLE_TO_UPDATE_SERVER_INFO, $e->getMessage(), 500); } - try { - $integration = Integrations::getInstance()->getIntegration('Minecraft'); + if (Util::getSetting('mc_integration')) { + try { + $integration = Integrations::getInstance()->getIntegration('Minecraft'); - foreach ($_POST['players'] as $uuid => $player) { - $integrationUser = new IntegrationUser($integration, $uuid, 'identifier'); - if ($integrationUser->exists()) { - $this->updateUsername($integrationUser, $player); + foreach ($_POST['players'] as $uuid => $player) { + $integrationUser = new IntegrationUser($integration, $uuid, 'identifier'); + if ($integrationUser->exists()) { + $this->updateUsername($integrationUser, $player); - if (isset($player['placeholders']) && count($player['placeholders'])) { - $this->updatePlaceholders($integrationUser->getUser(), $player); + if (isset($player['placeholders']) && count($player['placeholders'])) { + $this->updatePlaceholders($integrationUser->getUser(), $player); + } } } + } catch (Exception $e) { + $api->throwError(CoreApiErrors::ERROR_UNABLE_TO_UPDATE_SERVER_INFO, $e->getMessage(), 500); } - } catch (Exception $e) { - $api->throwError(CoreApiErrors::ERROR_UNABLE_TO_UPDATE_SERVER_INFO, $e->getMessage(), 500); } // Server query diff --git a/modules/Core/includes/endpoints/UpdateGroupsEndpoint.php b/modules/Core/includes/endpoints/UpdateGroupsEndpoint.php index 86d9c63eca..4a8fe0f396 100644 --- a/modules/Core/includes/endpoints/UpdateGroupsEndpoint.php +++ b/modules/Core/includes/endpoints/UpdateGroupsEndpoint.php @@ -15,21 +15,17 @@ public function execute(Nameless2API $api): void { $server_id = $_POST['server_id']; $group_sync_log = []; - if ($server_id == Util::getSetting('group_sync_mc_server')) { - try { - $integration = Integrations::getInstance()->getIntegration('Minecraft'); - - foreach ($_POST['player_groups'] as $uuid => $groups) { - $integrationUser = new IntegrationUser($integration, str_replace('-', '', $uuid), 'identifier'); - if ($integrationUser->exists()) { - $log = $this->updateGroups($integrationUser, $groups['groups']); - if (count($log)) { - $group_sync_log[] = $log; - } + if (Util::getSetting('mc_integration') && $server_id == Util::getSetting('group_sync_mc_server')) { + $integration = Integrations::getInstance()->getIntegration('Minecraft'); + + foreach ($_POST['player_groups'] as $uuid => $groups) { + $integrationUser = new IntegrationUser($integration, str_replace('-', '', $uuid), 'identifier'); + if ($integrationUser->exists()) { + $log = $this->updateGroups($integrationUser, $groups['groups']); + if (count($log)) { + $group_sync_log[] = $log; } } - } catch (Exception $e) { - $api->throwError(CoreApiErrors::ERROR_UNABLE_TO_UPDATE_GROUPS, $e->getMessage(), 500); } $api->returnArray(array_merge(['message' => $api->getLanguage()->get('api', 'groups_updates_successfully')], ['log' => $group_sync_log])); diff --git a/modules/Core/module.php b/modules/Core/module.php index d49a78a287..f3814fe54c 100644 --- a/modules/Core/module.php +++ b/modules/Core/module.php @@ -2,7 +2,7 @@ /* * Made by Samerton * https://github.com/NamelessMC/Nameless/ - * NamelessMC version 2.1.0 + * NamelessMC version 2.1.1 * * License: MIT * @@ -21,8 +21,8 @@ public function __construct(Language $language, Pages $pages, User $user, Naviga $name = 'Core'; $author = 'Samerton'; - $module_version = '2.1.0'; - $nameless_version = '2.1.0'; + $module_version = '2.1.1'; + $nameless_version = '2.1.1'; parent::__construct($this, $name, $author, $module_version, $nameless_version); @@ -834,7 +834,7 @@ public function onPageLoad(User $user, Pages $pages, Cache $cache, Smarty $smart } if (!is_null($default) && isset($default->ip)) { - $full_ip = ['ip' => $default->ip . (is_null($default->port) ? '' : ':' . $default->port), 'pre' => $default->pre, 'name' => $default->name]; + $full_ip = ['ip' => $default->ip . (is_null($default->port) ? '' : ':' . $default->port), 'pre' => $default->pre, 'name' => $default->name, 'id' => $default->id]; // Get query type $query_type = Util::getSetting('query_type', 'internal'); diff --git a/modules/Core/pages/authme_connector.php b/modules/Core/pages/authme_connector.php index acf757f8cc..0f4840196f 100644 --- a/modules/Core/pages/authme_connector.php +++ b/modules/Core/pages/authme_connector.php @@ -167,17 +167,9 @@ $user = new User($user_id); $user->addGroup($default_group); - EventHandler::executeEvent('registerUser', [ - 'user_id' => $user_id, - 'username' => $user->getDisplayname(), - 'content' => $language->get('user', 'user_x_has_registered', [ - 'user' => $user->getDisplayname(), - ]), - 'avatar_url' => $user->getAvatar(128, true), - 'url' => URL::getSelfURL() . ltrim($user->getProfileURL(), '/'), - 'language' => $language, - ] - ); + EventHandler::executeEvent(new UserRegisteredEvent( + $user, + )); // Link the minecraft integration $integration->successfulRegistration($user); diff --git a/modules/Core/pages/panel/minecraft_authme.php b/modules/Core/pages/panel/minecraft_authme.php index b16ce5872d..46e0a9f113 100644 --- a/modules/Core/pages/panel/minecraft_authme.php +++ b/modules/Core/pages/panel/minecraft_authme.php @@ -137,7 +137,7 @@ 'AUTHME_INFO' => $language->get('admin', 'authme_integration_info'), 'INFO' => $language->get('general', 'info'), 'ENABLE_AUTHME' => $language->get('admin', 'enable_authme'), - 'ENABLE_AUTHME_VALUE' => ($authme_enabled == '1'), + 'ENABLE_AUTHME_VALUE' => (Util::getSetting('authme') == '1'), 'AUTHME' => $language->get('admin', 'authme_integration'), 'MINECRAFT_LINK' => URL::build('/panel/minecraft') ]); diff --git a/modules/Discord Integration/classes/DiscordIntegration.php b/modules/Discord Integration/classes/DiscordIntegration.php index 4fd1d49c84..b191d876b6 100644 --- a/modules/Discord Integration/classes/DiscordIntegration.php +++ b/modules/Discord Integration/classes/DiscordIntegration.php @@ -4,7 +4,7 @@ * * @package Modules\Core\Integrations * @author Partydragen - * @version 2.1.0 + * @version 2.1.1 * @license MIT */ class DiscordIntegration extends IntegrationBase { @@ -81,12 +81,14 @@ public function validateUsername(string $username, int $integration_user_id = 0) $validation = Validate::check(['username' => $username], [ 'username' => [ Validate::REQUIRED => true, - Validate::REGEX => '/^.{2,32}#[0-9]{4}$/' + Validate::MIN => 2, + Validate::MAX => 32 ] ])->messages([ 'username' => [ Validate::REQUIRED => $this->_language->get('admin', 'integration_username_required', ['integration' => $this->getName()]), - Validate::REGEX => $this->_language->get('admin', 'integration_username_invalid', ['integration' => $this->getName()]) + Validate::MIN => $this->_language->get('admin', 'integration_username_invalid', ['integration' => $this->getName()]), + Validate::MAX => $this->_language->get('admin', 'integration_username_invalid', ['integration' => $this->getName()]) ] ]); @@ -166,9 +168,9 @@ public function successfulRegistration(User $user) { // Link integration if user registered using discord oauth if (Session::exists('oauth_register_data')) { $data = json_decode(Session::get('oauth_register_data'), true); - if ($data['provider'] == 'discord' && isset($data['data']['username']) && isset($data['data']['discriminator'])) { + if ($data['provider'] == 'discord' && isset($data['data']['username'])) { - $username = $data['data']['username'] . '#' . $data['data']['discriminator']; + $username = $data['data']['username']; $discord_id = $data['data']['id']; if ($this->validateIdentifier($discord_id) && $this->validateUsername($username)) { $integrationUser = new IntegrationUser($this); diff --git a/modules/Discord Integration/language/fr_FR.json b/modules/Discord Integration/language/fr_FR.json index 22e3b50c67..267c7cb66c 100644 --- a/modules/Discord Integration/language/fr_FR.json +++ b/modules/Discord Integration/language/fr_FR.json @@ -9,14 +9,16 @@ "discord_integration/discord_widget_theme": "Thème Discord Widget", "discord_integration/discord_widget_error": "Une erreur s'est produite lors de l'obtention du widget Discord : {{error}}.", "discord_integration/discord_id_required": "Veuillez entrer votre ID de serveur Discord.", - "discord_integration/discord_id_confirm": "Veuillez exécuter la commande \"/verify {{token}}\" dans Discord pour terminer la liaison de votre compte Discord.", - "discord_integration/discord_id_length": "Veuillez vous assurer que votre ID de serveur Discord comporte 18 caractères.", + "discord_integration/discord_id_confirm": "Veuillez exécuter la commande \"/verify token:{{token}}\" dans Discord pour terminer la liaison de votre compte Discord.", + "discord_integration/discord_id_length": "Veuillez vous assurer que votre ID de serveur Discord est compris entre {{min}} et {{max}} chiffres.", "discord_integration/discord_role_id": "Discord Role ID", "discord_integration/discord": "Discord", "discord_integration/discord_id_numeric": "Veuillez vous assurer que votre ID de serveur Discord est numérique (uniquement des chiffres).", "discord_integration/discord_invite_info": "Pour inviter le bot Nameless Link sur votre serveur Discord, cliquez sur {{inviteLinkStart}} ici{{inviteLinkEnd}}. Ensuite, exécutez la commande {{command}} pour lier le robot à votre site Web. Vous pouvez également {{selfHostLinkStart}} héberger le robot vous-même{{selfHostLinkEnd}}.", - "discord_integration/discord_role_id_length": "L'identifiant de rôle Discord doit comporter 18 chiffres.", + "discord_integration/discord_role_id_length": "L'ID du rôle Discord doit être compris entre {{min}} et {{max}} chiffres.", "discord_integration/discord_role_id_numeric": "L'ID de rôle Discord doit être numérique.", "discord_integration/discord_widget_disabled": "Le widget est désactivé pour le serveur Discord spécifié. Veuillez accéder à l'onglet \"Widget\" dans les paramètres de votre serveur Discord, et assurez-vous que le widget Discord est activé et que l'ID est correct.", - "discord_integration/enable_discord_integration": "Activer l'intégration de Discord ?" + "discord_integration/enable_discord_integration": "Activer l'intégration de Discord ?", + "discord_integration/discord_bot": "Bot Discord", + "discord_integration/link_method": "Méthode de liaison" } diff --git a/modules/Discord Integration/language/ru_RU.json b/modules/Discord Integration/language/ru_RU.json index 0932b21605..034af307f9 100644 --- a/modules/Discord Integration/language/ru_RU.json +++ b/modules/Discord Integration/language/ru_RU.json @@ -18,5 +18,7 @@ "discord_integration/discord_widget_theme": "Тема для виджета", "discord_integration/enable_discord_integration": "Включить интеграцию?", "discord_integration/discord_widget_error": "Произошла ошибка при Discord виджете: {{error}}.", - "discord_integration/discord_id_required": "Введите ваш Дискорд Сервер ID." + "discord_integration/discord_id_required": "Введите ваш Дискорд Сервер ID.", + "discord_integration/discord_bot": "Discord бот", + "discord_integration/link_method": "Метод подключения" } diff --git a/modules/Discord Integration/language/tr_TR.json b/modules/Discord Integration/language/tr_TR.json index 0967ef424b..388ddc43e6 100644 --- a/modules/Discord Integration/language/tr_TR.json +++ b/modules/Discord Integration/language/tr_TR.json @@ -1 +1,21 @@ -{} +{ + "discord_integration/discord_id_length": "Lütfen Discord Sunucu ID'nizin {{min}} ile {{max}} hane uzunluğunda olduğundan emin olun.", + "discord_integration/discord_role_id_length": "Discord Rol ID'si, {{min}} ile {{max}} basamak uzunluğunda olmalıdır.", + "discord_integration/discord_bot": "Discord Botu", + "discord_integration/discord_bot_setup": "Bot kuruldu mu?", + "discord_integration/discord_bot_must_be_setup": "Botu kurana kadar Discord Entegrasyonu etkinleştirilemez. Bilgi için lütfen {{linkStart}}buraya{{linkEnd}} tıklayın.", + "discord_integration/discord_guild_id": "Discord Sunucu ID", + "discord_integration/discord_id_confirm": "Discord hesabınızı bağlamayı tamamlamak için lütfen Discord'da \"/verify token:{{token}}\" komutunu çalıştırın.", + "discord_integration/discord_id_help": "Discord ID'i nerede bulacağınız hakkında bilgi için lütfen {{linkStart}}bunu{{linkEnd}} okuyun", + "discord_integration/discord_role_id_numeric": "Discord Rol ID'si sayısal olmalıdır.", + "discord_integration/discord": "Discord", + "discord_integration/discord_id_numeric": "Lütfen Discord Sunucu ID'nizin sayısal olduğundan emin olun (yalnızca sayılar).", + "discord_integration/discord_role_id": "Discord Rol ID", + "discord_integration/discord_settings_updated": "Discord ayarları başarıyla güncellendi", + "discord_integration/discord_usernames_updated": "Discord kullanıcı adı başarıyla güncellendi", + "discord_integration/discord_widget_error": "Discord widget'ı alınırken bir hata oluştu: {{error}}.", + "discord_integration/discord_widget_theme": "Discord Widget Teması", + "discord_integration/enable_discord_integration": "Discord entegrasyonu etkinleştirilsin mi?", + "discord_integration/discord_widget_disabled": "Widget, belirtilen Discord sunucusu için devre dışı bırakıldı. Lütfen Discord sunucu ayarlarınızdaki 'Widget' sekmesine gidin ve Discord widget'ının etkinleştirildiğinden ve id'sinin olduğundan emin olun.", + "discord_integration/link_method": "Bağlantı yöntemi" +} diff --git a/modules/Discord Integration/module.php b/modules/Discord Integration/module.php index c0b9c2a8c7..03ad2dc7f4 100644 --- a/modules/Discord Integration/module.php +++ b/modules/Discord Integration/module.php @@ -9,8 +9,8 @@ public function __construct(Language $language, Pages $pages, Endpoints $endpoin $name = 'Discord Integration'; $author = 'Aberdeener'; - $module_version = '2.1.0'; - $nameless_version = '2.1.0'; + $module_version = '2.1.1'; + $nameless_version = '2.1.1'; parent::__construct($this, $name, $author, $module_version, $nameless_version); diff --git a/modules/Forum/language/da_DK.json b/modules/Forum/language/da_DK.json index 0967ef424b..1d5a9ef060 100644 --- a/modules/Forum/language/da_DK.json +++ b/modules/Forum/language/da_DK.json @@ -1 +1,17 @@ -{} +{ + "forum/all_topics_unfollowed": "Alle emner bliver ikke flugt mere.", + "forum/available_hooks": "Ledig Hooks", + "forum/topic_reply": "emne svar", + "forum/can_create_topic": "kan oprette emner?", + "forum/can_post_reply": "kan svar?", + "forum/can_view_forum": "kan se forum?", + "forum/confirm_delete_post": "Er du sikker på at du vil slette dette opslag?", + "forum/confirm_delete_topic": "Er du sikker på du vil slette dette emne?", + "forum/by": "ved", + "forum/can_edit_topic": "kan redigere deres emne?", + "forum/edit": "Redigere", + "forum/delete_topic": "slet emne", + "forum/delete_forum": "Slet forum", + "forum/delete_topics_and_posts": "Slet enme og opslag", + "forum/average_posts": "Gennemsnitligt antal brugerindlæg" +} diff --git a/modules/Forum/language/en_US.json b/modules/Forum/language/en_US.json index 1565620be0..bfb6a44114 100644 --- a/modules/Forum/language/en_US.json +++ b/modules/Forum/language/en_US.json @@ -176,5 +176,12 @@ "forum/topic_reply": "Topic reply", "forum/label_type_in_use": "Label type is being used, cannot be deleted.", "forum/latest_posts_widget_cached": "The latest posts widget is cached for one minute, your changes may not take effect immediately.", - "forum/latest_posts_limit": "Latest posts limit" + "forum/latest_posts_limit": "Latest posts limit", + "forum/news_items_max": "Number of news items should be at least {{max}}", + "forum/news_items_min": "Number of news items should be at least {{min}}", + "forum/news_items_front_page_limit": "Number of news items to display on front page", + "forum/reaction_score": "Reaction score", + "forum/no_posts_found": "No posts found.", + "forum/highest_reaction_scores": "Highest reaction scores", + "forum/most_posts": "Most posts" } diff --git a/modules/Forum/language/hu_HU.json b/modules/Forum/language/hu_HU.json index de95f7f970..f9b6ad5340 100644 --- a/modules/Forum/language/hu_HU.json +++ b/modules/Forum/language/hu_HU.json @@ -179,5 +179,9 @@ "forum/latest_posts_limit": "A legújabb bejegyzések korlátja", "forum/highest_reaction_scores": "A legmagasabb reakciópontszámok", "forum/most_posts": "Legtöbb poszt", - "forum/reaction_score": "Reakciópontszám" + "forum/reaction_score": "Reakciópontszám", + "forum/news_items_max": "A hírek száma maximum {{max}} legyen", + "forum/news_items_min": "A hírek száma minimum {{min}} legyen", + "forum/news_items_front_page_limit": "A címlapon megjelenítendő hírek száma", + "forum/no_posts_found": "Nem található bejegyzés." } diff --git a/modules/Forum/language/ru_RU.json b/modules/Forum/language/ru_RU.json index c75414e277..a3269f793a 100644 --- a/modules/Forum/language/ru_RU.json +++ b/modules/Forum/language/ru_RU.json @@ -180,5 +180,8 @@ "forum/most_posts": "Большинство постов", "forum/no_posts_found": "Посты не найдены.", "forum/highest_reaction_scores": "Самые высокие оценки реакции", - "forum/reaction_score": "Оценка реакции" + "forum/reaction_score": "Оценка реакции", + "forum/news_items_max": "Количество новостей должно быть не больше {{max}}", + "forum/news_items_front_page_limit": "Количество новостей для отображения на главной странице", + "forum/news_items_min": "Количество новостей должно быть не менее {{min}}" } diff --git a/modules/Forum/language/tr_TR.json b/modules/Forum/language/tr_TR.json index a6b995d184..9d8bbda8c6 100644 --- a/modules/Forum/language/tr_TR.json +++ b/modules/Forum/language/tr_TR.json @@ -17,10 +17,10 @@ "forum/creating_label_type": "Yeni etiket türü oluşturma", "forum/creating_topic_in_x": "{{forum}} içinde konu oluşturuluyor", "forum/default_labels": "Default Labels", - "forum/default_labels_info": "These will be assigned to a new topic in the forum unless overridden during topic creation. Ctrl+Click to select multiple", + "forum/default_labels_info": "Bunlar, konu oluşturma sırasında geçersiz kılınmadığı sürece forumdaki yeni bir konuya atanacaktır. Birden çok seçmek için Ctrl+Tıkla", "forum/delete_forum": "Forumu sil", "forum/delete_topic": "Konuyu sil", - "forum/delete_topics_and_posts": "Konuları ve mesajları silme", + "forum/delete_topics_and_posts": "Konuları ve mesajları sil", "forum/discussion": "Tartışma", "forum/display_topics_as_news": "Konular ön sayfada haber olarak gösterilsin mi?", "forum/edit": "Düzenle", @@ -53,8 +53,8 @@ "forum/input_forum_title": "Lütfen bir forum başlığı girin.", "forum/insert_quotes": "Teklif Ekle", "forum/invalid_action": "Geçersiz eylem", - "forum/invalid_redirect_url": "Forum yönlendirmesini etkinleştirdiniz, ancak 1 ile 512 karakter arasında geçerli bir URL girmediniz.", - "forum/invalid_search_query": "Lütfen 3 ila 128 karakter uzunluğunda bir arama sorgusu girin.", + "forum/invalid_redirect_url": "Forum yönlendirmesini etkinleştirdiniz, ancak {{min}} ile {{max}} karakter arasında geçerli bir URL girmediniz.", + "forum/invalid_search_query": "Lütfen {{min}} ile {{max}} karakter uzunluğunda bir arama sorgusu girin.", "forum/label": "Etiket", "forum/label_creation_error": "Etiket oluşturma hatası. Lütfen adın 32 karakterden uzun olmadığından ve bir tür belirttiğinizden emin olun.", "forum/label_creation_success": "Etiket başarıyla oluşturuldu.", @@ -86,18 +86,18 @@ "forum/mod_actions": "Moderasyon", "forum/move_topic": "Konuyu taşı", "forum/move_topic_to": "Konuyu şuraya taşı:", - "forum/move_topics_and_posts_to": "Konuları ve mesajları şuraya taşı:", - "forum/new_forum": " Forum ekle", - "forum/new_label": " Etiket ekle", - "forum/new_label_type": " Etiket türü ekle", + "forum/move_topics_and_posts_to": "Konuları ve mesajları şuraya taşı", + "forum/new_forum": "Yeni Forum", + "forum/new_label": "Yeni Etiket", + "forum/new_label_type": "Yeni Etiket Türü", "forum/new_reply": "Yeni Cevap", "forum/new_reply_in_topic": "{{author}}, {{topic}} konusunu yanıtladı", "forum/new_search": "Yeni Arama", - "forum/new_topic": "Yeni Konu Aç..", - "forum/new_topic_text": "{{forum}} tarafından {{author}} tarafından oluşturulan konu", - "forum/no_forums": "Forum Yok", - "forum/no_label_types_defined": "Henüz hiçbir etiket türü eklenmedi!", - "forum/no_labels_defined": "Henüz hiçbir etiket eklenmedi!", + "forum/new_topic": "Yeni Konu", + "forum/new_topic_text": "Konu, {{forum}} içerisinde {{author}} tarafından oluşturuldu", + "forum/no_forums": "Forum yok", + "forum/no_label_types_defined": "Henüz etiket türü tanımlanmadı.", + "forum/no_labels_defined": "Henüz etiket tanımlanmadı.", "forum/no_longer_following_topic": "Artık bu konuyu takip etmiyorsunuz ve yeni yanıtlardan haberdar edilmeyeceksiniz.", "forum/no_results_found": "Sonuç bulunamadı.", "forum/no_topics": "Henüz hiç konu oluşturulmadı.", @@ -108,14 +108,14 @@ "forum/parent_forum": "Ana Forum", "forum/parent_forum_x": "Ana Forum: {{forum}}", "forum/post_already_reported": "Bu gönderiyi zaten bildirdin!", - "forum/post_edited_successfully": "Gönderi başarıyla düzenlendi!", + "forum/post_edited_successfully": "Gönderi başarıyla düzenlendi.", "forum/post_successful": "Gönderi başarılı.", "forum/posts": "Mesaj", "forum/posts_title": "Mesajlar", "forum/quote": "Alıntı", - "forum/quoted_post": "Konu, alıntı konulara eklendi.", + "forum/quoted_post": "Gönderi alıntılandı", "forum/re": "RE: ", - "forum/read_full_post": "Konunun tamamını oku", + "forum/read_full_post": "Yazının tamamını oku", "forum/recent_posts": "Yakın Zamanda Gönderilenler", "forum/recent_topics": "Son Konular", "forum/redirect_forum": "Forum yeni sekmede açılsın mı?", @@ -129,7 +129,7 @@ "forum/share_facebook": "Facebook ile paylaş", "forum/share_twitter": "Twitter ile paylaş", "forum/spam_wait": "Lütfen tekrar göndermeden önce {{count}} saniye bekleyin.", - "forum/started_by_x": "{{author}} tarafından başlatıldı!", + "forum/started_by_x": "{{author}} tarafından başlatıldı", "forum/stats": "İstatistik", "forum/stick_topic": "Konuyu sabitle", "forum/sticky_topics": "Sabit Konular", @@ -141,9 +141,9 @@ "forum/topic_locked": "Konu Kilitlendi", "forum/topic_locked_notice": "Bu konu kilitli, ancak izinleriniz bir yanıt oluşturmanıza izin veriyor.", "forum/topic_placeholder": "Konu yer tutucusu", - "forum/topic_stuck": "Konu sabitlendi!", + "forum/topic_stuck": "Konu sabitlendi.", "forum/topic_title": "Konu Başlığı", - "forum/topic_unstuck": "Konu sabit konulardan kaldırıldı!", + "forum/topic_unstuck": "Konu sabit konulardan kaldırıldı.", "forum/topics": "Konu", "forum/topics_title": "Konular", "forum/total_posts": "Toplam konu sayısı", @@ -157,5 +157,22 @@ "forum/views": "Görüntüleme", "forum/x_posts": "{{count}} Mesaj", "forum/x_topics": "{{count}} Konu", - "forum/your_posts": "Mesaj sayınız" + "forum/your_posts": "Mesaj sayınız", + "forum/news_items_front_page_limit": "Ön sayfada görüntülenecek haber sayısı", + "forum/news_items_max": "Haber sayısı en az {{max}} olmalıdır", + "forum/news_items_min": "Haber sayısı en az {{min}} olmalıdır", + "forum/no_news": "Haber gönderisi yok.", + "forum/all_topics_unfollowed": "Tüm konular takipten çıkarıldı.", + "forum/available_hooks": "Mevcut Hook'lar", + "forum/include_in_hook": "Bu forumdaki etkinlikler webhooks'a dahil edilsin mi?", + "forum/confirm_unfollow_all_topics": "Tüm konuları takip etmeyi bırakmak istediğinizden emin misiniz?", + "forum/topic_reply": "Konu yanıtı", + "forum/label_type_in_use": "Etiket tipi kullanılıyor, silinemez.", + "forum/no_posts_found": "Gönderi bulunamadı.", + "forum/highest_reaction_scores": "En yüksek tepki puanları", + "forum/most_posts": "En iyi gönderiler", + "forum/not_following_any_topics": "Herhangi bir konuyu takip etmiyorsunuz.", + "forum/following_topics": "Takip edilen konular", + "forum/reaction_score": "Tepki puanı", + "forum/post_id": "Gönderi ID" } diff --git a/modules/Forum/module.php b/modules/Forum/module.php index 35735b38c3..6d2ae791b1 100644 --- a/modules/Forum/module.php +++ b/modules/Forum/module.php @@ -2,7 +2,7 @@ /* * Made by Samerton * https://github.com/NamelessMC/Nameless/ - * NamelessMC version 2.1.0 + * NamelessMC version 2.1.1 * * License: MIT * @@ -20,8 +20,8 @@ public function __construct(Language $language, Language $forum_language, Pages $name = 'Forum'; $author = 'Samerton'; - $module_version = '2.1.0'; - $nameless_version = '2.1.0'; + $module_version = '2.1.1'; + $nameless_version = '2.1.1'; parent::__construct($this, $name, $author, $module_version, $nameless_version); diff --git a/modules/Forum/pages/panel/forums.php b/modules/Forum/pages/panel/forums.php index 8667c67857..74f06c9255 100644 --- a/modules/Forum/pages/panel/forums.php +++ b/modules/Forum/pages/panel/forums.php @@ -537,13 +537,13 @@ // Update the forum $to_update = [ - 'forum_title' => Output::getClean(Input::get('title')), - 'forum_description' => Output::getClean(Input::get('description')), + 'forum_title' => Input::get('title'), + 'forum_description' => Input::get('description'), 'news' => Input::get('display'), 'parent' => $parent, 'redirect_forum' => $redirect, 'icon' => Input::get('icon'), - 'forum_type' => Output::getClean(Input::get('forum_type')), + 'forum_type' => Input::get('forum_type'), 'topic_placeholder' => Input::get('topic_placeholder'), 'hooks' => $hooks, 'default_labels' => $default_labels diff --git a/modules/Members/language/cs_CZ.json b/modules/Members/language/cs_CZ.json new file mode 100644 index 0000000000..af0fa3c43c --- /dev/null +++ b/modules/Members/language/cs_CZ.json @@ -0,0 +1,19 @@ +{ + "members/members": "Členové", + "members/new_members": "Noví členové", + "members/no_members": "Nenalezeni žádní členové.", + "members/member_lists": "Seznam členů", + "members/member_list_hide_banned_users": "Skrýt zabanované uživatele?", + "members/member_list_toggled_enabled": "Seznam {{list}} úspěšně povolen.", + "members/member_list_toggled_disabled": "Seznam {{list}} úspěšně zakázán.", + "members/view_all": "Zobrazit vše", + "members/find_member": "Najít člena", + "members/name": "Jméno...", + "members/view_group": "Zobrazit skupinu", + "members/group": "Skupina...", + "members/viewable_groups": "Zobrazitelné skupiny", + "members/no_results_header": "Nenalezeny žádné výsledky", + "members/no_results_text": "Na váš dotaz nebyly nalezeny žádné výsledky", + "members/no_overview_lists_enabled": "Nejsou povoleny žádné seznamy přehledu.", + "members/settings_updated_successfully": "Nastavení úspěšně aktualizována." +} diff --git a/modules/Members/language/da_DK.json b/modules/Members/language/da_DK.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/modules/Members/language/da_DK.json @@ -0,0 +1 @@ +{} diff --git a/modules/Members/language/de_DE.json b/modules/Members/language/de_DE.json new file mode 100644 index 0000000000..2822fb23e7 --- /dev/null +++ b/modules/Members/language/de_DE.json @@ -0,0 +1,19 @@ +{ + "members/members": "Mitglieder", + "members/member_lists": "Mitgliederlisten", + "members/find_member": "Mitglied suchen", + "members/no_results_text": "Deine Suche ergab keine Ergebnisse", + "members/new_members": "Neue Mitglieder", + "members/no_members": "Keine Mitglieder gefunden.", + "members/member_list_hide_banned_users": "Gesperrte Benutzer ausblenden?", + "members/member_list_toggled_enabled": "Erfolgreich die Liste {{list}} aktiviert.", + "members/member_list_toggled_disabled": "Die Liste {{list}} wurde erfolgreich deaktiviert.", + "members/view_all": "Alle anzeigen", + "members/name": "Name...", + "members/view_group": "Gruppe anzeigen", + "members/group": "Gruppe...", + "members/viewable_groups": "Sichtbare Gruppen", + "members/no_results_header": "Keine Ergebnisse gefunden", + "members/no_overview_lists_enabled": "Es sind keine Übersichtslisten aktiviert.", + "members/settings_updated_successfully": "Einstellungen erfolgreich aktualisiert." +} diff --git a/modules/Members/language/el_GR.json b/modules/Members/language/el_GR.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/modules/Members/language/el_GR.json @@ -0,0 +1 @@ +{} diff --git a/modules/Members/language/en_US.json b/modules/Members/language/en_US.json new file mode 100644 index 0000000000..056346e2da --- /dev/null +++ b/modules/Members/language/en_US.json @@ -0,0 +1,19 @@ +{ + "members/members": "Menbers", + "members/new_members": "New members", + "members/no_members": "No members found.", + "members/member_lists": "Member Lists", + "members/member_list_hide_banned_users": "Hide banned users?", + "members/member_list_toggled_enabled": "Successfully enabled {{list}} list.", + "members/member_list_toggled_disabled": "Successfully disabled {{list}} list.", + "members/view_all": "View all", + "members/find_member": "Find member", + "members/name": "Name...", + "members/view_group": "View group", + "members/group": "Group...", + "members/no_results_header": "No results found", + "members/no_results_text": "Your search returned no results", + "members/viewable_groups": "Viewable groups", + "members/no_overview_lists_enabled": "No overview lists are enabled.", + "members/settings_updated_successfully": "Settings updated successfully." +} diff --git a/modules/Members/language/es_419.json b/modules/Members/language/es_419.json new file mode 100644 index 0000000000..c4eb19d9f1 --- /dev/null +++ b/modules/Members/language/es_419.json @@ -0,0 +1,19 @@ +{ + "members/members": "Miembros", + "members/new_members": "Nuevos miembros", + "members/no_members": "No se encontraron miembros.", + "members/member_lists": "Lista de miembros", + "members/member_list_hide_banned_users": "Ocultar miembros baneados?", + "members/member_list_toggled_enabled": "La lista {{list}} se ha activado correctamente.", + "members/member_list_toggled_disabled": "La lista {{list}} se ha desactivado correctamente.", + "members/view_all": "Ver todo", + "members/find_member": "Buscar miembro", + "members/name": "Nombre...", + "members/view_group": "Ver grupo", + "members/group": "Grupo...", + "members/viewable_groups": "Grupos disponibles", + "members/no_results_header": "No se han encontrado resultados", + "members/no_results_text": "Tu búsqueda no devolvió resultados", + "members/no_overview_lists_enabled": "No se han habilitado listas de resumen.", + "members/settings_updated_successfully": "La configuración se actualizó exitosamente." +} diff --git a/modules/Members/language/es_ES.json b/modules/Members/language/es_ES.json new file mode 100644 index 0000000000..c90db0bcfb --- /dev/null +++ b/modules/Members/language/es_ES.json @@ -0,0 +1,19 @@ +{ + "members/members": "Miembros", + "members/member_list_hide_banned_users": "¿Ocultar usuarios baneados?", + "members/no_results_header": "No se encontraron resultados", + "members/settings_updated_successfully": "La configuración se actualizó exitosamente.", + "members/new_members": "Nuevos miembros", + "members/no_members": "No se encontraron miembros.", + "members/member_lists": "Listas de miembros", + "members/member_list_toggled_enabled": "Habilitada con éxito la lista {{list}}.", + "members/member_list_toggled_disabled": "Desactivada con éxito la lista {{list}}.", + "members/view_all": "Ver todo", + "members/find_member": "Buscar miembro", + "members/name": "Nombre...", + "members/view_group": "Ver grupo", + "members/group": "Grupo...", + "members/viewable_groups": "Grupos visibles", + "members/no_results_text": "Tu búsqueda no arrojó resultados", + "members/no_overview_lists_enabled": "No se han habilitado listas de resumen." +} diff --git a/modules/Members/language/fi_FI.json b/modules/Members/language/fi_FI.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/modules/Members/language/fi_FI.json @@ -0,0 +1 @@ +{} diff --git a/modules/Members/language/fr_FR.json b/modules/Members/language/fr_FR.json new file mode 100644 index 0000000000..cabb51c4b2 --- /dev/null +++ b/modules/Members/language/fr_FR.json @@ -0,0 +1,19 @@ +{ + "members/members": "Membres", + "members/new_members": "Nouveaux membres", + "members/no_members": "Aucun membre trouvé.", + "members/member_list_hide_banned_users": "Masquer les utilisateurs bannis ?", + "members/member_list_toggled_enabled": "Liste {{list}} activée avec succès.", + "members/member_list_toggled_disabled": "Liste {{list}} désactivée avec succès.", + "members/view_all": "Tout voir", + "members/find_member": "Trouver un membre", + "members/name": "Nom...", + "members/group": "Groupe...", + "members/viewable_groups": "Groupes visibles", + "members/no_results_header": "Aucun résultat trouvé", + "members/no_results_text": "Votre recherche n'a donné aucun résultat", + "members/settings_updated_successfully": "Paramètres mis à jour avec succès.", + "members/member_lists": "Listes des membres", + "members/view_group": "Afficher les groupes", + "members/no_overview_lists_enabled": "Aucune liste d'aperçu n'est activée." +} diff --git a/modules/Members/language/hr_HR.json b/modules/Members/language/hr_HR.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/modules/Members/language/hr_HR.json @@ -0,0 +1 @@ +{} diff --git a/modules/Members/language/hu_HU.json b/modules/Members/language/hu_HU.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/modules/Members/language/hu_HU.json @@ -0,0 +1 @@ +{} diff --git a/modules/Members/language/id_ID.json b/modules/Members/language/id_ID.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/modules/Members/language/id_ID.json @@ -0,0 +1 @@ +{} diff --git a/modules/Members/language/it_IT.json b/modules/Members/language/it_IT.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/modules/Members/language/it_IT.json @@ -0,0 +1 @@ +{} diff --git a/modules/Members/language/ja_JP.json b/modules/Members/language/ja_JP.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/modules/Members/language/ja_JP.json @@ -0,0 +1 @@ +{} diff --git a/modules/Members/language/ko_KR.json b/modules/Members/language/ko_KR.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/modules/Members/language/ko_KR.json @@ -0,0 +1 @@ +{} diff --git a/modules/Members/language/lt_LT.json b/modules/Members/language/lt_LT.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/modules/Members/language/lt_LT.json @@ -0,0 +1 @@ +{} diff --git a/modules/Members/language/lv_LV.json b/modules/Members/language/lv_LV.json new file mode 100644 index 0000000000..69a88e3b65 --- /dev/null +++ b/modules/Members/language/lv_LV.json @@ -0,0 +1 @@ +{} diff --git a/modules/Members/language/nl_NL.json b/modules/Members/language/nl_NL.json new file mode 100644 index 0000000000..2fe6d6c2bb --- /dev/null +++ b/modules/Members/language/nl_NL.json @@ -0,0 +1,19 @@ +{ + "members/members": "Leden", + "members/no_members": "Geen leden gevonden.", + "members/member_list_toggled_disabled": "{{list}} lijst met succes uitgeschakeld.", + "members/new_members": "Nieuwe leden", + "members/member_lists": "Ledenlijsten", + "members/member_list_hide_banned_users": "Verbannen gebruikers verbergen?", + "members/member_list_toggled_enabled": "{{list}} lijst succesvol ingeschakeld.", + "members/view_all": "Alles weergeven", + "members/find_member": "Vind lid", + "members/name": "Naam...", + "members/view_group": "Toon groep", + "members/group": "Groep...", + "members/viewable_groups": "Zichtbare groepen", + "members/no_results_header": "Geen resultaten gevonden", + "members/no_results_text": "Je zoekopdracht heeft geen resultaten opgeleverd", + "members/no_overview_lists_enabled": "Er zijn geen overzichtslijsten ingeschakeld.", + "members/settings_updated_successfully": "Instellingen bijgewerkt." +} diff --git a/modules/Members/language/no_NO.json b/modules/Members/language/no_NO.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/modules/Members/language/no_NO.json @@ -0,0 +1 @@ +{} diff --git a/modules/Members/language/pl_PL.json b/modules/Members/language/pl_PL.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/modules/Members/language/pl_PL.json @@ -0,0 +1 @@ +{} diff --git a/modules/Members/language/pt_BR.json b/modules/Members/language/pt_BR.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/modules/Members/language/pt_BR.json @@ -0,0 +1 @@ +{} diff --git a/modules/Members/language/ro_RO.json b/modules/Members/language/ro_RO.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/modules/Members/language/ro_RO.json @@ -0,0 +1 @@ +{} diff --git a/modules/Members/language/ru_RU.json b/modules/Members/language/ru_RU.json new file mode 100644 index 0000000000..1ba89566c8 --- /dev/null +++ b/modules/Members/language/ru_RU.json @@ -0,0 +1,19 @@ +{ + "members/members": "Пользователи", + "members/new_members": "Новые пользователи", + "members/no_members": "Пользователей нет.", + "members/member_lists": "Списки пользователей", + "members/member_list_hide_banned_users": "Спрятать забанненых?", + "members/member_list_toggled_enabled": "Включен {{list}} список.", + "members/member_list_toggled_disabled": "Выключен {{list}} список.", + "members/view_all": "Просмотр всех", + "members/find_member": "Найти пользователя", + "members/name": "Имя...", + "members/view_group": "Просмотр группы", + "members/group": "Группа...", + "members/viewable_groups": "Просматриваемые группы", + "members/no_results_header": "Нет результатов", + "members/no_results_text": "Не удалось ничего найти", + "members/no_overview_lists_enabled": "Обзорные списки не включены.", + "members/settings_updated_successfully": "Настройки успешно обновлены." +} diff --git a/modules/Members/language/sk_SK.json b/modules/Members/language/sk_SK.json new file mode 100644 index 0000000000..1d138bc795 --- /dev/null +++ b/modules/Members/language/sk_SK.json @@ -0,0 +1,19 @@ +{ + "members/members": "Užívatelia", + "members/new_members": "Noví užívatelia", + "members/member_list_toggled_enabled": "List {{list}} bol úspešne povolený.", + "members/no_results_header": "Neboli nájdené žiadne výsledky", + "members/no_members": "Žiadny užívatelia neboli nájdení.", + "members/member_lists": "List užívateľov", + "members/member_list_hide_banned_users": "Skryť zabanovaných užívateľov?", + "members/member_list_toggled_disabled": "List {{list}} bol úspešne zakázaný.", + "members/view_all": "Zobraziť všetko", + "members/find_member": "Hľadať užívateľa", + "members/name": "Meno...", + "members/view_group": "Zobraziť skupinu", + "members/group": "Skupina...", + "members/viewable_groups": "Viditeľné skupiny", + "members/no_results_text": "Vaše hľadanie nevrátilo žiadne výsledky", + "members/no_overview_lists_enabled": "Nie sú povolené žiadne prehľadové zoznamy.", + "members/settings_updated_successfully": "Nastavenia boli úspešne aktualizované." +} diff --git a/modules/Members/language/sq_AL.json b/modules/Members/language/sq_AL.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/modules/Members/language/sq_AL.json @@ -0,0 +1 @@ +{} diff --git a/modules/Members/language/sv_SE.json b/modules/Members/language/sv_SE.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/modules/Members/language/sv_SE.json @@ -0,0 +1 @@ +{} diff --git a/modules/Members/language/th_TH.json b/modules/Members/language/th_TH.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/modules/Members/language/th_TH.json @@ -0,0 +1 @@ +{} diff --git a/modules/Members/language/tr_TR.json b/modules/Members/language/tr_TR.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/modules/Members/language/tr_TR.json @@ -0,0 +1 @@ +{} diff --git a/modules/Members/language/uk_UA.json b/modules/Members/language/uk_UA.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/modules/Members/language/uk_UA.json @@ -0,0 +1 @@ +{} diff --git a/modules/Members/language/vi_VN.json b/modules/Members/language/vi_VN.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/modules/Members/language/vi_VN.json @@ -0,0 +1 @@ +{} diff --git a/modules/Members/language/zh_CN.json b/modules/Members/language/zh_CN.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/modules/Members/language/zh_CN.json @@ -0,0 +1 @@ +{} diff --git a/modules/Members/language/zh_TW.json b/modules/Members/language/zh_TW.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/modules/Members/language/zh_TW.json @@ -0,0 +1 @@ +{} diff --git a/modules/Members/module.php b/modules/Members/module.php index a8cd59a1df..6a2cd24b8b 100644 --- a/modules/Members/module.php +++ b/modules/Members/module.php @@ -2,7 +2,7 @@ /* * Made by Aberdeener * https://github.com/NamelessMC/Nameless/ - * NamelessMC version 2.1.0 + * NamelessMC version 2.1.1 * * License: MIT * @@ -20,8 +20,8 @@ public function __construct(Language $language, Language $members_language, Page $name = 'Members'; $author = 'Aberdeener'; - $module_version = '2.1.0'; - $nameless_version = '2.1.0'; + $module_version = '2.1.1'; + $nameless_version = '2.1.1'; parent::__construct($this, $name, $author, $module_version, $nameless_version); @@ -56,44 +56,42 @@ public function onPageLoad(User $user, Pages $pages, Cache $cache, Smarty $smart 'admincp.members' => $this->_members_language->get('members', 'member_lists') ]); - if (defined('FRONT_END')) { - $cache->setCache('navbar_order'); - if (!$cache->isCached('members_order')) { - $members_order = 5; - $cache->store('members_order', 5); - } else { - $members_order = $cache->retrieve('members_order'); - } + $cache->setCache('navbar_order'); + if (!$cache->isCached('members_order')) { + $members_order = 5; + $cache->store('members_order', 5); + } else { + $members_order = $cache->retrieve('members_order'); + } - $cache->setCache('navbar_icons'); - if (!$cache->isCached('members_icon')) { - $members_icon = ''; - } else { - $members_icon = $cache->retrieve('members_icon'); - } + $cache->setCache('navbar_icons'); + if (!$cache->isCached('members_icon')) { + $members_icon = ''; + } else { + $members_icon = $cache->retrieve('members_icon'); + } - $cache->setCache('nav_location'); - if (!$cache->isCached('members_location')) { - $link_location = 1; - $cache->store('members_location', 1); - } else { - $link_location = $cache->retrieve('members_location'); - } + $cache->setCache('nav_location'); + if (!$cache->isCached('members_location')) { + $link_location = 1; + $cache->store('members_location', 1); + } else { + $link_location = $cache->retrieve('members_location'); + } - switch ($link_location) { - case 1: - // Navbar - $navs[0]->add('members', $this->_members_language->get('members', 'members'), URL::build('/members'), 'top', null, $members_order, $members_icon); - break; - case 2: - // "More" dropdown - $navs[0]->addItemToDropdown('more_dropdown', 'members', $this->_members_language->get('members', 'members'), URL::build('/members'), 'top', null, $members_icon, $members_order); - break; - case 3: - // Footer - $navs[0]->add('members', $this->_members_language->get('members', 'members'), URL::build('/members'), 'footer', null, $members_order, $members_icon); - break; - } + switch ($link_location) { + case 1: + // Navbar + $navs[0]->add('members', $this->_members_language->get('members', 'members'), URL::build('/members'), 'top', null, $members_order, $members_icon); + break; + case 2: + // "More" dropdown + $navs[0]->addItemToDropdown('more_dropdown', 'members', $this->_members_language->get('members', 'members'), URL::build('/members'), 'top', null, $members_icon, $members_order); + break; + case 3: + // Footer + $navs[0]->add('members', $this->_members_language->get('members', 'members'), URL::build('/members'), 'footer', null, $members_order, $members_icon); + break; } if (defined('BACK_END')) { diff --git a/package.json b/package.json index 08c8cfe93c..d155a04f36 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nameless", - "version": "2.1.0", + "version": "2.1.1", "repository": "https://github.com/NamelessMC/Nameless", "license": "MIT", "private": true,