From 56d531aa5ddb778d08a2796fa9fb865e5b3040ce Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sun, 9 Mar 2025 23:49:10 +0700 Subject: [PATCH 001/216] feat(avatar upload): Added `accept="image/*"` attribute (#1841) --- styles/templates/default/group_edit.tpl | 2 +- styles/templates/default/usercp_register.tpl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/styles/templates/default/group_edit.tpl b/styles/templates/default/group_edit.tpl index 3f984c15b..51bc806c7 100644 --- a/styles/templates/default/group_edit.tpl +++ b/styles/templates/default/group_edit.tpl @@ -106,7 +106,7 @@
{S_HIDDEN_FIELDS} - +
diff --git a/styles/templates/default/usercp_register.tpl b/styles/templates/default/usercp_register.tpl index 8e0896c8a..596658d62 100644 --- a/styles/templates/default/usercp_register.tpl +++ b/styles/templates/default/usercp_register.tpl @@ -339,7 +339,7 @@
{L_UPLOAD_AVATAR_FILE}: - + From ead48923b9f46163468695be788e41e103227525 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Mon, 10 Mar 2025 01:10:01 +0000 Subject: [PATCH 002/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a7af376c..c9d338e46 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,13 @@ ### 🚀 Features +- *(avatar upload)* Added `accept="image/*"` attribute ([#1841](https://github.com/torrentpier/torrentpier/pull/1841)) - ([56d531a](https://github.com/torrentpier/torrentpier/commit/56d531aa5ddb778d08a2796fa9fb865e5b3040ce)) + + +## [v2.4.5-rc.4](https://github.com/torrentpier/torrentpier/compare/v2.4.5-rc.3..v2.4.5-rc.4) (2025-03-09) + +### 🚀 Features + - *(captcha)* Added `Text Captcha` provider ([#1839](https://github.com/torrentpier/torrentpier/pull/1839)) - ([74ea157](https://github.com/torrentpier/torrentpier/commit/74ea1573b298be5a935caaca0b3cc57cb1e9264a)) - *(show post bbcode)* Added `'only_for_first_post'` param ([#1830](https://github.com/torrentpier/torrentpier/pull/1830)) - ([4dcd1fb](https://github.com/torrentpier/torrentpier/commit/4dcd1fb16e4e84acd1231ad821a2f05658b849ad)) - *(sitemap)* Update `lastmod` when a new reply in topic ([#1737](https://github.com/torrentpier/torrentpier/pull/1737)) - ([bc95e14](https://github.com/torrentpier/torrentpier/commit/bc95e14be328303bb37e31299661b03045e37d07)) From be65f7c55cbf81d889d5083c9344ccef400e8e19 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Mar 2025 15:34:08 +0700 Subject: [PATCH 003/216] Composer(deps): Bump belomaxorka/captcha from 1.2.2 to 1.2.3 (#1842) Bumps [belomaxorka/captcha](https://github.com/belomaxorka/Captcha) from 1.2.2 to 1.2.3. - [Release notes](https://github.com/belomaxorka/Captcha/releases) - [Commits](https://github.com/belomaxorka/Captcha/compare/v1.2.2...v1.2.3) --- updated-dependencies: - dependency-name: belomaxorka/captcha dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.lock b/composer.lock index 31008a5f4..e85c07cb2 100644 --- a/composer.lock +++ b/composer.lock @@ -402,16 +402,16 @@ }, { "name": "belomaxorka/captcha", - "version": "v1.2.2", + "version": "v1.2.3", "source": { "type": "git", "url": "https://github.com/belomaxorka/Captcha.git", - "reference": "1cb13fe53a6ca42423016e683d6255a68108d79d" + "reference": "85f3fb5a5ef5bcaaa9ad78171c54a525413d348b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/belomaxorka/Captcha/zipball/1cb13fe53a6ca42423016e683d6255a68108d79d", - "reference": "1cb13fe53a6ca42423016e683d6255a68108d79d", + "url": "https://api.github.com/repos/belomaxorka/Captcha/zipball/85f3fb5a5ef5bcaaa9ad78171c54a525413d348b", + "reference": "85f3fb5a5ef5bcaaa9ad78171c54a525413d348b", "shasum": "" }, "require": { @@ -466,9 +466,9 @@ "spam-protection" ], "support": { - "source": "https://github.com/belomaxorka/Captcha/tree/v1.2.2" + "source": "https://github.com/belomaxorka/Captcha/tree/v1.2.3" }, - "time": "2025-03-09T06:12:50+00:00" + "time": "2025-03-09T11:06:05+00:00" }, { "name": "bugsnag/bugsnag", @@ -3855,6 +3855,6 @@ "platform": { "php": "^8.1 | ^8.2 | ^8.3 | ^8.4" }, - "platform-dev": {}, - "plugin-api-version": "2.6.0" + "platform-dev": [], + "plugin-api-version": "2.3.0" } From edad1785ce762675c612f05d4345205c4aa1fc8b Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Tue, 11 Mar 2025 01:22:54 +0000 Subject: [PATCH 004/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c9d338e46..5017a3422 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,10 @@ - *(avatar upload)* Added `accept="image/*"` attribute ([#1841](https://github.com/torrentpier/torrentpier/pull/1841)) - ([56d531a](https://github.com/torrentpier/torrentpier/commit/56d531aa5ddb778d08a2796fa9fb865e5b3040ce)) +### 📦 Dependencies + +- *(deps)* Bump belomaxorka/captcha from 1.2.2 to 1.2.3 ([#1842](https://github.com/torrentpier/torrentpier/pull/1842)) - ([be65f7c](https://github.com/torrentpier/torrentpier/commit/be65f7c55cbf81d889d5083c9344ccef400e8e19)) + ## [v2.4.5-rc.4](https://github.com/torrentpier/torrentpier/compare/v2.4.5-rc.3..v2.4.5-rc.4) (2025-03-09) From 4641b0a0d0e055d684ec36d41bfaf22b4d4b2ee1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Mar 2025 06:35:33 +0000 Subject: [PATCH 005/216] Composer(deps): Bump belomaxorka/captcha from 1.2.3 to 1.2.4 Bumps [belomaxorka/captcha](https://github.com/belomaxorka/Captcha) from 1.2.3 to 1.2.4. - [Release notes](https://github.com/belomaxorka/Captcha/releases) - [Commits](https://github.com/belomaxorka/Captcha/compare/v1.2.3...v1.2.4) --- updated-dependencies: - dependency-name: belomaxorka/captcha dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- composer.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/composer.lock b/composer.lock index e85c07cb2..eb0c5ab29 100644 --- a/composer.lock +++ b/composer.lock @@ -402,16 +402,16 @@ }, { "name": "belomaxorka/captcha", - "version": "v1.2.3", + "version": "v1.2.4", "source": { "type": "git", "url": "https://github.com/belomaxorka/Captcha.git", - "reference": "85f3fb5a5ef5bcaaa9ad78171c54a525413d348b" + "reference": "db51723a9539b57ac3faff0211c117b4c55dbe23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/belomaxorka/Captcha/zipball/85f3fb5a5ef5bcaaa9ad78171c54a525413d348b", - "reference": "85f3fb5a5ef5bcaaa9ad78171c54a525413d348b", + "url": "https://api.github.com/repos/belomaxorka/Captcha/zipball/db51723a9539b57ac3faff0211c117b4c55dbe23", + "reference": "db51723a9539b57ac3faff0211c117b4c55dbe23", "shasum": "" }, "require": { @@ -466,9 +466,9 @@ "spam-protection" ], "support": { - "source": "https://github.com/belomaxorka/Captcha/tree/v1.2.3" + "source": "https://github.com/belomaxorka/Captcha/tree/v1.2.4" }, - "time": "2025-03-09T11:06:05+00:00" + "time": "2025-03-10T13:15:53+00:00" }, { "name": "bugsnag/bugsnag", From a62a61b00843974470d615ddc3742074d5bf9602 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Tue, 11 Mar 2025 06:38:00 +0000 Subject: [PATCH 006/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5017a3422..7170fc51f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ ### 📦 Dependencies +- *(deps)* Bump belomaxorka/captcha from 1.2.3 to 1.2.4 - ([4641b0a](https://github.com/torrentpier/torrentpier/commit/4641b0a0d0e055d684ec36d41bfaf22b4d4b2ee1)) - *(deps)* Bump belomaxorka/captcha from 1.2.2 to 1.2.3 ([#1842](https://github.com/torrentpier/torrentpier/pull/1842)) - ([be65f7c](https://github.com/torrentpier/torrentpier/commit/be65f7c55cbf81d889d5083c9344ccef400e8e19)) From 5ad4a7019d996d468650ab608ab53d6cf3ebb4f5 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Tue, 11 Mar 2025 14:03:52 +0300 Subject: [PATCH 007/216] feat(emailer): Added ability to configure `sendmail` --- library/config.php | 11 ++++++----- src/Emailer.php | 6 +++--- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/library/config.php b/library/config.php index b586829e4..d65825adb 100644 --- a/library/config.php +++ b/library/config.php @@ -435,11 +435,11 @@ $bb_cfg['invites_system'] = [ ]; $bb_cfg['password_symbols'] = [ // What symbols should be required in the password - 'nums' => true, // Numeric - 'spec_symbols' => false, // Special symbols - 'letters' => [ // Letters - 'uppercase' => true, // Uppercase letters - 'lowercase' => true // Lowercase letters + 'nums' => true, + 'spec_symbols' => false, + 'letters' => [ + 'uppercase' => false, + 'lowercase' => true ] ]; $bb_cfg['password_hash_options'] = [ @@ -451,6 +451,7 @@ $bb_cfg['password_hash_options'] = [ // Email $bb_cfg['emailer'] = [ 'enabled' => true, + 'sendmail_command' => '/usr/sbin/sendmail -bs', 'smtp' => [ 'enabled' => false, // send email via external SMTP server 'host' => 'localhost', // SMTP server host diff --git a/src/Emailer.php b/src/Emailer.php index f1162eb36..7330f9405 100644 --- a/src/Emailer.php +++ b/src/Emailer.php @@ -100,12 +100,12 @@ class Emailer $tpl_file = LANG_ROOT_DIR . '/' . $bb_cfg['default_lang'] . '/email/' . $template_file . '.html'; if (!is_file($tpl_file)) { - bb_die('Could not find email template file: ' . $template_file); + throw new Exception('Could not find email template file: ' . $template_file); } } if (!$fd = fopen($tpl_file, 'rb')) { - bb_die('Failed opening email template file: ' . $tpl_file); + throw new Exception('Failed opening email template file: ' . $tpl_file); } $this->tpl_msg[$template_lang . $template_file] = fread($fd, filesize($tpl_file)); @@ -159,7 +159,7 @@ class Emailer $transport = new EsmtpTransport('localhost', 25); } } else { - $transport = new SendmailTransport('/usr/sbin/sendmail -bs'); + $transport = new SendmailTransport($bb_cfg['emailer']['sendmail_command']); } $mailer = new Mailer($transport); From 3af5202f7b2a4ea5d14bbc4808b7a380de2e0dc0 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Tue, 11 Mar 2025 14:08:08 +0300 Subject: [PATCH 008/216] misc(text captcha): Disabled scatter effect by default --- src/Captcha/TextCaptcha.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Captcha/TextCaptcha.php b/src/Captcha/TextCaptcha.php index e7da17522..20ca6deb5 100644 --- a/src/Captcha/TextCaptcha.php +++ b/src/Captcha/TextCaptcha.php @@ -37,6 +37,7 @@ class TextCaptcha implements CaptchaInterface } $this->captcha = new CaptchaBuilder; + $this->captcha->setScatterEffect(false); } /** From bd0ef063fac328ed16537aacbc12e287a8d8206b Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Tue, 11 Mar 2025 21:30:40 +0700 Subject: [PATCH 009/216] refactor: Moved `Select` class into `Legacy\Common` (#1846) --- admin/admin_board.php | 4 ++-- admin/admin_user_search.php | 4 ++-- library/includes/ucp/register.php | 6 +++--- src/Legacy/{ => Common}/Select.php | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) rename src/Legacy/{ => Common}/Select.php (97%) diff --git a/admin/admin_board.php b/admin/admin_board.php index b836ff29f..191666675 100644 --- a/admin/admin_board.php +++ b/admin/admin_board.php @@ -136,8 +136,8 @@ switch ($mode) { 'POSTS_PER_PAGE' => $new['posts_per_page'], 'HOT_TOPIC' => $new['hot_threshold'], 'DEFAULT_DATEFORMAT' => $new['default_dateformat'], - 'LANG_SELECT' => \TorrentPier\Legacy\Select::language($new['default_lang'], 'default_lang'), - 'TIMEZONE_SELECT' => \TorrentPier\Legacy\Select::timezone($new['board_timezone'], 'board_timezone'), + 'LANG_SELECT' => \TorrentPier\Legacy\Common\Select::language($new['default_lang'], 'default_lang'), + 'TIMEZONE_SELECT' => \TorrentPier\Legacy\Common\Select::timezone($new['board_timezone'], 'board_timezone'), 'MAX_LOGIN_ATTEMPTS' => $new['max_login_attempts'], 'LOGIN_RESET_TIME' => $new['login_reset_time'], 'PRUNE_ENABLE' => (bool)$new['prune_enable'], diff --git a/admin/admin_user_search.php b/admin/admin_user_search.php index 4a29d0e06..f89f3f669 100644 --- a/admin/admin_user_search.php +++ b/admin/admin_user_search.php @@ -52,8 +52,8 @@ if (!isset($_REQUEST['dosearch'])) { } } - $language_list = \TorrentPier\Legacy\Select::language('', 'language_type'); - $timezone_list = \TorrentPier\Legacy\Select::timezone('', 'timezone_type'); + $language_list = \TorrentPier\Legacy\Common\Select::language('', 'language_type'); + $timezone_list = \TorrentPier\Legacy\Common\Select::timezone('', 'timezone_type'); $sql = 'SELECT f.forum_id, f.forum_name, f.forum_parent, c.cat_id, c.cat_title FROM ( ' . BB_FORUMS . ' AS f INNER JOIN ' . BB_CATEGORIES . ' AS c ON c.cat_id = f.cat_id ) diff --git a/library/includes/ucp/register.php b/library/includes/ucp/register.php index 111e67ce4..feaab65df 100644 --- a/library/includes/ucp/register.php +++ b/library/includes/ucp/register.php @@ -565,7 +565,7 @@ foreach ($profile_fields as $field => $can_edit) { } } } - $tp_data['TEMPLATES_SELECT'] = \TorrentPier\Legacy\Select::template($pr_data['tpl_name'], 'tpl_name'); + $tp_data['TEMPLATES_SELECT'] = \TorrentPier\Legacy\Common\Select::template($pr_data['tpl_name'], 'tpl_name'); break; /** @@ -722,8 +722,8 @@ $template->assign_vars([ 'INVITE_CODE' => !empty($_GET['invite']) ? htmlCHR($_GET['invite']) : '', 'CAPTCHA_HTML' => ($need_captcha) ? bb_captcha('get') : '', - 'LANGUAGE_SELECT' => \TorrentPier\Legacy\Select::language($pr_data['user_lang'], 'user_lang'), - 'TIMEZONE_SELECT' => \TorrentPier\Legacy\Select::timezone($pr_data['user_timezone'], 'user_timezone'), + 'LANGUAGE_SELECT' => \TorrentPier\Legacy\Common\Select::language($pr_data['user_lang'], 'user_lang'), + 'TIMEZONE_SELECT' => \TorrentPier\Legacy\Common\Select::timezone($pr_data['user_timezone'], 'user_timezone'), 'AVATAR_EXPLAIN' => sprintf($lang['AVATAR_EXPLAIN'], $bb_cfg['avatars']['max_width'], $bb_cfg['avatars']['max_height'], humn_size($bb_cfg['avatars']['max_size'])), 'AVATAR_DISALLOWED' => bf($pr_data['user_opt'], 'user_opt', 'dis_avatar'), diff --git a/src/Legacy/Select.php b/src/Legacy/Common/Select.php similarity index 97% rename from src/Legacy/Select.php rename to src/Legacy/Common/Select.php index 6dc3de2e0..424c99869 100644 --- a/src/Legacy/Select.php +++ b/src/Legacy/Common/Select.php @@ -7,11 +7,11 @@ * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ -namespace TorrentPier\Legacy; +namespace TorrentPier\Legacy\Common; /** * Class Select - * @package TorrentPier\Legacy + * @package TorrentPier\Legacy\Common */ class Select { From af2403f1918845e8af3d9fa7708623eef6aa427e Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Tue, 11 Mar 2025 22:14:28 +0700 Subject: [PATCH 010/216] refactor: Password generation (#1847) * refactor: Password generation * Update main.js * Update usercp_register.tpl * Update main.js * Updated * Update main.js --- styles/js/main.js | 36 ++++++++++++++------ styles/templates/default/usercp_register.tpl | 4 +-- 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/styles/js/main.js b/styles/js/main.js index c195ceed4..6c6f5489c 100644 --- a/styles/js/main.js +++ b/styles/js/main.js @@ -460,19 +460,33 @@ $(document).ready(function () { /** * Autocomplete password **/ -var array_for_rand_pass = ["a", "A", "b", "B", "c", "C", "d", "D", "e", "E", "f", "F", "g", "G", "h", "H", "i", "I", "j", "J", "k", "K", "l", "L", "m", "M", "n", "N", "o", "O", "p", "P", "q", "Q", "r", "R", "s", "S", "t", "T", "u", "U", "v", "V", "w", "W", "x", "X", "y", "Y", "z", "Z", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; -var array_rand = function (array) { - var array_length = array.length; - var result = Math.random() * array_length; - return Math.floor(result); -}; +function generatePassword(length) { + const lowercaseChars = "abcdefghijklmnopqrstuvwxyz"; + const uppercaseChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + const numberChars = "0123456789"; + const specialChars = "!@#$%^&*()_+~`|}{[]:;?><,./-="; -var autocomplete = function (noCenter) { - var string_result = ""; // Empty string - for (var i = 1; i <= 8; i++) { - string_result += array_for_rand_pass[array_rand(array_for_rand_pass)]; + let password = [ + getRandomChar(lowercaseChars), + getRandomChar(uppercaseChars), + getRandomChar(numberChars), + getRandomChar(specialChars) + ]; + + for (let i = 4; i < length; i++) { + password.push(getRandomChar(lowercaseChars)); } + password = password.sort(() => Math.random() - 0.5); + return password.slice(0, length).join(""); +} + +function getRandomChar(charSet) { + return charSet[Math.floor(Math.random() * charSet.length)]; +} + +var autocomplete = function (noCenter = false, passwordLength = 10) { + let string_result = generatePassword(passwordLength); var _popup_left = (Math.ceil(window.screen.availWidth / 2) - 150); var _popup_top = (Math.ceil(window.screen.availHeight / 2) - 50); @@ -491,7 +505,7 @@ var autocomplete = function (noCenter) { $(document).ready(function () { $("span#autocomplete").click(function () { - autocomplete(); + autocomplete(false, $(this).data('password-length')); }); var _X, _Y; diff --git a/styles/templates/default/usercp_register.tpl b/styles/templates/default/usercp_register.tpl index 596658d62..a19d17371 100644 --- a/styles/templates/default/usercp_register.tpl +++ b/styles/templates/default/usercp_register.tpl @@ -41,7 +41,7 @@
{L_YOUR_NEW_PASSWORD}
- +
@@ -85,7 +85,7 @@ {L_NEW_PASSWORD}: *
{L_PASSWORD_IF_CHANGED}
{L_PASSWORD}: * -   {PASSWORD_LONG} +   {PASSWORD_LONG} From 0b8d8a5210ee761dddaa57fc48bb48b0ede1ec3c Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Wed, 12 Mar 2025 00:04:04 +0700 Subject: [PATCH 011/216] feat(playback_m3u.php): Added checking auth to download (#1848) --- playback_m3u.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/playback_m3u.php b/playback_m3u.php index 74ddf32a2..3bf98fbd6 100644 --- a/playback_m3u.php +++ b/playback_m3u.php @@ -34,7 +34,7 @@ if (!$topic_id) { } // Getting torrent info from database -$sql = 'SELECT attach_id, info_hash, info_hash_v2 +$sql = 'SELECT attach_id, forum_id, info_hash, info_hash_v2 FROM ' . BB_BT_TORRENTS . ' WHERE topic_id = ' . $topic_id . ' LIMIT 1'; @@ -49,6 +49,15 @@ if (!$m3uFile = $torrServer->getM3UPath($row['attach_id'])) { bb_die($lang['ERROR_NO_ATTACHMENT']); } +$forum_id = $row['forum_id']; +set_die_append_msg($forum_id, $topic_id); + +// Check rights +$is_auth = auth(AUTH_ALL, $forum_id, $userdata); +if (!$is_auth['auth_download']) { + bb_die($lang['SORRY_AUTH_VIEW_ATTACH']); +} + // Parse M3U file $m3uParser = new M3uParser\M3uParser(); $m3uParser->addDefaultTags(); From 5f7cfb455fc763ad557aadf65fb8ef088299c571 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Wed, 12 Mar 2025 01:22:02 +0000 Subject: [PATCH 012/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7170fc51f..8c8c3f810 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,12 +7,23 @@ ### 🚀 Features - *(avatar upload)* Added `accept="image/*"` attribute ([#1841](https://github.com/torrentpier/torrentpier/pull/1841)) - ([56d531a](https://github.com/torrentpier/torrentpier/commit/56d531aa5ddb778d08a2796fa9fb865e5b3040ce)) +- *(emailer)* Added ability to configure `sendmail` - ([5ad4a70](https://github.com/torrentpier/torrentpier/commit/5ad4a7019d996d468650ab608ab53d6cf3ebb4f5)) +- *(playback_m3u.php)* Added checking auth to download ([#1848](https://github.com/torrentpier/torrentpier/pull/1848)) - ([0b8d8a5](https://github.com/torrentpier/torrentpier/commit/0b8d8a5210ee761dddaa57fc48bb48b0ede1ec3c)) ### 📦 Dependencies - *(deps)* Bump belomaxorka/captcha from 1.2.3 to 1.2.4 - ([4641b0a](https://github.com/torrentpier/torrentpier/commit/4641b0a0d0e055d684ec36d41bfaf22b4d4b2ee1)) - *(deps)* Bump belomaxorka/captcha from 1.2.2 to 1.2.3 ([#1842](https://github.com/torrentpier/torrentpier/pull/1842)) - ([be65f7c](https://github.com/torrentpier/torrentpier/commit/be65f7c55cbf81d889d5083c9344ccef400e8e19)) +### 🚜 Refactor + +- Password generation ([#1847](https://github.com/torrentpier/torrentpier/pull/1847)) - ([af2403f](https://github.com/torrentpier/torrentpier/commit/af2403f1918845e8af3d9fa7708623eef6aa427e)) +- Moved `Select` class into `Legacy\Common` ([#1846](https://github.com/torrentpier/torrentpier/pull/1846)) - ([bd0ef06](https://github.com/torrentpier/torrentpier/commit/bd0ef063fac328ed16537aacbc12e287a8d8206b)) + +### ⚙️ Miscellaneous + +- *(text captcha)* Disabled scatter effect by default - ([3af5202](https://github.com/torrentpier/torrentpier/commit/3af5202f7b2a4ea5d14bbc4808b7a380de2e0dc0)) + ## [v2.4.5-rc.4](https://github.com/torrentpier/torrentpier/compare/v2.4.5-rc.3..v2.4.5-rc.4) (2025-03-09) From 37ad07a40c1adf29f712f469d2850753d32a5eb9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Mar 2025 10:33:19 +0700 Subject: [PATCH 013/216] Composer(deps): Bump php-curl-class/php-curl-class from 11.0.4 to 11.0.5 (#1849) Bumps [php-curl-class/php-curl-class](https://github.com/php-curl-class/php-curl-class) from 11.0.4 to 11.0.5. - [Release notes](https://github.com/php-curl-class/php-curl-class/releases) - [Changelog](https://github.com/php-curl-class/php-curl-class/blob/master/CHANGELOG.md) - [Commits](https://github.com/php-curl-class/php-curl-class/compare/11.0.4...11.0.5) --- updated-dependencies: - dependency-name: php-curl-class/php-curl-class dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.lock | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/composer.lock b/composer.lock index eb0c5ab29..03fcf048a 100644 --- a/composer.lock +++ b/composer.lock @@ -2153,16 +2153,16 @@ }, { "name": "php-curl-class/php-curl-class", - "version": "11.0.4", + "version": "11.0.5", "source": { "type": "git", "url": "https://github.com/php-curl-class/php-curl-class.git", - "reference": "6162edf0ebe6c9c25733834c357b94a34c67ec3e" + "reference": "01a0e43fb66094c8764a84680b67179e08cce9c2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-curl-class/php-curl-class/zipball/6162edf0ebe6c9c25733834c357b94a34c67ec3e", - "reference": "6162edf0ebe6c9c25733834c357b94a34c67ec3e", + "url": "https://api.github.com/repos/php-curl-class/php-curl-class/zipball/01a0e43fb66094c8764a84680b67179e08cce9c2", + "reference": "01a0e43fb66094c8764a84680b67179e08cce9c2", "shasum": "" }, "require": { @@ -2177,8 +2177,7 @@ "phpcsstandards/phpcsutils": "@alpha", "phpstan/phpstan": "*", "phpunit/phpunit": "*", - "squizlabs/php_codesniffer": "*", - "vimeo/psalm": ">=5.26.1" + "squizlabs/php_codesniffer": "*" }, "suggest": { "ext-mbstring": "*" @@ -2228,9 +2227,9 @@ ], "support": { "issues": "https://github.com/php-curl-class/php-curl-class/issues", - "source": "https://github.com/php-curl-class/php-curl-class/tree/11.0.4" + "source": "https://github.com/php-curl-class/php-curl-class/tree/11.0.5" }, - "time": "2025-02-20T20:42:49+00:00" + "time": "2025-03-11T18:04:20+00:00" }, { "name": "php-http/discovery", From 299d9a1f6c4f244e435803212e763c252e5bd396 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Thu, 13 Mar 2025 23:51:03 +0700 Subject: [PATCH 014/216] misc(nightly builds): Added cleanup step (#1851) --- .github/workflows/ci.yml | 5 ++++- README.md | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index da044f6b3..9ab197a68 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,11 +28,14 @@ jobs: COMMIT_HASH=$(git rev-parse --short HEAD) echo "COMMIT_HASH=$COMMIT_HASH" >> $GITHUB_OUTPUT + - name: Cleanup + run: php _cleanup.php && rm _cleanup.php + - name: Create archive 🗞 id: create-zip run: | ZIP_NAME="torrentpier-${{ steps.get-commit-hash.outputs.COMMIT_HASH }}.zip" - zip -r "$ZIP_NAME" . -x ".git/*" ".github/*" + zip -r "$ZIP_NAME" . -x ".git/*" echo "ZIP_NAME=$ZIP_NAME" >> $GITHUB_OUTPUT - name: Upload Archive 📤 diff --git a/README.md b/README.md index 3aaee0715..4f694bc66 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Stars Packagist Build status Crowdin - TorrentPier nightly + TorrentPier nightly Downloads Version Last release From 36430c22ceec4692275a395189a5f800d99ea828 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Fri, 14 Mar 2025 01:22:05 +0000 Subject: [PATCH 015/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8c8c3f810..e51764d81 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ ### 📦 Dependencies +- *(deps)* Bump php-curl-class/php-curl-class from 11.0.4 to 11.0.5 ([#1849](https://github.com/torrentpier/torrentpier/pull/1849)) - ([37ad07a](https://github.com/torrentpier/torrentpier/commit/37ad07a40c1adf29f712f469d2850753d32a5eb9)) - *(deps)* Bump belomaxorka/captcha from 1.2.3 to 1.2.4 - ([4641b0a](https://github.com/torrentpier/torrentpier/commit/4641b0a0d0e055d684ec36d41bfaf22b4d4b2ee1)) - *(deps)* Bump belomaxorka/captcha from 1.2.2 to 1.2.3 ([#1842](https://github.com/torrentpier/torrentpier/pull/1842)) - ([be65f7c](https://github.com/torrentpier/torrentpier/commit/be65f7c55cbf81d889d5083c9344ccef400e8e19)) @@ -22,6 +23,7 @@ ### ⚙️ Miscellaneous +- *(nightly builds)* Added cleanup step ([#1851](https://github.com/torrentpier/torrentpier/pull/1851)) - ([299d9a1](https://github.com/torrentpier/torrentpier/commit/299d9a1f6c4f244e435803212e763c252e5bd396)) - *(text captcha)* Disabled scatter effect by default - ([3af5202](https://github.com/torrentpier/torrentpier/commit/3af5202f7b2a4ea5d14bbc4808b7a380de2e0dc0)) From 9e0a64108d62236ab07b3f8d10e8c78269b8e1d1 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sun, 16 Mar 2025 12:53:13 +0700 Subject: [PATCH 016/216] style: Correct `sidebar2` displaying (#1852) --- styles/templates/default/css/page_content.css | 3 +-- styles/templates/default/css/top.css | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/styles/templates/default/css/page_content.css b/styles/templates/default/css/page_content.css index b7d79a551..db9bec438 100644 --- a/styles/templates/default/css/page_content.css +++ b/styles/templates/default/css/page_content.css @@ -58,7 +58,7 @@ #sidebar2 h3 { padding: 0 0 4px 0; - margin: 0 0 2px 0; + margin: 8px 0 2px 0; color: #333333; text-indent: 0.5em; background: transparent url(../images/hr200_ltr_gradient.jpg) no-repeat left bottom; @@ -88,7 +88,6 @@ /* User ratio */ #user_ratio { - padding: 1px 6px 0 0; font-size: 11px; } diff --git a/styles/templates/default/css/top.css b/styles/templates/default/css/top.css index 6288fb032..bc8b49c70 100644 --- a/styles/templates/default/css/top.css +++ b/styles/templates/default/css/top.css @@ -58,6 +58,7 @@ body, th, td, font { } #sidebar2-wrap { + margin-top: -8px; } #main_content { From 4df48751c0d195af877809ae4c5b3ad1fe6c546d Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Mon, 17 Mar 2025 01:25:22 +0000 Subject: [PATCH 017/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e51764d81..b1c213825 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,10 @@ - Password generation ([#1847](https://github.com/torrentpier/torrentpier/pull/1847)) - ([af2403f](https://github.com/torrentpier/torrentpier/commit/af2403f1918845e8af3d9fa7708623eef6aa427e)) - Moved `Select` class into `Legacy\Common` ([#1846](https://github.com/torrentpier/torrentpier/pull/1846)) - ([bd0ef06](https://github.com/torrentpier/torrentpier/commit/bd0ef063fac328ed16537aacbc12e287a8d8206b)) +### 🎨 Styling + +- Correct `sidebar2` displaying ([#1852](https://github.com/torrentpier/torrentpier/pull/1852)) - ([9e0a641](https://github.com/torrentpier/torrentpier/commit/9e0a64108d62236ab07b3f8d10e8c78269b8e1d1)) + ### ⚙️ Miscellaneous - *(nightly builds)* Added cleanup step ([#1851](https://github.com/torrentpier/torrentpier/pull/1851)) - ([299d9a1](https://github.com/torrentpier/torrentpier/commit/299d9a1f6c4f244e435803212e763c252e5bd396)) From 7ca058256186b7b690003308d660a3a6271e84d2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Mar 2025 13:34:11 +0700 Subject: [PATCH 018/216] Composer(deps): Bump filp/whoops from 2.17.0 to 2.18.0 (#1853) Bumps [filp/whoops](https://github.com/filp/whoops) from 2.17.0 to 2.18.0. - [Changelog](https://github.com/filp/whoops/blob/master/CHANGELOG.md) - [Commits](https://github.com/filp/whoops/compare/2.17.0...2.18.0) --- updated-dependencies: - dependency-name: filp/whoops dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/composer.lock b/composer.lock index 03fcf048a..3012c3903 100644 --- a/composer.lock +++ b/composer.lock @@ -808,16 +808,16 @@ }, { "name": "filp/whoops", - "version": "2.17.0", + "version": "2.18.0", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "075bc0c26631110584175de6523ab3f1652eb28e" + "reference": "a7de6c3c6c3c022f5cfc337f8ede6a14460cf77e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/075bc0c26631110584175de6523ab3f1652eb28e", - "reference": "075bc0c26631110584175de6523ab3f1652eb28e", + "url": "https://api.github.com/repos/filp/whoops/zipball/a7de6c3c6c3c022f5cfc337f8ede6a14460cf77e", + "reference": "a7de6c3c6c3c022f5cfc337f8ede6a14460cf77e", "shasum": "" }, "require": { @@ -867,7 +867,7 @@ ], "support": { "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.17.0" + "source": "https://github.com/filp/whoops/tree/2.18.0" }, "funding": [ { @@ -875,7 +875,7 @@ "type": "github" } ], - "time": "2025-01-25T12:00:00+00:00" + "time": "2025-03-15T12:00:00+00:00" }, { "name": "gemorroj/m3u-parser", From 056bf046c1ea3766dd2d7db2e77f2751271d73b1 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Tue, 18 Mar 2025 01:23:15 +0000 Subject: [PATCH 019/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b1c213825..911ac9f5f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ ### 📦 Dependencies +- *(deps)* Bump filp/whoops from 2.17.0 to 2.18.0 ([#1853](https://github.com/torrentpier/torrentpier/pull/1853)) - ([7ca0582](https://github.com/torrentpier/torrentpier/commit/7ca058256186b7b690003308d660a3a6271e84d2)) - *(deps)* Bump php-curl-class/php-curl-class from 11.0.4 to 11.0.5 ([#1849](https://github.com/torrentpier/torrentpier/pull/1849)) - ([37ad07a](https://github.com/torrentpier/torrentpier/commit/37ad07a40c1adf29f712f469d2850753d32a5eb9)) - *(deps)* Bump belomaxorka/captcha from 1.2.3 to 1.2.4 - ([4641b0a](https://github.com/torrentpier/torrentpier/commit/4641b0a0d0e055d684ec36d41bfaf22b4d4b2ee1)) - *(deps)* Bump belomaxorka/captcha from 1.2.2 to 1.2.3 ([#1842](https://github.com/torrentpier/torrentpier/pull/1842)) - ([be65f7c](https://github.com/torrentpier/torrentpier/commit/be65f7c55cbf81d889d5083c9344ccef400e8e19)) From 3cc880eeb8be41596d5e8eaf19297046500afcf7 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Wed, 19 Mar 2025 00:52:11 +0700 Subject: [PATCH 020/216] misc: Some minor improvements (#1855) * misc: Some minor improvements * Update config.php * Update Env.php * Update Env.php * Update tr_seed_bonus.php --- library/config.php | 2 +- library/includes/cron/jobs/tr_seed_bonus.php | 9 +-------- src/Env.php | 6 +++--- 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/library/config.php b/library/config.php index d65825adb..4a1792e2a 100644 --- a/library/config.php +++ b/library/config.php @@ -426,7 +426,7 @@ $bb_cfg['invites_system'] = [ // Syntax: 'invite_code' => 'validity_period' // The 'validity_period' value is based on strtotime() function: https://www.php.net/manual/en/function.strtotime.php // You can also create a permanent invite, set 'permanent' value for 'validity_period' - // Invite link example: site_url/profile.php?mode=register&invite=new_year + // Invite link example: site_url/profile.php?mode=register&invite=new_year2023 'new_year2023' => '2022-12-31 00:00:01', '340c4bb6ea2d284c13e085b60b990a8a' => '12 April 1961', 'tp_birthday' => '2005-04-04', diff --git a/library/includes/cron/jobs/tr_seed_bonus.php b/library/includes/cron/jobs/tr_seed_bonus.php index 3c4c67544..83e817ea9 100644 --- a/library/includes/cron/jobs/tr_seed_bonus.php +++ b/library/includes/cron/jobs/tr_seed_bonus.php @@ -35,19 +35,12 @@ if ($bb_cfg['seed_bonus_enabled'] && $bb_cfg['seed_bonus_points'] && $bb_cfg['se $seed_bonus = unserialize($bb_cfg['seed_bonus_points']); $seed_release = unserialize($bb_cfg['seed_bonus_release']); - $sql = "SELECT last_run - FROM " . BB_CRON . " - WHERE cron_script = '" . basename(__FILE__) . "' - LIMIT 1"; - $cron_runs = DB()->fetch_row($sql); - $cron_job_last_run = (TIMENOW - strtotime($cron_runs['last_run'])); - foreach ($seed_bonus as $i => $points) { if (!$points || !$seed_release[$i]) { continue; } - $user_points = ($cron_job_last_run < 3600) ? round((float)$points * ($cron_job_last_run / 3600), 2) : 0; + $user_points = ((float)$points / 4); $release = (int)$seed_release[$i]; $user_regdate = (TIMENOW - $bb_cfg['seed_bonus_user_regdate'] * 86400); diff --git a/src/Env.php b/src/Env.php index 79391faef..52e1e7cac 100644 --- a/src/Env.php +++ b/src/Env.php @@ -62,7 +62,7 @@ class Env /** * Get the environment repository instance. * - * @return RepositoryInterface + * @return RepositoryInterface|null */ public static function getRepository(): ?RepositoryInterface { @@ -83,10 +83,10 @@ class Env * Gets the value of an environment variable. * * @param string $key - * @param mixed $default + * @param mixed|null $default * @return mixed */ - public static function get(string $key, $default = null) + public static function get(string $key, mixed $default = null): mixed { return Option::fromValue(static::getRepository()->get($key)) ->map(function ($value) { From 9766c534bddad8e82e6d19f9bad5cf70b9887f9a Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Wed, 19 Mar 2025 01:05:15 +0700 Subject: [PATCH 021/216] feat: Added secure headers configuring (#1856) * feat: Added secure headers configuring * Update config.secure-headers.php --- common.php | 5 +- composer.json | 1 + composer.lock | 85 ++- library/config.secure-headers.php | 845 ++++++++++++++++++++++++++++++ 4 files changed, 932 insertions(+), 4 deletions(-) create mode 100644 library/config.secure-headers.php diff --git a/common.php b/common.php index a455a7de2..11e1ee775 100644 --- a/common.php +++ b/common.php @@ -38,7 +38,6 @@ if (!defined('BB_SCRIPT')) { define('BB_SCRIPT', null); } -header('X-Frame-Options: SAMEORIGIN'); date_default_timezone_set('UTC'); // Set remote address @@ -106,6 +105,10 @@ define('FORUM_PATH', $bb_cfg['script_path']); define('FULL_URL', $server_protocol . $bb_cfg['server_name'] . $server_port . $bb_cfg['script_path']); unset($server_protocol, $server_port); +// Secure headers +$secureHeaders = \Bepsvpt\SecureHeaders\SecureHeaders::fromFile(BB_PATH . '/library/config.secure-headers.php'); +$secureHeaders->send(); + /** * Database */ diff --git a/composer.json b/composer.json index 82f829c9b..2577aa073 100644 --- a/composer.json +++ b/composer.json @@ -56,6 +56,7 @@ "belomaxorka/captcha": "1.*", "egulias/email-validator": "^4.0.1", "filp/whoops": "^2.15", + "bepsvpt/secure-headers": "9.*", "z4kn4fein/php-semver": "^v3.0.0", "nemorize/indexnow": "^0.0.1", "gigablah/sphinxphp": "2.0.8", diff --git a/composer.lock b/composer.lock index 3012c3903..750030512 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "c1e345a7abe58feb13d951acfd499e95", + "content-hash": "098530029429a81a4a25a5d7276584c4", "packages": [ { "name": "arokettu/bencode", @@ -470,6 +470,85 @@ }, "time": "2025-03-10T13:15:53+00:00" }, + { + "name": "bepsvpt/secure-headers", + "version": "9.0.0", + "source": { + "type": "git", + "url": "https://github.com/bepsvpt/secure-headers.git", + "reference": "7efbc3d8b988051b5ff81c4cacd1d12e875528ed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bepsvpt/secure-headers/zipball/7efbc3d8b988051b5ff81c4cacd1d12e875528ed", + "reference": "7efbc3d8b988051b5ff81c4cacd1d12e875528ed", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "ergebnis/composer-normalize": "^2.42", + "ext-xdebug": "*", + "laravel/pint": "^1.14", + "orchestra/testbench": "^3.1 || ^4.18 || ^5.20 || ^6.43 || ^7.41 || ^8.22 || ^9.0", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.5 || ^9.6 || ^10.5" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Bepsvpt\\SecureHeaders\\SecureHeadersServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Bepsvpt\\SecureHeaders\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "bepsvpt", + "email": "6ibrl@cpp.tw" + } + ], + "description": "Add security related headers to HTTP response. The package includes Service Providers for easy Laravel integration.", + "homepage": "https://github.com/bepsvpt/secure-headers", + "keywords": [ + "clear-site-data", + "content-security-policy", + "csp", + "except-ct", + "feature-policy", + "header", + "hsts", + "https", + "laravel", + "permissions-policy", + "referrer-policy" + ], + "support": { + "issues": "https://github.com/bepsvpt/secure-headers/issues", + "source": "https://github.com/bepsvpt/secure-headers/tree/9.0.0" + }, + "funding": [ + { + "url": "https://opencollective.com/secure-headers", + "type": "open_collective" + } + ], + "time": "2025-01-18T07:18:04+00:00" + }, { "name": "bugsnag/bugsnag", "version": "v3.29.3", @@ -3854,6 +3933,6 @@ "platform": { "php": "^8.1 | ^8.2 | ^8.3 | ^8.4" }, - "platform-dev": [], - "plugin-api-version": "2.3.0" + "platform-dev": {}, + "plugin-api-version": "2.6.0" } diff --git a/library/config.secure-headers.php b/library/config.secure-headers.php new file mode 100644 index 000000000..d5271e3e2 --- /dev/null +++ b/library/config.secure-headers.php @@ -0,0 +1,845 @@ + '', + + /** + * X-Content-Type-Options + * + * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options + * + * Available Value: 'nosniff' + */ + 'x-content-type-options' => 'nosniff', + + /** + * X-DNS-Prefetch-Control + * + * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-DNS-Prefetch-Control + * + * Available Value: 'on', 'off' + */ + 'x-dns-prefetch-control' => '', + + /** + * X-Download-Options + * + * @see https://msdn.microsoft.com/en-us/library/jj542450(v=vs.85).aspx + * + * Available Value: 'noopen' + */ + 'x-download-options' => 'noopen', + + /** + * X-Frame-Options + * + * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options + * @deprecated The X-Frame-Options is no longer recommended for use; please use Content-Security-Policy (CSP) instead. + * + * Available Value: 'deny', 'sameorigin', 'allow-from ' + */ + 'x-frame-options' => 'sameorigin', + + /** + * X-Permitted-Cross-Domain-Policies + * + * @see https://www.adobe.com/devnet-docs/acrobatetk/tools/AppSec/xdomain.html + * + * Available Value: 'all', 'none', 'master-only', 'by-content-type', 'by-ftp-filename' + */ + 'x-permitted-cross-domain-policies' => 'none', + + /** + * X-Powered-By + * + * Note: it will not add to response header if the value is empty string. + * + * Also, verify that expose_php is turned Off in php.ini. + * Otherwise, the header will still be included in the response. + * + * @see https://github.com/bepsvpt/secure-headers/issues/58#issuecomment-782332442 + */ + 'x-powered-by' => '', + + /** + * X-XSS-Protection + * + * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection + * @deprecated The X-XSS-Protection is no longer recommended for use; please use Content-Security-Policy (CSP) instead. + * + * Available Value: '1', '0', '1; mode=block' + */ + 'x-xss-protection' => '', + + /** + * Referrer-Policy + * + * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy + * + * Available Value: 'no-referrer', 'no-referrer-when-downgrade', 'origin', 'origin-when-cross-origin', + * 'same-origin', 'strict-origin', 'strict-origin-when-cross-origin', 'unsafe-url' + */ + 'referrer-policy' => 'no-referrer', + + /** + * Cross-Origin-Embedder-Policy + * + * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Embedder-Policy + * + * Available Value: 'unsafe-none', 'require-corp', 'credentialless' + */ + 'cross-origin-embedder-policy' => 'unsafe-none', + + /** + * Cross-Origin-Opener-Policy + * + * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Opener-Policy + * + * Available Value: 'unsafe-none', 'same-origin-allow-popups', 'same-origin' + */ + 'cross-origin-opener-policy' => 'unsafe-none', + + /** + * Cross-Origin-Resource-Policy + * + * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Resource-Policy + * + * Available Value: 'same-site', 'same-origin', 'cross-origin' + */ + 'cross-origin-resource-policy' => 'cross-origin', + + /** + * Clear-Site-Data + * + * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Clear-Site-Data + */ + 'clear-site-data' => [ + 'enable' => false, + + 'all' => false, + + 'cache' => true, + + 'clientHints' => true, + + 'cookies' => true, + + 'storage' => true, + + 'executionContexts' => true, + ], + + /** + * HTTP Strict Transport Security + * + * @see https://developer.mozilla.org/en-US/docs/Web/Security/HTTP_strict_transport_security + * + * Note: Please ensure your website had set up ssl/tls before enable hsts. + */ + 'hsts' => [ + 'enable' => false, + + 'max-age' => 31536000, + + 'include-sub-domains' => false, + + 'preload' => false, + ], + + /** + * Reporting Endpoints + * + * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Reporting-Endpoints + * + * Note: The array key is the endpoint name, and the value is the URL. + */ + 'reporting' => [ + // 'csp' => 'https://example.com/csp-reports', + // 'nel' => 'https://example.com/nel-reports', + ], + + /** + * Network Error Logging + * + * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Network_Error_Logging + * @see https://developer.mozilla.org/en-US/docs/Web/API/Reporting_API + */ + 'nel' => [ + 'enable' => false, + + // The name of reporting API, not the endpoint URL. + 'report-to' => '', + + 'max-age' => 86400, + + 'include-subdomains' => false, + + 'success-fraction' => 0.0, + + 'failure-fraction' => 1.0, + ], + + /** + * Expect-CT + * + * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Expect-CT + * @deprecated This feature is no longer recommended. + */ + 'expect-ct' => [ + 'enable' => false, + + 'max-age' => 2147483648, + + 'enforce' => false, + + // report uri must be absolute-URI + 'report-uri' => null, + ], + + /** + * Permissions Policy + * + * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy + */ + 'permissions-policy' => [ + 'enable' => true, + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/accelerometer + 'accelerometer' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/ambient-light-sensor + 'ambient-light-sensor' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/attribution-reporting + 'attribution-reporting' => [ + 'none' => false, + + '*' => true, + + 'self' => false, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/autoplay + 'autoplay' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/bluetooth + 'bluetooth' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/browsing-topics + 'browsing-topics' => [ + 'none' => false, + + '*' => true, + + 'self' => false, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/camera + 'camera' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/compute-pressure + 'compute-pressure' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/compute-pressure + 'cross-origin-isolated' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/display-capture + 'display-capture' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/document-domain + 'document-domain' => [ + 'none' => false, + + '*' => true, + + 'self' => false, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/encrypted-media + 'encrypted-media' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/fullscreen + 'fullscreen' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/gamepad + 'gamepad' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/geolocation + 'geolocation' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/gyroscope + 'gyroscope' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/hid + 'hid' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/identity-credentials-get + 'identity-credentials-get' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/idle-detection + 'idle-detection' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/local-fonts + 'local-fonts' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/magnetometer + 'magnetometer' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/microphone + 'microphone' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/midi + 'midi' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/otp-credentials + 'otp-credentials' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/payment + 'payment' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/picture-in-picture + 'picture-in-picture' => [ + 'none' => false, + + '*' => true, + + 'self' => false, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/publickey-credentials-create + 'publickey-credentials-create' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/publickey-credentials-get + 'publickey-credentials-get' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/screen-wake-lock + 'screen-wake-lock' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/serial + 'serial' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/speaker-selection + 'speaker-selection' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/storage-access + 'storage-access' => [ + 'none' => false, + + '*' => true, + + 'self' => false, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/usb + 'usb' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/web-share + 'web-share' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/window-management + 'window-management' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/xr-spatial-tracking + 'xr-spatial-tracking' => [ + 'none' => false, + + '*' => false, + + 'self' => true, + + 'origins' => [], + ], + ], + + /** + * Content Security Policy + * + * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP + */ + 'csp' => [ + 'enable' => true, + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only + 'report-only' => false, + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/report-to + 'report-to' => '', + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/report-uri + 'report-uri' => [ + // uri + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/block-all-mixed-content + 'block-all-mixed-content' => false, + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests + 'upgrade-insecure-requests' => false, + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/base-uri + 'base-uri' => [ + // + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/child-src + 'child-src' => [ + // + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/connect-src + 'connect-src' => [ + // + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/default-src + 'default-src' => [ + // + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/fenced-frame-src + 'fenced-frame-src' => [ + // + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/font-src + 'font-src' => [ + // + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/form-action + 'form-action' => [ + // + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors + 'frame-ancestors' => [ + // + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-src + 'frame-src' => [ + // + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/img-src + 'img-src' => [ + // + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/manifest-src + 'manifest-src' => [ + // + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/media-src + 'media-src' => [ + // + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/object-src + 'object-src' => [ + // + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/prefetch-src + 'prefetch-src' => [ + // + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/require-trusted-types-for + 'require-trusted-types-for' => [ + 'script' => false, + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/sandbox + 'sandbox' => [ + 'enable' => false, + + 'allow-downloads' => false, + + 'allow-forms' => false, + + 'allow-modals' => false, + + 'allow-orientation-lock' => false, + + 'allow-pointer-lock' => false, + + 'allow-popups' => false, + + 'allow-popups-to-escape-sandbox' => false, + + 'allow-presentation' => false, + + 'allow-same-origin' => false, + + 'allow-scripts' => false, + + 'allow-storage-access-by-user-activation' => false, + + 'allow-top-navigation' => false, + + 'allow-top-navigation-by-user-activation' => false, + + 'allow-top-navigation-to-custom-protocols' => false, + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src + 'script-src' => [ + 'none' => false, + + 'self' => false, + + 'report-sample' => false, + + 'allow' => [ + // 'url', + ], + + 'schemes' => [ + // 'data:', + // 'https:', + ], + + /* followings are only work for `script` and `style` related directives */ + + 'unsafe-inline' => false, + + 'unsafe-eval' => false, + + // https://www.w3.org/TR/CSP3/#unsafe-hashes-usage + 'unsafe-hashes' => false, + + // Enable `strict-dynamic` will *ignore* `self`, `unsafe-inline`, + // `allow` and `schemes`. You can find more information from: + // https://www.w3.org/TR/CSP3/#strict-dynamic-usage + 'strict-dynamic' => false, + + 'hashes' => [ + 'sha256' => [ + // 'sha256-hash-value-with-base64-encode', + ], + + 'sha384' => [ + // 'sha384-hash-value-with-base64-encode', + ], + + 'sha512' => [ + // 'sha512-hash-value-with-base64-encode', + ], + ], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src-attr + 'script-src-attr' => [ + // + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src-elem + 'script-src-elem' => [ + // + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src + 'style-src' => [ + // + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src-attr + 'style-src-attr' => [ + // + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src-elem + 'style-src-elem' => [ + // + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/trusted-types + 'trusted-types' => [ + 'enable' => false, + + 'none' => false, + + 'allow-duplicates' => false, + + 'policies' => [ + // + ], + ], + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/worker-src + 'worker-src' => [ + // + ], + ], +]; From 4f8b51febdf3b52d76e5c580af445fcd8a4608ec Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Wed, 19 Mar 2025 01:24:08 +0000 Subject: [PATCH 022/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 911ac9f5f..58c97b79d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ - *(avatar upload)* Added `accept="image/*"` attribute ([#1841](https://github.com/torrentpier/torrentpier/pull/1841)) - ([56d531a](https://github.com/torrentpier/torrentpier/commit/56d531aa5ddb778d08a2796fa9fb865e5b3040ce)) - *(emailer)* Added ability to configure `sendmail` - ([5ad4a70](https://github.com/torrentpier/torrentpier/commit/5ad4a7019d996d468650ab608ab53d6cf3ebb4f5)) - *(playback_m3u.php)* Added checking auth to download ([#1848](https://github.com/torrentpier/torrentpier/pull/1848)) - ([0b8d8a5](https://github.com/torrentpier/torrentpier/commit/0b8d8a5210ee761dddaa57fc48bb48b0ede1ec3c)) +- Added secure headers configuring ([#1856](https://github.com/torrentpier/torrentpier/pull/1856)) - ([9766c53](https://github.com/torrentpier/torrentpier/commit/9766c534bddad8e82e6d19f9bad5cf70b9887f9a)) ### 📦 Dependencies @@ -30,6 +31,7 @@ - *(nightly builds)* Added cleanup step ([#1851](https://github.com/torrentpier/torrentpier/pull/1851)) - ([299d9a1](https://github.com/torrentpier/torrentpier/commit/299d9a1f6c4f244e435803212e763c252e5bd396)) - *(text captcha)* Disabled scatter effect by default - ([3af5202](https://github.com/torrentpier/torrentpier/commit/3af5202f7b2a4ea5d14bbc4808b7a380de2e0dc0)) +- Some minor improvements ([#1855](https://github.com/torrentpier/torrentpier/pull/1855)) - ([3cc880e](https://github.com/torrentpier/torrentpier/commit/3cc880eeb8be41596d5e8eaf19297046500afcf7)) ## [v2.4.5-rc.4](https://github.com/torrentpier/torrentpier/compare/v2.4.5-rc.3..v2.4.5-rc.4) (2025-03-09) From 467225e6e43f02dcd4635e258e616e90cbe4c62a Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Wed, 19 Mar 2025 14:25:51 +0300 Subject: [PATCH 023/216] Revert "feat: Added secure headers configuring (#1856)" This reverts commit 9766c534bddad8e82e6d19f9bad5cf70b9887f9a. --- common.php | 5 +- composer.json | 1 - composer.lock | 85 +-- library/config.secure-headers.php | 845 ------------------------------ 4 files changed, 4 insertions(+), 932 deletions(-) delete mode 100644 library/config.secure-headers.php diff --git a/common.php b/common.php index 11e1ee775..a455a7de2 100644 --- a/common.php +++ b/common.php @@ -38,6 +38,7 @@ if (!defined('BB_SCRIPT')) { define('BB_SCRIPT', null); } +header('X-Frame-Options: SAMEORIGIN'); date_default_timezone_set('UTC'); // Set remote address @@ -105,10 +106,6 @@ define('FORUM_PATH', $bb_cfg['script_path']); define('FULL_URL', $server_protocol . $bb_cfg['server_name'] . $server_port . $bb_cfg['script_path']); unset($server_protocol, $server_port); -// Secure headers -$secureHeaders = \Bepsvpt\SecureHeaders\SecureHeaders::fromFile(BB_PATH . '/library/config.secure-headers.php'); -$secureHeaders->send(); - /** * Database */ diff --git a/composer.json b/composer.json index 2577aa073..82f829c9b 100644 --- a/composer.json +++ b/composer.json @@ -56,7 +56,6 @@ "belomaxorka/captcha": "1.*", "egulias/email-validator": "^4.0.1", "filp/whoops": "^2.15", - "bepsvpt/secure-headers": "9.*", "z4kn4fein/php-semver": "^v3.0.0", "nemorize/indexnow": "^0.0.1", "gigablah/sphinxphp": "2.0.8", diff --git a/composer.lock b/composer.lock index 750030512..3012c3903 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "098530029429a81a4a25a5d7276584c4", + "content-hash": "c1e345a7abe58feb13d951acfd499e95", "packages": [ { "name": "arokettu/bencode", @@ -470,85 +470,6 @@ }, "time": "2025-03-10T13:15:53+00:00" }, - { - "name": "bepsvpt/secure-headers", - "version": "9.0.0", - "source": { - "type": "git", - "url": "https://github.com/bepsvpt/secure-headers.git", - "reference": "7efbc3d8b988051b5ff81c4cacd1d12e875528ed" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/bepsvpt/secure-headers/zipball/7efbc3d8b988051b5ff81c4cacd1d12e875528ed", - "reference": "7efbc3d8b988051b5ff81c4cacd1d12e875528ed", - "shasum": "" - }, - "require": { - "ext-json": "*", - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "ergebnis/composer-normalize": "^2.42", - "ext-xdebug": "*", - "laravel/pint": "^1.14", - "orchestra/testbench": "^3.1 || ^4.18 || ^5.20 || ^6.43 || ^7.41 || ^8.22 || ^9.0", - "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.5 || ^9.6 || ^10.5" - }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "Bepsvpt\\SecureHeaders\\SecureHeadersServiceProvider" - ] - } - }, - "autoload": { - "files": [ - "src/helpers.php" - ], - "psr-4": { - "Bepsvpt\\SecureHeaders\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "bepsvpt", - "email": "6ibrl@cpp.tw" - } - ], - "description": "Add security related headers to HTTP response. The package includes Service Providers for easy Laravel integration.", - "homepage": "https://github.com/bepsvpt/secure-headers", - "keywords": [ - "clear-site-data", - "content-security-policy", - "csp", - "except-ct", - "feature-policy", - "header", - "hsts", - "https", - "laravel", - "permissions-policy", - "referrer-policy" - ], - "support": { - "issues": "https://github.com/bepsvpt/secure-headers/issues", - "source": "https://github.com/bepsvpt/secure-headers/tree/9.0.0" - }, - "funding": [ - { - "url": "https://opencollective.com/secure-headers", - "type": "open_collective" - } - ], - "time": "2025-01-18T07:18:04+00:00" - }, { "name": "bugsnag/bugsnag", "version": "v3.29.3", @@ -3933,6 +3854,6 @@ "platform": { "php": "^8.1 | ^8.2 | ^8.3 | ^8.4" }, - "platform-dev": {}, - "plugin-api-version": "2.6.0" + "platform-dev": [], + "plugin-api-version": "2.3.0" } diff --git a/library/config.secure-headers.php b/library/config.secure-headers.php deleted file mode 100644 index d5271e3e2..000000000 --- a/library/config.secure-headers.php +++ /dev/null @@ -1,845 +0,0 @@ - '', - - /** - * X-Content-Type-Options - * - * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options - * - * Available Value: 'nosniff' - */ - 'x-content-type-options' => 'nosniff', - - /** - * X-DNS-Prefetch-Control - * - * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-DNS-Prefetch-Control - * - * Available Value: 'on', 'off' - */ - 'x-dns-prefetch-control' => '', - - /** - * X-Download-Options - * - * @see https://msdn.microsoft.com/en-us/library/jj542450(v=vs.85).aspx - * - * Available Value: 'noopen' - */ - 'x-download-options' => 'noopen', - - /** - * X-Frame-Options - * - * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options - * @deprecated The X-Frame-Options is no longer recommended for use; please use Content-Security-Policy (CSP) instead. - * - * Available Value: 'deny', 'sameorigin', 'allow-from ' - */ - 'x-frame-options' => 'sameorigin', - - /** - * X-Permitted-Cross-Domain-Policies - * - * @see https://www.adobe.com/devnet-docs/acrobatetk/tools/AppSec/xdomain.html - * - * Available Value: 'all', 'none', 'master-only', 'by-content-type', 'by-ftp-filename' - */ - 'x-permitted-cross-domain-policies' => 'none', - - /** - * X-Powered-By - * - * Note: it will not add to response header if the value is empty string. - * - * Also, verify that expose_php is turned Off in php.ini. - * Otherwise, the header will still be included in the response. - * - * @see https://github.com/bepsvpt/secure-headers/issues/58#issuecomment-782332442 - */ - 'x-powered-by' => '', - - /** - * X-XSS-Protection - * - * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection - * @deprecated The X-XSS-Protection is no longer recommended for use; please use Content-Security-Policy (CSP) instead. - * - * Available Value: '1', '0', '1; mode=block' - */ - 'x-xss-protection' => '', - - /** - * Referrer-Policy - * - * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy - * - * Available Value: 'no-referrer', 'no-referrer-when-downgrade', 'origin', 'origin-when-cross-origin', - * 'same-origin', 'strict-origin', 'strict-origin-when-cross-origin', 'unsafe-url' - */ - 'referrer-policy' => 'no-referrer', - - /** - * Cross-Origin-Embedder-Policy - * - * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Embedder-Policy - * - * Available Value: 'unsafe-none', 'require-corp', 'credentialless' - */ - 'cross-origin-embedder-policy' => 'unsafe-none', - - /** - * Cross-Origin-Opener-Policy - * - * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Opener-Policy - * - * Available Value: 'unsafe-none', 'same-origin-allow-popups', 'same-origin' - */ - 'cross-origin-opener-policy' => 'unsafe-none', - - /** - * Cross-Origin-Resource-Policy - * - * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Resource-Policy - * - * Available Value: 'same-site', 'same-origin', 'cross-origin' - */ - 'cross-origin-resource-policy' => 'cross-origin', - - /** - * Clear-Site-Data - * - * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Clear-Site-Data - */ - 'clear-site-data' => [ - 'enable' => false, - - 'all' => false, - - 'cache' => true, - - 'clientHints' => true, - - 'cookies' => true, - - 'storage' => true, - - 'executionContexts' => true, - ], - - /** - * HTTP Strict Transport Security - * - * @see https://developer.mozilla.org/en-US/docs/Web/Security/HTTP_strict_transport_security - * - * Note: Please ensure your website had set up ssl/tls before enable hsts. - */ - 'hsts' => [ - 'enable' => false, - - 'max-age' => 31536000, - - 'include-sub-domains' => false, - - 'preload' => false, - ], - - /** - * Reporting Endpoints - * - * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Reporting-Endpoints - * - * Note: The array key is the endpoint name, and the value is the URL. - */ - 'reporting' => [ - // 'csp' => 'https://example.com/csp-reports', - // 'nel' => 'https://example.com/nel-reports', - ], - - /** - * Network Error Logging - * - * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Network_Error_Logging - * @see https://developer.mozilla.org/en-US/docs/Web/API/Reporting_API - */ - 'nel' => [ - 'enable' => false, - - // The name of reporting API, not the endpoint URL. - 'report-to' => '', - - 'max-age' => 86400, - - 'include-subdomains' => false, - - 'success-fraction' => 0.0, - - 'failure-fraction' => 1.0, - ], - - /** - * Expect-CT - * - * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Expect-CT - * @deprecated This feature is no longer recommended. - */ - 'expect-ct' => [ - 'enable' => false, - - 'max-age' => 2147483648, - - 'enforce' => false, - - // report uri must be absolute-URI - 'report-uri' => null, - ], - - /** - * Permissions Policy - * - * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy - */ - 'permissions-policy' => [ - 'enable' => true, - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/accelerometer - 'accelerometer' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/ambient-light-sensor - 'ambient-light-sensor' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/attribution-reporting - 'attribution-reporting' => [ - 'none' => false, - - '*' => true, - - 'self' => false, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/autoplay - 'autoplay' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/bluetooth - 'bluetooth' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/browsing-topics - 'browsing-topics' => [ - 'none' => false, - - '*' => true, - - 'self' => false, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/camera - 'camera' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/compute-pressure - 'compute-pressure' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/compute-pressure - 'cross-origin-isolated' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/display-capture - 'display-capture' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/document-domain - 'document-domain' => [ - 'none' => false, - - '*' => true, - - 'self' => false, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/encrypted-media - 'encrypted-media' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/fullscreen - 'fullscreen' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/gamepad - 'gamepad' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/geolocation - 'geolocation' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/gyroscope - 'gyroscope' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/hid - 'hid' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/identity-credentials-get - 'identity-credentials-get' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/idle-detection - 'idle-detection' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/local-fonts - 'local-fonts' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/magnetometer - 'magnetometer' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/microphone - 'microphone' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/midi - 'midi' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/otp-credentials - 'otp-credentials' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/payment - 'payment' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/picture-in-picture - 'picture-in-picture' => [ - 'none' => false, - - '*' => true, - - 'self' => false, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/publickey-credentials-create - 'publickey-credentials-create' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/publickey-credentials-get - 'publickey-credentials-get' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/screen-wake-lock - 'screen-wake-lock' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/serial - 'serial' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/speaker-selection - 'speaker-selection' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/storage-access - 'storage-access' => [ - 'none' => false, - - '*' => true, - - 'self' => false, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/usb - 'usb' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/web-share - 'web-share' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/window-management - 'window-management' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy/xr-spatial-tracking - 'xr-spatial-tracking' => [ - 'none' => false, - - '*' => false, - - 'self' => true, - - 'origins' => [], - ], - ], - - /** - * Content Security Policy - * - * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP - */ - 'csp' => [ - 'enable' => true, - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only - 'report-only' => false, - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/report-to - 'report-to' => '', - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/report-uri - 'report-uri' => [ - // uri - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/block-all-mixed-content - 'block-all-mixed-content' => false, - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests - 'upgrade-insecure-requests' => false, - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/base-uri - 'base-uri' => [ - // - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/child-src - 'child-src' => [ - // - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/connect-src - 'connect-src' => [ - // - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/default-src - 'default-src' => [ - // - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/fenced-frame-src - 'fenced-frame-src' => [ - // - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/font-src - 'font-src' => [ - // - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/form-action - 'form-action' => [ - // - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors - 'frame-ancestors' => [ - // - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-src - 'frame-src' => [ - // - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/img-src - 'img-src' => [ - // - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/manifest-src - 'manifest-src' => [ - // - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/media-src - 'media-src' => [ - // - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/object-src - 'object-src' => [ - // - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/prefetch-src - 'prefetch-src' => [ - // - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/require-trusted-types-for - 'require-trusted-types-for' => [ - 'script' => false, - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/sandbox - 'sandbox' => [ - 'enable' => false, - - 'allow-downloads' => false, - - 'allow-forms' => false, - - 'allow-modals' => false, - - 'allow-orientation-lock' => false, - - 'allow-pointer-lock' => false, - - 'allow-popups' => false, - - 'allow-popups-to-escape-sandbox' => false, - - 'allow-presentation' => false, - - 'allow-same-origin' => false, - - 'allow-scripts' => false, - - 'allow-storage-access-by-user-activation' => false, - - 'allow-top-navigation' => false, - - 'allow-top-navigation-by-user-activation' => false, - - 'allow-top-navigation-to-custom-protocols' => false, - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src - 'script-src' => [ - 'none' => false, - - 'self' => false, - - 'report-sample' => false, - - 'allow' => [ - // 'url', - ], - - 'schemes' => [ - // 'data:', - // 'https:', - ], - - /* followings are only work for `script` and `style` related directives */ - - 'unsafe-inline' => false, - - 'unsafe-eval' => false, - - // https://www.w3.org/TR/CSP3/#unsafe-hashes-usage - 'unsafe-hashes' => false, - - // Enable `strict-dynamic` will *ignore* `self`, `unsafe-inline`, - // `allow` and `schemes`. You can find more information from: - // https://www.w3.org/TR/CSP3/#strict-dynamic-usage - 'strict-dynamic' => false, - - 'hashes' => [ - 'sha256' => [ - // 'sha256-hash-value-with-base64-encode', - ], - - 'sha384' => [ - // 'sha384-hash-value-with-base64-encode', - ], - - 'sha512' => [ - // 'sha512-hash-value-with-base64-encode', - ], - ], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src-attr - 'script-src-attr' => [ - // - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src-elem - 'script-src-elem' => [ - // - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src - 'style-src' => [ - // - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src-attr - 'style-src-attr' => [ - // - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src-elem - 'style-src-elem' => [ - // - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/trusted-types - 'trusted-types' => [ - 'enable' => false, - - 'none' => false, - - 'allow-duplicates' => false, - - 'policies' => [ - // - ], - ], - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/worker-src - 'worker-src' => [ - // - ], - ], -]; From df500c4dfaed135ec8767b3f4c6dfdeb806abc9e Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Fri, 21 Mar 2025 09:11:39 +0700 Subject: [PATCH 024/216] Update CHANGELOG.md --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 58c97b79d..a3dff0478 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,6 @@ - *(avatar upload)* Added `accept="image/*"` attribute ([#1841](https://github.com/torrentpier/torrentpier/pull/1841)) - ([56d531a](https://github.com/torrentpier/torrentpier/commit/56d531aa5ddb778d08a2796fa9fb865e5b3040ce)) - *(emailer)* Added ability to configure `sendmail` - ([5ad4a70](https://github.com/torrentpier/torrentpier/commit/5ad4a7019d996d468650ab608ab53d6cf3ebb4f5)) - *(playback_m3u.php)* Added checking auth to download ([#1848](https://github.com/torrentpier/torrentpier/pull/1848)) - ([0b8d8a5](https://github.com/torrentpier/torrentpier/commit/0b8d8a5210ee761dddaa57fc48bb48b0ede1ec3c)) -- Added secure headers configuring ([#1856](https://github.com/torrentpier/torrentpier/pull/1856)) - ([9766c53](https://github.com/torrentpier/torrentpier/commit/9766c534bddad8e82e6d19f9bad5cf70b9887f9a)) ### 📦 Dependencies From 3a2dcab561efb00f0f5b5bd3a7346a716dacc50e Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Fri, 21 Mar 2025 02:12:39 +0000 Subject: [PATCH 025/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a3dff0478..58c97b79d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ - *(avatar upload)* Added `accept="image/*"` attribute ([#1841](https://github.com/torrentpier/torrentpier/pull/1841)) - ([56d531a](https://github.com/torrentpier/torrentpier/commit/56d531aa5ddb778d08a2796fa9fb865e5b3040ce)) - *(emailer)* Added ability to configure `sendmail` - ([5ad4a70](https://github.com/torrentpier/torrentpier/commit/5ad4a7019d996d468650ab608ab53d6cf3ebb4f5)) - *(playback_m3u.php)* Added checking auth to download ([#1848](https://github.com/torrentpier/torrentpier/pull/1848)) - ([0b8d8a5](https://github.com/torrentpier/torrentpier/commit/0b8d8a5210ee761dddaa57fc48bb48b0ede1ec3c)) +- Added secure headers configuring ([#1856](https://github.com/torrentpier/torrentpier/pull/1856)) - ([9766c53](https://github.com/torrentpier/torrentpier/commit/9766c534bddad8e82e6d19f9bad5cf70b9887f9a)) ### 📦 Dependencies From 3ced460640e4bfe27a91acd0408e73c3c49e1534 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Mar 2025 13:15:40 +0700 Subject: [PATCH 026/216] Composer(deps): Bump egulias/email-validator from 4.0.3 to 4.0.4 (#1858) Bumps [egulias/email-validator](https://github.com/egulias/EmailValidator) from 4.0.3 to 4.0.4. - [Release notes](https://github.com/egulias/EmailValidator/releases) - [Commits](https://github.com/egulias/EmailValidator/compare/4.0.3...4.0.4) --- updated-dependencies: - dependency-name: egulias/email-validator dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/composer.lock b/composer.lock index 3012c3903..a7f7f028b 100644 --- a/composer.lock +++ b/composer.lock @@ -741,16 +741,16 @@ }, { "name": "egulias/email-validator", - "version": "4.0.3", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "b115554301161fa21467629f1e1391c1936de517" + "reference": "d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/b115554301161fa21467629f1e1391c1936de517", - "reference": "b115554301161fa21467629f1e1391c1936de517", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa", + "reference": "d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa", "shasum": "" }, "require": { @@ -796,7 +796,7 @@ ], "support": { "issues": "https://github.com/egulias/EmailValidator/issues", - "source": "https://github.com/egulias/EmailValidator/tree/4.0.3" + "source": "https://github.com/egulias/EmailValidator/tree/4.0.4" }, "funding": [ { @@ -804,7 +804,7 @@ "type": "github" } ], - "time": "2024-12-27T00:36:43+00:00" + "time": "2025-03-06T22:45:56+00:00" }, { "name": "filp/whoops", From a791d4db81493a0d79e49598819e68b3acd17e07 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Sat, 22 Mar 2025 01:22:28 +0000 Subject: [PATCH 027/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 58c97b79d..3d36c2911 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ ### 📦 Dependencies +- *(deps)* Bump egulias/email-validator from 4.0.3 to 4.0.4 ([#1858](https://github.com/torrentpier/torrentpier/pull/1858)) - ([3ced460](https://github.com/torrentpier/torrentpier/commit/3ced460640e4bfe27a91acd0408e73c3c49e1534)) - *(deps)* Bump filp/whoops from 2.17.0 to 2.18.0 ([#1853](https://github.com/torrentpier/torrentpier/pull/1853)) - ([7ca0582](https://github.com/torrentpier/torrentpier/commit/7ca058256186b7b690003308d660a3a6271e84d2)) - *(deps)* Bump php-curl-class/php-curl-class from 11.0.4 to 11.0.5 ([#1849](https://github.com/torrentpier/torrentpier/pull/1849)) - ([37ad07a](https://github.com/torrentpier/torrentpier/commit/37ad07a40c1adf29f712f469d2850753d32a5eb9)) - *(deps)* Bump belomaxorka/captcha from 1.2.3 to 1.2.4 - ([4641b0a](https://github.com/torrentpier/torrentpier/commit/4641b0a0d0e055d684ec36d41bfaf22b4d4b2ee1)) From 2eab551bd75e7acfd6f4dabe13b2a30ac09db880 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sat, 22 Mar 2025 12:47:51 +0700 Subject: [PATCH 028/216] misc(cliff): Added `.cliffignore` file to ignore reverted commits (#1859) --- .cliffignore | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .cliffignore diff --git a/.cliffignore b/.cliffignore new file mode 100644 index 000000000..107377a5c --- /dev/null +++ b/.cliffignore @@ -0,0 +1,4 @@ +9766c534bddad8e82e6d19f9bad5cf70b9887f9a +92ce77ec0ec703c08a659419087a373f76e711f7 +2d53efc945c7747be1755d0b66557a86bdc12cbd +602137b65129b817811b80975a369ebde3270c6d From 02b418ac34fcdf30548fa902216b207a4bd9d7b4 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Sat, 22 Mar 2025 05:48:52 +0000 Subject: [PATCH 029/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d36c2911..e95d6f60d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,6 @@ - *(avatar upload)* Added `accept="image/*"` attribute ([#1841](https://github.com/torrentpier/torrentpier/pull/1841)) - ([56d531a](https://github.com/torrentpier/torrentpier/commit/56d531aa5ddb778d08a2796fa9fb865e5b3040ce)) - *(emailer)* Added ability to configure `sendmail` - ([5ad4a70](https://github.com/torrentpier/torrentpier/commit/5ad4a7019d996d468650ab608ab53d6cf3ebb4f5)) - *(playback_m3u.php)* Added checking auth to download ([#1848](https://github.com/torrentpier/torrentpier/pull/1848)) - ([0b8d8a5](https://github.com/torrentpier/torrentpier/commit/0b8d8a5210ee761dddaa57fc48bb48b0ede1ec3c)) -- Added secure headers configuring ([#1856](https://github.com/torrentpier/torrentpier/pull/1856)) - ([9766c53](https://github.com/torrentpier/torrentpier/commit/9766c534bddad8e82e6d19f9bad5cf70b9887f9a)) ### 📦 Dependencies @@ -30,6 +29,7 @@ ### ⚙️ Miscellaneous +- *(cliff)* Added `.cliffignore` file to ignore reverted commits ([#1859](https://github.com/torrentpier/torrentpier/pull/1859)) - ([2eab551](https://github.com/torrentpier/torrentpier/commit/2eab551bd75e7acfd6f4dabe13b2a30ac09db880)) - *(nightly builds)* Added cleanup step ([#1851](https://github.com/torrentpier/torrentpier/pull/1851)) - ([299d9a1](https://github.com/torrentpier/torrentpier/commit/299d9a1f6c4f244e435803212e763c252e5bd396)) - *(text captcha)* Disabled scatter effect by default - ([3af5202](https://github.com/torrentpier/torrentpier/commit/3af5202f7b2a4ea5d14bbc4808b7a380de2e0dc0)) - Some minor improvements ([#1855](https://github.com/torrentpier/torrentpier/pull/1855)) - ([3cc880e](https://github.com/torrentpier/torrentpier/commit/3cc880eeb8be41596d5e8eaf19297046500afcf7)) @@ -63,10 +63,6 @@ - Integrity checker 🥺🪦 ([#1827](https://github.com/torrentpier/torrentpier/pull/1827)) - ([ba3ce88](https://github.com/torrentpier/torrentpier/commit/ba3ce885c8d84ae939a0ce9c79b97877d3aaab41)) - Redundant `.htaccess` files ([#1826](https://github.com/torrentpier/torrentpier/pull/1826)) - ([912b080](https://github.com/torrentpier/torrentpier/commit/912b080b16438b09f82fbc72a363589cc2f6209e)) -### 🚜 Refactor - -- Moved classes from `Legacy` folder to `src` root ([#1828](https://github.com/torrentpier/torrentpier/pull/1828)) - ([92ce77e](https://github.com/torrentpier/torrentpier/commit/92ce77ec0ec703c08a659419087a373f76e711f7)) - ### ⚙️ Miscellaneous - *(Caddyfile)* Some minor fixes ([#1822](https://github.com/torrentpier/torrentpier/pull/1822)) - ([6f641aa](https://github.com/torrentpier/torrentpier/commit/6f641aa9d8d7afb30920c054a43347393ea05cc4)) @@ -121,7 +117,6 @@ - *(debug)* Disabled `Bugsnag` reporting on local environment ([#1751](https://github.com/torrentpier/torrentpier/pull/1751)) - ([1f3b629](https://github.com/torrentpier/torrentpier/commit/1f3b629e9cea4d11fbf3cf29f575ba730bad898d)) - *(installer)* Missing `gd` extension ([#1749](https://github.com/torrentpier/torrentpier/pull/1749)) - ([a1c519d](https://github.com/torrentpier/torrentpier/commit/a1c519d938b848edffcbf7fbbe6a3fdb9a5394f1)) - *(youtube player)* Mixed content issue ([#1795](https://github.com/torrentpier/torrentpier/pull/1795)) - ([3c0a1d5](https://github.com/torrentpier/torrentpier/commit/3c0a1d5d0018daa87ad3914ea04078a9a6d05fc2)) -- Null `$bb_cfg['tp_instance_hash']` ([#1790](https://github.com/torrentpier/torrentpier/pull/1790)) - ([602137b](https://github.com/torrentpier/torrentpier/commit/602137b65129b817811b80975a369ebde3270c6d)) - Incorrect peer country flag ([#1768](https://github.com/torrentpier/torrentpier/pull/1768)) - ([0f091eb](https://github.com/torrentpier/torrentpier/commit/0f091eb546e34923d9d1ab34be5faf92080ec198)) ### 📦 Dependencies @@ -145,7 +140,6 @@ - *(cd workflow)* Fixed release body creation ([#1809](https://github.com/torrentpier/torrentpier/pull/1809)) - ([7378cb3](https://github.com/torrentpier/torrentpier/commit/7378cb3af5cc56343c667a9d920038b05327e97b)) - *(cd workflow)* Fixed release body creation ([#1807](https://github.com/torrentpier/torrentpier/pull/1807)) - ([cc679a8](https://github.com/torrentpier/torrentpier/commit/cc679a80246f3ff65136653025d826bf1458db3a)) - *(changelog workflow)* Minor improvements ([#1802](https://github.com/torrentpier/torrentpier/pull/1802)) - ([15ca21f](https://github.com/torrentpier/torrentpier/commit/15ca21f03840281f7d4402959aa8bfb7d407b45b)) -- *(changelog workflow)* Some minor improvements ([#1801](https://github.com/torrentpier/torrentpier/pull/1801)) - ([2d53efc](https://github.com/torrentpier/torrentpier/commit/2d53efc945c7747be1755d0b66557a86bdc12cbd)) - *(checksum workflow)* Fixed incorrect file path ([#1799](https://github.com/torrentpier/torrentpier/pull/1799)) - ([4eb5a9a](https://github.com/torrentpier/torrentpier/commit/4eb5a9adc61c4e116feb09208091efb914275da2)) - *(cliff)* Changed emoji for dependencies ([#1755](https://github.com/torrentpier/torrentpier/pull/1755)) - ([55d4670](https://github.com/torrentpier/torrentpier/commit/55d467048370b51cd592982c8026702dca8813d5)) - *(cliff)* Use blockquote for notice ([#1748](https://github.com/torrentpier/torrentpier/pull/1748)) - ([61e5592](https://github.com/torrentpier/torrentpier/commit/61e55925f312417bdb63c88a7c8939c3b2eb2ac5)) From 974d3590c1fb11c6314da4a4b8115a2229e32bbd Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sat, 22 Mar 2025 12:52:06 +0700 Subject: [PATCH 030/216] misc(.cliffignore): Added one more commit (#1860) --- .cliffignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.cliffignore b/.cliffignore index 107377a5c..95600423e 100644 --- a/.cliffignore +++ b/.cliffignore @@ -2,3 +2,4 @@ 92ce77ec0ec703c08a659419087a373f76e711f7 2d53efc945c7747be1755d0b66557a86bdc12cbd 602137b65129b817811b80975a369ebde3270c6d +4eb26ae37e1f4c82a45961517ffeb54c20200408 From e9920ab59803552e3a1a00b603962208a62efe4e Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sat, 22 Mar 2025 15:21:30 +0700 Subject: [PATCH 031/216] misc(README): Removed `Build actions` badge (#1861) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 4f694bc66..374dd9a21 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,6 @@

License Stars Packagist - Build status Crowdin TorrentPier nightly Downloads From 83e42bc5db086f60a6038b3fffca5982ceeced51 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sat, 22 Mar 2025 16:19:29 +0700 Subject: [PATCH 032/216] misc(render_flag): Hide names for specified (`$nameIgnoreList`) flags (#1862) --- library/includes/functions.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/library/includes/functions.php b/library/includes/functions.php index 5ed6e33cc..1957bf992 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -1184,14 +1184,21 @@ function render_flag(string $code, bool $showName = true): string global $lang; static $iconExtension = '.svg'; + $nameIgnoreList = [ + 'WBW', + 'PACE', + 'LGBT' + ]; + if (isset($lang['COUNTRIES'][$code])) { if ($code === '0') { return ''; // No selected } else { $flagIconPath = BB_ROOT . 'styles/images/flags/' . $code . $iconExtension; if (is_file($flagIconPath)) { - $countryName = $showName ? ' ' . str_short($lang['COUNTRIES'][$code], 20) : ''; - return '' . $code . '' . $countryName . ''; + $langName = $lang['COUNTRIES'][$code]; + $countryName = ($showName && !in_array($code, $nameIgnoreList)) ? ' ' . str_short($langName, 20) : ''; + return '' . $code . '' . $countryName . ''; } } } From 1523a37feaac0b70fb104f8392bc54b531e6d255 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Sun, 23 Mar 2025 01:36:27 +0000 Subject: [PATCH 033/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e95d6f60d..9f0e61825 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,8 +29,11 @@ ### ⚙️ Miscellaneous +- *(.cliffignore)* Added one more commit ([#1860](https://github.com/torrentpier/torrentpier/pull/1860)) - ([974d359](https://github.com/torrentpier/torrentpier/commit/974d3590c1fb11c6314da4a4b8115a2229e32bbd)) +- *(README)* Removed `Build actions` badge ([#1861](https://github.com/torrentpier/torrentpier/pull/1861)) - ([e9920ab](https://github.com/torrentpier/torrentpier/commit/e9920ab59803552e3a1a00b603962208a62efe4e)) - *(cliff)* Added `.cliffignore` file to ignore reverted commits ([#1859](https://github.com/torrentpier/torrentpier/pull/1859)) - ([2eab551](https://github.com/torrentpier/torrentpier/commit/2eab551bd75e7acfd6f4dabe13b2a30ac09db880)) - *(nightly builds)* Added cleanup step ([#1851](https://github.com/torrentpier/torrentpier/pull/1851)) - ([299d9a1](https://github.com/torrentpier/torrentpier/commit/299d9a1f6c4f244e435803212e763c252e5bd396)) +- *(render_flag)* Hide names for specified (`$nameIgnoreList`) flags ([#1862](https://github.com/torrentpier/torrentpier/pull/1862)) - ([83e42bc](https://github.com/torrentpier/torrentpier/commit/83e42bc5db086f60a6038b3fffca5982ceeced51)) - *(text captcha)* Disabled scatter effect by default - ([3af5202](https://github.com/torrentpier/torrentpier/commit/3af5202f7b2a4ea5d14bbc4808b7a380de2e0dc0)) - Some minor improvements ([#1855](https://github.com/torrentpier/torrentpier/pull/1855)) - ([3cc880e](https://github.com/torrentpier/torrentpier/commit/3cc880eeb8be41596d5e8eaf19297046500afcf7)) @@ -167,10 +170,6 @@ - Minor improvements ([#1743](https://github.com/torrentpier/torrentpier/pull/1743)) - ([e73d650](https://github.com/torrentpier/torrentpier/commit/e73d65011fff0a8b8e1368eef61bbfb67e87eab8)) - Enabled `$bb_cfg['integrity_check']` by defaul ([#1742](https://github.com/torrentpier/torrentpier/pull/1742)) - ([7e3601e](https://github.com/torrentpier/torrentpier/commit/7e3601e63aff73be1428969ca37dda3da2537d9b)) -### ◀️ Revert - -- Fix: Null `$bb_cfg['tp_instance_hash']` ([#1792](https://github.com/torrentpier/torrentpier/pull/1792)) - ([4eb26ae](https://github.com/torrentpier/torrentpier/commit/4eb26ae37e1f4c82a45961517ffeb54c20200408)) - ## New Contributors ❤️ * @actions-user made their first contribution From de2fceabedefd07441ba6801417157a9828e0e2a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Mar 2025 13:23:32 +0700 Subject: [PATCH 034/216] Composer(deps): Bump php-curl-class/php-curl-class from 11.0.5 to 11.1.0 (#1864) Bumps [php-curl-class/php-curl-class](https://github.com/php-curl-class/php-curl-class) from 11.0.5 to 11.1.0. - [Release notes](https://github.com/php-curl-class/php-curl-class/releases) - [Changelog](https://github.com/php-curl-class/php-curl-class/blob/master/CHANGELOG.md) - [Commits](https://github.com/php-curl-class/php-curl-class/compare/11.0.5...11.1.0) --- updated-dependencies: - dependency-name: php-curl-class/php-curl-class dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/composer.lock b/composer.lock index a7f7f028b..00414b6ed 100644 --- a/composer.lock +++ b/composer.lock @@ -2153,16 +2153,16 @@ }, { "name": "php-curl-class/php-curl-class", - "version": "11.0.5", + "version": "11.1.0", "source": { "type": "git", "url": "https://github.com/php-curl-class/php-curl-class.git", - "reference": "01a0e43fb66094c8764a84680b67179e08cce9c2" + "reference": "062f58613524947451efdb3dd7d7217719670a9f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-curl-class/php-curl-class/zipball/01a0e43fb66094c8764a84680b67179e08cce9c2", - "reference": "01a0e43fb66094c8764a84680b67179e08cce9c2", + "url": "https://api.github.com/repos/php-curl-class/php-curl-class/zipball/062f58613524947451efdb3dd7d7217719670a9f", + "reference": "062f58613524947451efdb3dd7d7217719670a9f", "shasum": "" }, "require": { @@ -2227,9 +2227,9 @@ ], "support": { "issues": "https://github.com/php-curl-class/php-curl-class/issues", - "source": "https://github.com/php-curl-class/php-curl-class/tree/11.0.5" + "source": "https://github.com/php-curl-class/php-curl-class/tree/11.1.0" }, - "time": "2025-03-11T18:04:20+00:00" + "time": "2025-03-24T18:04:25+00:00" }, { "name": "php-http/discovery", From 64401621879af0cc445c38687c571d2fec184410 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Mar 2025 13:23:47 +0700 Subject: [PATCH 035/216] Composer(deps): Bump monolog/monolog from 3.8.1 to 3.9.0 (#1865) Bumps [monolog/monolog](https://github.com/Seldaek/monolog) from 3.8.1 to 3.9.0. - [Release notes](https://github.com/Seldaek/monolog/releases) - [Changelog](https://github.com/Seldaek/monolog/blob/main/CHANGELOG.md) - [Commits](https://github.com/Seldaek/monolog/compare/3.8.1...3.9.0) --- updated-dependencies: - dependency-name: monolog/monolog dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/composer.lock b/composer.lock index 00414b6ed..5a139899e 100644 --- a/composer.lock +++ b/composer.lock @@ -1956,16 +1956,16 @@ }, { "name": "monolog/monolog", - "version": "3.8.1", + "version": "3.9.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "aef6ee73a77a66e404dd6540934a9ef1b3c855b4" + "reference": "10d85740180ecba7896c87e06a166e0c95a0e3b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/aef6ee73a77a66e404dd6540934a9ef1b3c855b4", - "reference": "aef6ee73a77a66e404dd6540934a9ef1b3c855b4", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/10d85740180ecba7896c87e06a166e0c95a0e3b6", + "reference": "10d85740180ecba7896c87e06a166e0c95a0e3b6", "shasum": "" }, "require": { @@ -2043,7 +2043,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.8.1" + "source": "https://github.com/Seldaek/monolog/tree/3.9.0" }, "funding": [ { @@ -2055,7 +2055,7 @@ "type": "tidelift" } ], - "time": "2024-12-05T17:15:07+00:00" + "time": "2025-03-24T10:02:05+00:00" }, { "name": "nemorize/indexnow", From 1b288a96e443e06c4f4e9ea374037d3b0af8a639 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Tue, 25 Mar 2025 13:48:52 +0300 Subject: [PATCH 036/216] =?UTF-8?q?revert:=20Added=20`IndexNow`=20protocol?= =?UTF-8?q?=20support=20=F0=9F=A4=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 - composer.json | 1 - composer.lock | 48 +---------- library/config.php | 6 -- .../includes/cron/jobs/board_maintenance.php | 9 -- src/IndexNow.php | 86 ------------------- src/Legacy/Post.php | 7 -- 7 files changed, 3 insertions(+), 155 deletions(-) delete mode 100644 src/IndexNow.php diff --git a/.gitignore b/.gitignore index 2af16db7d..dd0e1f365 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,6 @@ ### TorrentPier ### *.log -/*.txt install.php_* composer-setup.php .env diff --git a/composer.json b/composer.json index 82f829c9b..51b0f2780 100644 --- a/composer.json +++ b/composer.json @@ -57,7 +57,6 @@ "egulias/email-validator": "^4.0.1", "filp/whoops": "^2.15", "z4kn4fein/php-semver": "^v3.0.0", - "nemorize/indexnow": "^0.0.1", "gigablah/sphinxphp": "2.0.8", "google/recaptcha": "^1.3", "jacklul/monolog-telegram": "^3.1", diff --git a/composer.lock b/composer.lock index 5a139899e..917724db8 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "c1e345a7abe58feb13d951acfd499e95", + "content-hash": "ed0c6f72e121f5b35712c0855bc64a82", "packages": [ { "name": "arokettu/bencode", @@ -2057,48 +2057,6 @@ ], "time": "2025-03-24T10:02:05+00:00" }, - { - "name": "nemorize/indexnow", - "version": "0.0.1", - "source": { - "type": "git", - "url": "https://github.com/nemorize/php-indexnow.git", - "reference": "7602a8ae1de0cf1dd11692a7627f10111c55731a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nemorize/php-indexnow/zipball/7602a8ae1de0cf1dd11692a7627f10111c55731a", - "reference": "7602a8ae1de0cf1dd11692a7627f10111c55731a", - "shasum": "" - }, - "require": { - "guzzlehttp/guzzle": "^7.7", - "php": ">=8.1" - }, - "type": "library", - "autoload": { - "psr-4": { - "Nemorize\\Indexnow\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ji Yong, Kim", - "email": "nemo@qroffle.com" - } - ], - "description": "PHP library for submitting website URLs using IndexNow to search engines.", - "support": { - "issues": "https://github.com/nemorize/php-indexnow/issues", - "source": "https://github.com/nemorize/php-indexnow/tree/0.0.1" - }, - "abandoned": true, - "time": "2023-07-31T17:08:12+00:00" - }, { "name": "nikic/iter", "version": "v2.4.1", @@ -3854,6 +3812,6 @@ "platform": { "php": "^8.1 | ^8.2 | ^8.3 | ^8.4" }, - "platform-dev": [], - "plugin-api-version": "2.3.0" + "platform-dev": {}, + "plugin-api-version": "2.6.0" } diff --git a/library/config.php b/library/config.php index 4a1792e2a..af87d3ace 100644 --- a/library/config.php +++ b/library/config.php @@ -144,12 +144,6 @@ $bb_cfg['torr_server'] = [ 'disable_for_guest' => true ]; -// IndexNow settings -$bb_cfg['indexnow_settings'] = [ - 'enabled' => false, - 'host' => 'bing', // Available: yandex, bing, seznam, naver -]; - // FAQ url help link $bb_cfg['how_to_download_url_help'] = 'viewtopic.php?t=1'; // How to download? $bb_cfg['what_is_torrent_url_help'] = 'viewtopic.php?t=2'; // What is a torrent? diff --git a/library/includes/cron/jobs/board_maintenance.php b/library/includes/cron/jobs/board_maintenance.php index 8c47d34fb..74b28809c 100644 --- a/library/includes/cron/jobs/board_maintenance.php +++ b/library/includes/cron/jobs/board_maintenance.php @@ -64,14 +64,5 @@ if (empty($bb_cfg['tp_instance_hash']) || ($bb_cfg['tp_instance_hash'] !== hash( bb_update_config(['tp_instance_hash' => hash('xxh128', FULL_URL)]); } -// Generate IndexNow key -if ($bb_cfg['indexnow_settings']['enabled'] && !is_file(BB_ROOT . $bb_cfg['indexnow_key'] . \TorrentPier\IndexNow::$keyFileExtension)) { - $randomIndexNowKey = empty($bb_cfg['indexnow_key']) ? make_rand_str(rand(64, 128)) : $bb_cfg['indexnow_key']; - if ($bb_cfg['indexnow_key'] !== $randomIndexNowKey) { - bb_update_config(['indexnow_key' => $randomIndexNowKey]); - } - file_write($randomIndexNowKey, (BB_ROOT . $randomIndexNowKey . \TorrentPier\IndexNow::$keyFileExtension)); -} - // Check for updates $datastore->update('check_updates'); diff --git a/src/IndexNow.php b/src/IndexNow.php deleted file mode 100644 index e0e2ad9a1..000000000 --- a/src/IndexNow.php +++ /dev/null @@ -1,86 +0,0 @@ - 'yandex.com', - 'bing' => 'bing.com', - 'seznam' => 'search.seznam.cz', - 'naver' => 'searchadvisor.naver.com' - ]; - - /** - * IndexNow constructor - */ - public function __construct() - { - global $bb_cfg; - - $this->indexNow = new \Nemorize\Indexnow\Indexnow(); - $this->indexNow->setKey($bb_cfg['indexnow_key']); - if (in_array($bb_cfg['indexnow_settings']['host'], array_keys($this->hosts))) { - $this->indexNow->setHost($this->hosts[$bb_cfg['indexnow_settings']['host']]); - } else { - bb_log("IndexNow (ERROR): Invalid host: {$bb_cfg['indexnow_settings']['host']}\n", self::$logFile); - bb_die('Invalid host: ' . $bb_cfg['indexnow_settings']['host']); - } - $this->indexNow->setKeyLocation(FULL_URL . $bb_cfg['indexnow_key'] . self::$keyFileExtension); - } - - /** - * Submit page to IndexNow - * - * @param string $url - * @return void - */ - public function submit(string $url): void - { - try { - $this->indexNow->submit($url); - } catch (IndexnowException $e) { - bb_log("IndexNow (ERROR) [$url]: Message: {$e->getMessage()}\n", self::$logFile); - bb_die($e->getMessage()); - } - } -} diff --git a/src/Legacy/Post.php b/src/Legacy/Post.php index b82a03d86..a44b147d3 100644 --- a/src/Legacy/Post.php +++ b/src/Legacy/Post.php @@ -10,7 +10,6 @@ namespace TorrentPier\Legacy; use TorrentPier\Emailer; -use TorrentPier\IndexNow; use TorrentPier\Legacy\Admin\Common; use TorrentPier\Validate; @@ -221,12 +220,6 @@ class Post } } - // Send IndexNow - if ($bb_cfg['indexnow_settings']['enabled'] && ($mode === 'newtopic' || $mode === 'editpost')) { - $indexNow = new IndexNow(); - $indexNow->submit(FULL_URL . POST_URL . "$post_id#$post_id"); - } - meta_refresh(POST_URL . "$post_id#$post_id"); set_die_append_msg($forum_id, $topic_id); From eabf851ee60d29835d1979f46dcf2b9d82576c1b Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Tue, 25 Mar 2025 14:02:35 +0300 Subject: [PATCH 037/216] revert: Added `TorrentPier instance hash` generation --- README.md | 1 - install/sql/mysql.sql | 3 +-- install/upgrade/legacy-changes.txt | 1 + library/includes/cron/jobs/board_maintenance.php | 5 ----- library/includes/init_bb.php | 5 ----- src/Updater.php | 2 +- 6 files changed, 3 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 374dd9a21..8bb82d3db 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,6 @@ and go from there. The documentation will be translated to english in the near f * High-load capable, heavily configurable announcer * Scrape support * FreeLeech -* [IndexNow](https://www.indexnow.org) support * [TorrServer integration](https://github.com/YouROK/TorrServer) support * BitTorrent v2 support * Event-based invite system diff --git a/install/sql/mysql.sql b/install/sql/mysql.sql index c13b460f3..23ed26841 100644 --- a/install/sql/mysql.sql +++ b/install/sql/mysql.sql @@ -600,8 +600,7 @@ VALUES ('allow_autologin', '1'), ('premod', '0'), ('tor_comment', '1'), ('terms', ''), - ('show_board_start_index', '1'), - ('tp_instance_hash', ''); + ('show_board_start_index', '1'); -- ---------------------------- -- Table structure for `bb_cron` diff --git a/install/upgrade/legacy-changes.txt b/install/upgrade/legacy-changes.txt index b7fbc92e0..cb5dfa239 100644 --- a/install/upgrade/legacy-changes.txt +++ b/install/upgrade/legacy-changes.txt @@ -154,3 +154,4 @@ INSERT INTO `bb_config` VALUES ('magnet_links_for_guests', '0'); INSERT INTO `bb_config` VALUES ('tp_instance_hash', ''); // 2.4.5 +DELETE FROM `bb_config` WHERE `config_name` = 'tp_instance_hash'; diff --git a/library/includes/cron/jobs/board_maintenance.php b/library/includes/cron/jobs/board_maintenance.php index 74b28809c..de789f9f8 100644 --- a/library/includes/cron/jobs/board_maintenance.php +++ b/library/includes/cron/jobs/board_maintenance.php @@ -59,10 +59,5 @@ if (IN_DEMO_MODE) { DB()->query("UPDATE " . BB_FORUMS . " SET allow_reg_tracker = 1 WHERE allow_reg_tracker = 0 AND forum_id = 1 LIMIT 1"); } -// Create unique TorrentPier instance hash -if (empty($bb_cfg['tp_instance_hash']) || ($bb_cfg['tp_instance_hash'] !== hash('xxh128', FULL_URL))) { - bb_update_config(['tp_instance_hash' => hash('xxh128', FULL_URL)]); -} - // Check for updates $datastore->update('check_updates'); diff --git a/library/includes/init_bb.php b/library/includes/init_bb.php index 05d51880c..e9ba19f4b 100644 --- a/library/includes/init_bb.php +++ b/library/includes/init_bb.php @@ -397,11 +397,6 @@ $user = new TorrentPier\Legacy\Common\User(); $userdata =& $user->data; -/** - * Some shared defines - */ -define('TP_INSTANCE_HASH', $bb_cfg['tp_instance_hash']); - /** * Cron */ diff --git a/src/Updater.php b/src/Updater.php index f41277239..5ccba7843 100644 --- a/src/Updater.php +++ b/src/Updater.php @@ -45,7 +45,7 @@ class Updater */ private const STREAM_CONTEXT = [ 'http' => [ - 'header' => 'User-Agent: ' . APP_NAME . '-' . TP_INSTANCE_HASH, + 'header' => 'User-Agent: ' . APP_NAME . '-' . TIMENOW, 'timeout' => 10, 'ignore_errors' => true ] From ab4602e38fea57f55417eefeb0267e50921b8fe5 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Wed, 26 Mar 2025 01:24:34 +0000 Subject: [PATCH 038/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f0e61825..c73421361 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,8 @@ ### 📦 Dependencies +- *(deps)* Bump monolog/monolog from 3.8.1 to 3.9.0 ([#1865](https://github.com/torrentpier/torrentpier/pull/1865)) - ([6440162](https://github.com/torrentpier/torrentpier/commit/64401621879af0cc445c38687c571d2fec184410)) +- *(deps)* Bump php-curl-class/php-curl-class from 11.0.5 to 11.1.0 ([#1864](https://github.com/torrentpier/torrentpier/pull/1864)) - ([de2fcea](https://github.com/torrentpier/torrentpier/commit/de2fceabedefd07441ba6801417157a9828e0e2a)) - *(deps)* Bump egulias/email-validator from 4.0.3 to 4.0.4 ([#1858](https://github.com/torrentpier/torrentpier/pull/1858)) - ([3ced460](https://github.com/torrentpier/torrentpier/commit/3ced460640e4bfe27a91acd0408e73c3c49e1534)) - *(deps)* Bump filp/whoops from 2.17.0 to 2.18.0 ([#1853](https://github.com/torrentpier/torrentpier/pull/1853)) - ([7ca0582](https://github.com/torrentpier/torrentpier/commit/7ca058256186b7b690003308d660a3a6271e84d2)) - *(deps)* Bump php-curl-class/php-curl-class from 11.0.4 to 11.0.5 ([#1849](https://github.com/torrentpier/torrentpier/pull/1849)) - ([37ad07a](https://github.com/torrentpier/torrentpier/commit/37ad07a40c1adf29f712f469d2850753d32a5eb9)) @@ -37,6 +39,11 @@ - *(text captcha)* Disabled scatter effect by default - ([3af5202](https://github.com/torrentpier/torrentpier/commit/3af5202f7b2a4ea5d14bbc4808b7a380de2e0dc0)) - Some minor improvements ([#1855](https://github.com/torrentpier/torrentpier/pull/1855)) - ([3cc880e](https://github.com/torrentpier/torrentpier/commit/3cc880eeb8be41596d5e8eaf19297046500afcf7)) +### ◀️ Revert + +- Added `TorrentPier instance hash` generation - ([eabf851](https://github.com/torrentpier/torrentpier/commit/eabf851ee60d29835d1979f46dcf2b9d82576c1b)) +- Added `IndexNow` protocol support 🤖 - ([1b288a9](https://github.com/torrentpier/torrentpier/commit/1b288a96e443e06c4f4e9ea374037d3b0af8a639)) + ## [v2.4.5-rc.4](https://github.com/torrentpier/torrentpier/compare/v2.4.5-rc.3..v2.4.5-rc.4) (2025-03-09) From bd5aa2a5e71560409bc630ea2334e33c77458ab3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Mar 2025 13:28:20 +0700 Subject: [PATCH 039/216] Composer(deps): Bump php-curl-class/php-curl-class from 11.1.0 to 12.0.0 (#1868) Bumps [php-curl-class/php-curl-class](https://github.com/php-curl-class/php-curl-class) from 11.1.0 to 12.0.0. - [Release notes](https://github.com/php-curl-class/php-curl-class/releases) - [Changelog](https://github.com/php-curl-class/php-curl-class/blob/master/CHANGELOG.md) - [Commits](https://github.com/php-curl-class/php-curl-class/compare/11.1.0...12.0.0) --- updated-dependencies: - dependency-name: php-curl-class/php-curl-class dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.json | 2 +- composer.lock | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/composer.json b/composer.json index 51b0f2780..599cd5ae4 100644 --- a/composer.json +++ b/composer.json @@ -62,7 +62,7 @@ "jacklul/monolog-telegram": "^3.1", "josantonius/cookie": "^2.0", "gemorroj/m3u-parser": "dev-master", - "php-curl-class/php-curl-class": "^11.0.0", + "php-curl-class/php-curl-class": "^12.0.0", "league/flysystem": "^3.28", "longman/ip-tools": "1.2.1", "matthiasmullie/scrapbook": "^1.5.4", diff --git a/composer.lock b/composer.lock index 917724db8..c244f2380 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "ed0c6f72e121f5b35712c0855bc64a82", + "content-hash": "a906f822bca0d03bee43a9efe8529350", "packages": [ { "name": "arokettu/bencode", @@ -2111,21 +2111,21 @@ }, { "name": "php-curl-class/php-curl-class", - "version": "11.1.0", + "version": "12.0.0", "source": { "type": "git", "url": "https://github.com/php-curl-class/php-curl-class.git", - "reference": "062f58613524947451efdb3dd7d7217719670a9f" + "reference": "7a8f05efb18bb865dbce864b8fd34d4f5d920c74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-curl-class/php-curl-class/zipball/062f58613524947451efdb3dd7d7217719670a9f", - "reference": "062f58613524947451efdb3dd7d7217719670a9f", + "url": "https://api.github.com/repos/php-curl-class/php-curl-class/zipball/7a8f05efb18bb865dbce864b8fd34d4f5d920c74", + "reference": "7a8f05efb18bb865dbce864b8fd34d4f5d920c74", "shasum": "" }, "require": { "ext-curl": "*", - "php": ">=7.4" + "php": ">=8.0" }, "require-dev": { "dealerdirect/phpcodesniffer-composer-installer": "*", @@ -2185,9 +2185,9 @@ ], "support": { "issues": "https://github.com/php-curl-class/php-curl-class/issues", - "source": "https://github.com/php-curl-class/php-curl-class/tree/11.1.0" + "source": "https://github.com/php-curl-class/php-curl-class/tree/12.0.0" }, - "time": "2025-03-24T18:04:25+00:00" + "time": "2025-03-25T18:04:16+00:00" }, { "name": "php-http/discovery", @@ -3812,6 +3812,6 @@ "platform": { "php": "^8.1 | ^8.2 | ^8.3 | ^8.4" }, - "platform-dev": {}, - "plugin-api-version": "2.6.0" + "platform-dev": [], + "plugin-api-version": "2.3.0" } From 83c03ae08ea1056ee9147b6301a982946ad54f5f Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Thu, 27 Mar 2025 01:24:16 +0000 Subject: [PATCH 040/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c73421361..49c3d6cc7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ ### 📦 Dependencies +- *(deps)* Bump php-curl-class/php-curl-class from 11.1.0 to 12.0.0 ([#1868](https://github.com/torrentpier/torrentpier/pull/1868)) - ([bd5aa2a](https://github.com/torrentpier/torrentpier/commit/bd5aa2a5e71560409bc630ea2334e33c77458ab3)) - *(deps)* Bump monolog/monolog from 3.8.1 to 3.9.0 ([#1865](https://github.com/torrentpier/torrentpier/pull/1865)) - ([6440162](https://github.com/torrentpier/torrentpier/commit/64401621879af0cc445c38687c571d2fec184410)) - *(deps)* Bump php-curl-class/php-curl-class from 11.0.5 to 11.1.0 ([#1864](https://github.com/torrentpier/torrentpier/pull/1864)) - ([de2fcea](https://github.com/torrentpier/torrentpier/commit/de2fceabedefd07441ba6801417157a9828e0e2a)) - *(deps)* Bump egulias/email-validator from 4.0.3 to 4.0.4 ([#1858](https://github.com/torrentpier/torrentpier/pull/1858)) - ([3ced460](https://github.com/torrentpier/torrentpier/commit/3ced460640e4bfe27a91acd0408e73c3c49e1534)) From 72376532b32395eda04dc032c07ca08b27346c6b Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Fri, 28 Mar 2025 01:29:49 +0700 Subject: [PATCH 041/216] misc: Minor improvements (#1866) * misc: Minor improvements * Update _cleanup.php * Update TorrServerAPI.php * Update TorrServerAPI.php --- _cleanup.php | 1 + src/TorrServerAPI.php | 17 +++++------------ 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/_cleanup.php b/_cleanup.php index 3b292c216..cbaf5deac 100644 --- a/_cleanup.php +++ b/_cleanup.php @@ -18,6 +18,7 @@ if (php_sapi_name() !== 'cli') { $items = [ '.github', + '.cliffignore', '.editorconfig', '.gitignore', '.styleci.yml', diff --git a/src/TorrServerAPI.php b/src/TorrServerAPI.php index 4fdfb6e14..3764c56e6 100644 --- a/src/TorrServerAPI.php +++ b/src/TorrServerAPI.php @@ -47,13 +47,6 @@ class TorrServerAPI 'extension' => '.m3u' ]; - /** - * Log filename - * - * @var string - */ - private string $logFile = 'torr_server'; - /** * TorrServer constructor */ @@ -92,7 +85,7 @@ class TorrServerAPI ]); $isSuccess = $curl->httpStatusCode === 200; if (!$isSuccess) { - bb_log("TorrServer (ERROR) [$this->url]: Response code: {$curl->httpStatusCode} | Content: {$curl->response}\n", $this->logFile); + bb_log("TorrServer (ERROR) [$this->url]: Response code: {$curl->httpStatusCode} | Content: {$curl->response}" . LOG_LF); } $curl->close(); @@ -147,7 +140,7 @@ class TorrServerAPI file_put_contents($m3uFile, $curl->response); } } else { - bb_log("TorrServer (ERROR) [$this->url]: Response code: {$curl->httpStatusCode} | Content: {$curl->response}\n", $this->logFile); + bb_log("TorrServer (ERROR) [$this->url]: Response code: {$curl->httpStatusCode} | Content: {$curl->response}" . LOG_LF); } $curl->close(); @@ -187,7 +180,7 @@ class TorrServerAPI if (unlink($m3uFile)) { return true; } else { - bb_log("TorrServer (ERROR) [removeM3U()]: Can't unlink file '$m3uFile'\n", $this->logFile); + bb_log("TorrServer (ERROR) [removeM3U()]: Can't unlink file '$m3uFile'" . LOG_LF); } } @@ -229,7 +222,7 @@ class TorrServerAPI if ($curl->httpStatusCode === 200 && !empty($response->{$index})) { CACHE('tr_cache')->set("ffprobe_m3u_$attach_id", $response, 3600); } else { - bb_log("TorrServer (ERROR) [$this->url]: Response code: {$curl->httpStatusCode}\n", $this->logFile); + bb_log("TorrServer (ERROR) [$this->url]: Response code: {$curl->httpStatusCode}" . LOG_LF); } $curl->close(); } @@ -254,7 +247,7 @@ class TorrServerAPI $curl->get($this->url . $this->endpoints['stream'], ['link' => $hash]); $isSuccess = $curl->httpStatusCode === 200; if (!$isSuccess) { - bb_log("TorrServer (ERROR) [$this->url]: Response code: {$curl->httpStatusCode} | Content: {$curl->response}\n", $this->logFile); + bb_log("TorrServer (ERROR) [$this->url]: Response code: {$curl->httpStatusCode} | Content: {$curl->response}" . LOG_LF); } $curl->close(); From 0a5d14fb6bd642ec43c1c0ebaa5f496873dd6895 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Fri, 28 Mar 2025 01:24:16 +0000 Subject: [PATCH 042/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 49c3d6cc7..157dabc80 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,6 +38,7 @@ - *(nightly builds)* Added cleanup step ([#1851](https://github.com/torrentpier/torrentpier/pull/1851)) - ([299d9a1](https://github.com/torrentpier/torrentpier/commit/299d9a1f6c4f244e435803212e763c252e5bd396)) - *(render_flag)* Hide names for specified (`$nameIgnoreList`) flags ([#1862](https://github.com/torrentpier/torrentpier/pull/1862)) - ([83e42bc](https://github.com/torrentpier/torrentpier/commit/83e42bc5db086f60a6038b3fffca5982ceeced51)) - *(text captcha)* Disabled scatter effect by default - ([3af5202](https://github.com/torrentpier/torrentpier/commit/3af5202f7b2a4ea5d14bbc4808b7a380de2e0dc0)) +- Minor improvements ([#1866](https://github.com/torrentpier/torrentpier/pull/1866)) - ([7237653](https://github.com/torrentpier/torrentpier/commit/72376532b32395eda04dc032c07ca08b27346c6b)) - Some minor improvements ([#1855](https://github.com/torrentpier/torrentpier/pull/1855)) - ([3cc880e](https://github.com/torrentpier/torrentpier/commit/3cc880eeb8be41596d5e8eaf19297046500afcf7)) ### ◀️ Revert From 84e23928968f943826bdc4390c52365357d56f32 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Mon, 31 Mar 2025 21:42:36 +0700 Subject: [PATCH 043/216] misc: Changed placeholder IP address from `7f000001` to `0` (#1869) --- library/includes/functions.php | 2 +- src/Legacy/Post.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/library/includes/functions.php b/library/includes/functions.php index 1957bf992..5ef3e8a43 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -1875,7 +1875,7 @@ function send_pm($user_id, $subject, $message, $poster_id = BOT_UID) $message = DB()->escape($message); if ($poster_id == BOT_UID) { - $poster_ip = '7f000001'; + $poster_ip = '0'; } elseif ($row = DB()->fetch_row("SELECT user_reg_ip FROM " . BB_USERS . " WHERE user_id = $poster_id")) { $poster_ip = $row['user_reg_ip']; } else { diff --git a/src/Legacy/Post.php b/src/Legacy/Post.php index a44b147d3..0a08cb3d2 100644 --- a/src/Legacy/Post.php +++ b/src/Legacy/Post.php @@ -437,7 +437,7 @@ class Post $post_time = TIMENOW; $poster_id = BOT_UID; - $poster_ip = '7f000001'; + $poster_ip = '0'; if ($mode == 'after_move') { if (!$forum_id || !$old_forum_id) { From 12792e74f71a57448277dda46471563a7fea71db Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Mon, 31 Mar 2025 21:50:07 +0700 Subject: [PATCH 044/216] fix: Fixed TorrentPier build-in emojis showing in ACP (#1870) --- src/Legacy/BBCode.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Legacy/BBCode.php b/src/Legacy/BBCode.php index b191e8f51..642ccfc5b 100644 --- a/src/Legacy/BBCode.php +++ b/src/Legacy/BBCode.php @@ -341,6 +341,12 @@ class BBCode $this->smilies = $datastore->get('smile_replacements'); } + if (defined('IN_ADMIN')) { + foreach ($this->smilies['repl'] as &$smile) { + $smile = preg_replace('/src="([^"]+)"/', 'src="./../$1"', $smile); + } + } + if ($this->smilies) { /** @noinspection NestedPositiveIfStatementsInspection */ if ($parsed_text = preg_replace($this->smilies['orig'], $this->smilies['repl'], $text)) { From 595adbe4da5296b0f3ebde6628e58e878c0fb7d5 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Mon, 31 Mar 2025 23:54:53 +0700 Subject: [PATCH 045/216] fix: `tablesorting` issues & incorrect `user_role` for pending users (#1871) --- group.php | 2 +- styles/templates/default/group.tpl | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/group.php b/group.php index 237b12357..b674c823d 100644 --- a/group.php +++ b/group.php @@ -573,7 +573,7 @@ if (!$group_id) { $template->assign_block_vars('pending', [ 'ROW_CLASS' => $row_class, 'AVATAR_IMG' => $pending_info['avatar'], - 'USER' => profile_url($pending_info), + 'USER' => profile_url($member), 'FROM' => $pending_info['from'], 'JOINED' => $pending_info['joined'], 'JOINED_RAW' => $pending_info['joined_raw'], diff --git a/styles/templates/default/group.tpl b/styles/templates/default/group.tpl index 295c14f92..25a8305e9 100644 --- a/styles/templates/default/group.tpl +++ b/styles/templates/default/group.tpl @@ -228,7 +228,7 @@ - +
@@ -253,7 +253,7 @@ - + From 0e725371881e927cded4bdaf058d9f770e60785c Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Mon, 31 Mar 2025 17:17:00 +0000 Subject: [PATCH 046/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 157dabc80..532b63d9d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,11 @@ - *(emailer)* Added ability to configure `sendmail` - ([5ad4a70](https://github.com/torrentpier/torrentpier/commit/5ad4a7019d996d468650ab608ab53d6cf3ebb4f5)) - *(playback_m3u.php)* Added checking auth to download ([#1848](https://github.com/torrentpier/torrentpier/pull/1848)) - ([0b8d8a5](https://github.com/torrentpier/torrentpier/commit/0b8d8a5210ee761dddaa57fc48bb48b0ede1ec3c)) +### 🐛 Bug Fixes + +- `tablesorting` issues & incorrect `user_role` for pending users ([#1871](https://github.com/torrentpier/torrentpier/pull/1871)) - ([595adbe](https://github.com/torrentpier/torrentpier/commit/595adbe4da5296b0f3ebde6628e58e878c0fb7d5)) +- Fixed TorrentPier build-in emojis showing in ACP ([#1870](https://github.com/torrentpier/torrentpier/pull/1870)) - ([12792e7](https://github.com/torrentpier/torrentpier/commit/12792e74f71a57448277dda46471563a7fea71db)) + ### 📦 Dependencies - *(deps)* Bump php-curl-class/php-curl-class from 11.1.0 to 12.0.0 ([#1868](https://github.com/torrentpier/torrentpier/pull/1868)) - ([bd5aa2a](https://github.com/torrentpier/torrentpier/commit/bd5aa2a5e71560409bc630ea2334e33c77458ab3)) @@ -38,6 +43,7 @@ - *(nightly builds)* Added cleanup step ([#1851](https://github.com/torrentpier/torrentpier/pull/1851)) - ([299d9a1](https://github.com/torrentpier/torrentpier/commit/299d9a1f6c4f244e435803212e763c252e5bd396)) - *(render_flag)* Hide names for specified (`$nameIgnoreList`) flags ([#1862](https://github.com/torrentpier/torrentpier/pull/1862)) - ([83e42bc](https://github.com/torrentpier/torrentpier/commit/83e42bc5db086f60a6038b3fffca5982ceeced51)) - *(text captcha)* Disabled scatter effect by default - ([3af5202](https://github.com/torrentpier/torrentpier/commit/3af5202f7b2a4ea5d14bbc4808b7a380de2e0dc0)) +- Changed placeholder IP address from `7f000001` to `0` ([#1869](https://github.com/torrentpier/torrentpier/pull/1869)) - ([84e2392](https://github.com/torrentpier/torrentpier/commit/84e23928968f943826bdc4390c52365357d56f32)) - Minor improvements ([#1866](https://github.com/torrentpier/torrentpier/pull/1866)) - ([7237653](https://github.com/torrentpier/torrentpier/commit/72376532b32395eda04dc032c07ca08b27346c6b)) - Some minor improvements ([#1855](https://github.com/torrentpier/torrentpier/pull/1855)) - ([3cc880e](https://github.com/torrentpier/torrentpier/commit/3cc880eeb8be41596d5e8eaf19297046500afcf7)) From 8358aa00de2ec9efd4c51b8bef11bd700a56c19c Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Tue, 1 Apr 2025 22:06:36 +0700 Subject: [PATCH 047/216] fix: Pagination issue in `Report on action` page (#1872) --- library/includes/functions.php | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/library/includes/functions.php b/library/includes/functions.php index 5ef3e8a43..800c17fef 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -1231,11 +1231,16 @@ function generate_pagination($base_url, $num_items, $per_page, $start_item, $add $total_pages = ceil($num_items / $per_page); $on_page = floor($start_item / $per_page) + 1; + $query_separator = '&'; + if (!str_contains($base_url, '?')) { + $query_separator = '?'; + } + $page_string = ''; if ($total_pages > ((2 * ($begin_end + $from_middle)) + 2)) { $init_page_max = ($total_pages > $begin_end) ? $begin_end : $total_pages; for ($i = 1; $i < $init_page_max + 1; $i++) { - $page_string .= ($i == $on_page) ? '' . $i . '' : '' . $i . ''; + $page_string .= ($i == $on_page) ? '' . $i . '' : '' . $i . ''; if ($i < $init_page_max) { $page_string .= ", "; } @@ -1249,7 +1254,7 @@ function generate_pagination($base_url, $num_items, $per_page, $start_item, $add $init_page_max = ($on_page < $total_pages - ($begin_end + $from_middle)) ? $on_page : $total_pages - ($begin_end + $from_middle); for ($i = $init_page_min - $from_middle; $i < $init_page_max + ($from_middle + 1); $i++) { - $page_string .= ($i == $on_page) ? '' . $i . '' : '' . $i . ''; + $page_string .= ($i == $on_page) ? '' . $i . '' : '' . $i . ''; if ($i < $init_page_max + $from_middle) { $page_string .= ', '; } @@ -1259,7 +1264,7 @@ function generate_pagination($base_url, $num_items, $per_page, $start_item, $add $page_string .= ' ... '; } for ($i = $total_pages - ($begin_end - 1); $i < $total_pages + 1; $i++) { - $page_string .= ($i == $on_page) ? '' . $i . '' : '' . $i . ''; + $page_string .= ($i == $on_page) ? '' . $i . '' : '' . $i . ''; if ($i < $total_pages) { $page_string .= ", "; } @@ -1267,7 +1272,7 @@ function generate_pagination($base_url, $num_items, $per_page, $start_item, $add } } else { for ($i = 1; $i < $total_pages + 1; $i++) { - $page_string .= ($i == $on_page) ? '' . $i . '' : '' . $i . ''; + $page_string .= ($i == $on_page) ? '' . $i . '' : '' . $i . ''; if ($i < $total_pages) { $page_string .= ', '; } @@ -1276,20 +1281,20 @@ function generate_pagination($base_url, $num_items, $per_page, $start_item, $add if ($add_prevnext_text) { if ($on_page > 1) { - $page_string = ' ' . $lang['PREVIOUS_PAGE'] . '  ' . $page_string; - $meta_prev_link = FULL_URL . $base_url . "&start=" . (($on_page - 2) * $per_page); + $page_string = ' ' . $lang['PREVIOUS_PAGE'] . '  ' . $page_string; + $meta_prev_link = FULL_URL . $base_url . "{$query_separator}start=" . (($on_page - 2) * $per_page); } if ($on_page < $total_pages) { - $page_string .= '  ' . $lang['NEXT_PAGE'] . ''; - $meta_next_link = FULL_URL . $base_url . "&start=" . ($on_page * $per_page); + $page_string .= '  ' . $lang['NEXT_PAGE'] . ''; + $meta_next_link = FULL_URL . $base_url . "{$query_separator}start=" . ($on_page * $per_page); } } $pagination = false; if ($page_string && $total_pages > 1) { $pagination = '' . $lang['GOTO_PAGE'] . ' :  ' . $page_string; - $pagination = str_replace('&start=0', '', $pagination); + $pagination = str_replace("{$query_separator}start=0", '', $pagination); } $template->assign_vars([ From f9c8160f8e897950a038a74ad7ee30b116f7b2b8 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Tue, 1 Apr 2025 22:40:47 +0700 Subject: [PATCH 048/216] misc: Fetch only necessary sitemap parameters in `admin_sitemap.php` (#1873) --- admin/admin_sitemap.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin/admin_sitemap.php b/admin/admin_sitemap.php index e40ebd307..3e3fd1fb6 100644 --- a/admin/admin_sitemap.php +++ b/admin/admin_sitemap.php @@ -14,7 +14,7 @@ if (!empty($setmodules)) { require __DIR__ . '/pagestart.php'; -$sql = 'SELECT * FROM ' . BB_CONFIG; +$sql = "SELECT * FROM " . BB_CONFIG . " WHERE config_name IN('sitemap_time', 'static_sitemap')"; if (!$result = DB()->sql_query($sql)) { bb_die('Could not query config information in admin_sitemap'); From 578a064303d1dd9ef31950377c9d2aef20b649e9 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Tue, 1 Apr 2025 15:44:55 +0000 Subject: [PATCH 049/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 532b63d9d..aee750ca0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ ### 🐛 Bug Fixes +- Pagination issue in `Report on action` page ([#1872](https://github.com/torrentpier/torrentpier/pull/1872)) - ([8358aa0](https://github.com/torrentpier/torrentpier/commit/8358aa00de2ec9efd4c51b8bef11bd700a56c19c)) - `tablesorting` issues & incorrect `user_role` for pending users ([#1871](https://github.com/torrentpier/torrentpier/pull/1871)) - ([595adbe](https://github.com/torrentpier/torrentpier/commit/595adbe4da5296b0f3ebde6628e58e878c0fb7d5)) - Fixed TorrentPier build-in emojis showing in ACP ([#1870](https://github.com/torrentpier/torrentpier/pull/1870)) - ([12792e7](https://github.com/torrentpier/torrentpier/commit/12792e74f71a57448277dda46471563a7fea71db)) @@ -43,6 +44,7 @@ - *(nightly builds)* Added cleanup step ([#1851](https://github.com/torrentpier/torrentpier/pull/1851)) - ([299d9a1](https://github.com/torrentpier/torrentpier/commit/299d9a1f6c4f244e435803212e763c252e5bd396)) - *(render_flag)* Hide names for specified (`$nameIgnoreList`) flags ([#1862](https://github.com/torrentpier/torrentpier/pull/1862)) - ([83e42bc](https://github.com/torrentpier/torrentpier/commit/83e42bc5db086f60a6038b3fffca5982ceeced51)) - *(text captcha)* Disabled scatter effect by default - ([3af5202](https://github.com/torrentpier/torrentpier/commit/3af5202f7b2a4ea5d14bbc4808b7a380de2e0dc0)) +- Fetch only necessary sitemap parameters in `admin_sitemap.php` ([#1873](https://github.com/torrentpier/torrentpier/pull/1873)) - ([f9c8160](https://github.com/torrentpier/torrentpier/commit/f9c8160f8e897950a038a74ad7ee30b116f7b2b8)) - Changed placeholder IP address from `7f000001` to `0` ([#1869](https://github.com/torrentpier/torrentpier/pull/1869)) - ([84e2392](https://github.com/torrentpier/torrentpier/commit/84e23928968f943826bdc4390c52365357d56f32)) - Minor improvements ([#1866](https://github.com/torrentpier/torrentpier/pull/1866)) - ([7237653](https://github.com/torrentpier/torrentpier/commit/72376532b32395eda04dc032c07ca08b27346c6b)) - Some minor improvements ([#1855](https://github.com/torrentpier/torrentpier/pull/1855)) - ([3cc880e](https://github.com/torrentpier/torrentpier/commit/3cc880eeb8be41596d5e8eaf19297046500afcf7)) From 0f1a69e32d8d5eb5053b021844845911c619d8cd Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Thu, 3 Apr 2025 23:16:08 +0700 Subject: [PATCH 050/216] misc: Minor improvements (#1874) --- library/attach_mod/displaying_torrent.php | 16 ++++++++-------- library/includes/functions.php | 4 ++-- library/includes/ucp/viewtorrent.php | 6 +++--- styles/templates/default/viewtopic_torrent.tpl | 4 +--- tracker.php | 4 ++-- 5 files changed, 16 insertions(+), 18 deletions(-) diff --git a/library/attach_mod/displaying_torrent.php b/library/attach_mod/displaying_torrent.php index 373b6b863..37fdd7f55 100644 --- a/library/attach_mod/displaying_torrent.php +++ b/library/attach_mod/displaying_torrent.php @@ -245,7 +245,7 @@ if ($tor_reged && $tor_info) { 'SHOW_DL_LIST' => true, 'SHOW_DL_LIST_TOR_INFO' => true, - 'TOR_SIZE' => humn_size($tor_size, 1), + 'TOR_SIZE' => humn_size($tor_size, 2), 'TOR_LONGEVITY' => delta_time($tor_info['reg_time']), 'TOR_DOWNLOAD_COUNT' => $download_count, 'TOR_COMPLETED' => $tor_completed_count, @@ -373,8 +373,8 @@ if ($tor_reged && $tor_info) { $peers = $tmp; $template->assign_vars([ - 'TOR_SPEED_UP' => ($tor_speed_up) ? humn_size($tor_speed_up, 0, 'KB') . '/s' : '0 KB/s', - 'TOR_SPEED_DOWN' => ($tor_speed_down) ? humn_size($tor_speed_down, 0, 'KB') . '/s' : '0 KB/s' + 'TOR_SPEED_UP' => ($tor_speed_up) ? humn_size($tor_speed_up, min: 'KB') . '/s' : '0 KB/s', + 'TOR_SPEED_DOWN' => ($tor_speed_down) ? humn_size($tor_speed_down, min: 'KB') . '/s' : '0 KB/s' ]); } @@ -407,7 +407,7 @@ if ($tor_reged && $tor_info) { $template->assign_block_vars((string)$x_full, [ 'SEED_ORD_ACT' => $seed_order_action, - 'SEEDERS_UP_TOT' => humn_size($sp_up_tot[$x], 0, 'KB') . '/s' + 'SEEDERS_UP_TOT' => humn_size($sp_up_tot[$x], min: 'KB') . '/s' ]); if ($ip) { @@ -429,8 +429,8 @@ if ($tor_reged && $tor_info) { $template->assign_block_vars((string)$x_full, [ 'LEECH_ORD_ACT' => $leech_order_action, - 'LEECHERS_UP_TOT' => humn_size($sp_up_tot[$x], 0, 'KB') . '/s', - 'LEECHERS_DOWN_TOT' => humn_size($sp_down_tot[$x], 0, 'KB') . '/s' + 'LEECHERS_UP_TOT' => humn_size($sp_up_tot[$x], min: 'KB') . '/s', + 'LEECHERS_DOWN_TOT' => humn_size($sp_down_tot[$x], min: 'KB') . '/s' ]); if ($ip) { @@ -449,8 +449,8 @@ if ($tor_reged && $tor_info) { $up_tot = ($p_max_up) ? humn_size($p_max_up) : '-'; $down_tot = ($p_max_down) ? humn_size($p_max_down) : '-'; $up_ratio = ($p_max_down) ? round(($p_max_up / $p_max_down), 2) : ''; - $sp_up = ($peer['speed_up']) ? humn_size($peer['speed_up'], 0, 'KB') . '/s' : '-'; - $sp_down = ($peer['speed_down']) ? humn_size($peer['speed_down'], 0, 'KB') . '/s' : '-'; + $sp_up = ($peer['speed_up']) ? humn_size($peer['speed_up'], min: 'KB') . '/s' : '-'; + $sp_down = ($peer['speed_down']) ? humn_size($peer['speed_down'], min: 'KB') . '/s' : '-'; $bgr_class = (!($tr[$x] % 2)) ? $bgr_class_1 : $bgr_class_2; $row_bgr = ($change_peers_bgr_over) ? " class=\"$bgr_class\" onmouseover=\"this.className='$bgr_class_over';\" onmouseout=\"this.className='$bgr_class';\"" : ''; diff --git a/library/includes/functions.php b/library/includes/functions.php index 800c17fef..0e1a2117a 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -876,8 +876,8 @@ function show_bt_userdata($user_id): void 'YS_BONUS' => humn_size($btu['up_bonus_yesterday']), 'YS_POINTS' => $btu['auth_key'] ? $btu['points_yesterday'] : '0.00', - 'SPEED_UP' => humn_size($btu['speed_up'], 0, 'KB') . '/s', - 'SPEED_DOWN' => humn_size($btu['speed_down'], 0, 'KB') . '/s', + 'SPEED_UP' => humn_size($btu['speed_up'], min: 'KB') . '/s', + 'SPEED_DOWN' => humn_size($btu['speed_down'], min: 'KB') . '/s', ]); } diff --git a/library/includes/ucp/viewtorrent.php b/library/includes/ucp/viewtorrent.php index cfcd3cc34..6878423b4 100644 --- a/library/includes/ucp/viewtorrent.php +++ b/library/includes/ucp/viewtorrent.php @@ -60,7 +60,7 @@ if ($releasing) { 'TOR_TYPE' => is_gold($row['tor_type']), 'TOPIC_SEEDERS' => ($row['seeders']) ?: 0, 'TOPIC_LEECHERS' => ($row['leechers']) ?: 0, - 'SPEED_UP' => ($row['speed_up']) ? humn_size($row['speed_up'], 0, 'KB') . '/s' : '-', + 'SPEED_UP' => ($row['speed_up']) ? humn_size($row['speed_up'], min: 'KB') . '/s' : '-', ]); $releasing_count++; @@ -80,7 +80,7 @@ if ($seeding) { 'TOR_TYPE' => is_gold($row['tor_type']), 'TOPIC_SEEDERS' => ($row['seeders']) ?: 0, 'TOPIC_LEECHERS' => ($row['leechers']) ?: 0, - 'SPEED_UP' => ($row['speed_up']) ? humn_size($row['speed_up'], 0, 'KB') . '/s' : '-', + 'SPEED_UP' => ($row['speed_up']) ? humn_size($row['speed_up'], min: 'KB') . '/s' : '-', ]); $seeding_count++; @@ -103,7 +103,7 @@ if ($leeching) { 'TOR_TYPE' => is_gold($row['tor_type']), 'TOPIC_SEEDERS' => ($row['seeders']) ?: 0, 'TOPIC_LEECHERS' => ($row['leechers']) ?: 0, - 'SPEED_DOWN' => ($row['speed_down']) ? humn_size($row['speed_down'], 0, 'KB') . '/s' : '-', + 'SPEED_DOWN' => ($row['speed_down']) ? humn_size($row['speed_down'], min: 'KB') . '/s' : '-', ]); $leeching_count++; diff --git a/styles/templates/default/viewtopic_torrent.tpl b/styles/templates/default/viewtopic_torrent.tpl index e7f8e8267..8d7b621e4 100644 --- a/styles/templates/default/viewtopic_torrent.tpl +++ b/styles/templates/default/viewtopic_torrent.tpl @@ -23,9 +23,7 @@ ajax.callback.callseed = function (data) { - + diff --git a/tracker.php b/tracker.php index 5f3c50d57..3675f7375 100644 --- a/tracker.php +++ b/tracker.php @@ -715,8 +715,8 @@ if ($allowed_forums) { $size = $tor['size']; $tor_magnet = create_magnet($tor['info_hash'], $tor['info_hash_v2'], \TorrentPier\Legacy\Torrent::getPasskey($user_id), html_ent_decode($tor['topic_title'])); $compl = $tor['complete_count']; - $dl_sp = $dl ? humn_size($dl, 0, 'KB') . '/s' : '0 KB/s'; - $ul_sp = $ul ? humn_size($ul, 0, 'KB') . '/s' : '0 KB/s'; + $dl_sp = $dl ? humn_size($dl, min: 'KB') . '/s' : '0 KB/s'; + $ul_sp = $ul ? humn_size($ul, min: 'KB') . '/s' : '0 KB/s'; $dl_class = isset($tor['dl_status']) ? $dl_link_css[$tor['dl_status']] : 'genmed'; $row_class = !($row_num & 1) ? $row_class_1 : $row_class_2; From 36ff584e69e4152a3961757c7ee4acffd8353006 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Fri, 4 Apr 2025 01:24:41 +0000 Subject: [PATCH 051/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index aee750ca0..96ffcf03c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -44,6 +44,7 @@ - *(nightly builds)* Added cleanup step ([#1851](https://github.com/torrentpier/torrentpier/pull/1851)) - ([299d9a1](https://github.com/torrentpier/torrentpier/commit/299d9a1f6c4f244e435803212e763c252e5bd396)) - *(render_flag)* Hide names for specified (`$nameIgnoreList`) flags ([#1862](https://github.com/torrentpier/torrentpier/pull/1862)) - ([83e42bc](https://github.com/torrentpier/torrentpier/commit/83e42bc5db086f60a6038b3fffca5982ceeced51)) - *(text captcha)* Disabled scatter effect by default - ([3af5202](https://github.com/torrentpier/torrentpier/commit/3af5202f7b2a4ea5d14bbc4808b7a380de2e0dc0)) +- Minor improvements ([#1874](https://github.com/torrentpier/torrentpier/pull/1874)) - ([0f1a69e](https://github.com/torrentpier/torrentpier/commit/0f1a69e32d8d5eb5053b021844845911c619d8cd)) - Fetch only necessary sitemap parameters in `admin_sitemap.php` ([#1873](https://github.com/torrentpier/torrentpier/pull/1873)) - ([f9c8160](https://github.com/torrentpier/torrentpier/commit/f9c8160f8e897950a038a74ad7ee30b116f7b2b8)) - Changed placeholder IP address from `7f000001` to `0` ([#1869](https://github.com/torrentpier/torrentpier/pull/1869)) - ([84e2392](https://github.com/torrentpier/torrentpier/commit/84e23928968f943826bdc4390c52365357d56f32)) - Minor improvements ([#1866](https://github.com/torrentpier/torrentpier/pull/1866)) - ([7237653](https://github.com/torrentpier/torrentpier/commit/72376532b32395eda04dc032c07ca08b27346c6b)) From 41a78ddbcbc628f0592c59879df0170bf48664aa Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sat, 5 Apr 2025 21:01:59 +0700 Subject: [PATCH 052/216] misc: Minor improvements (#1875) * misc: Minor improvements * Update activate.php * Update admin_ug_auth.php * Update admin_ug_auth.php * Update register.php * Update index.php * Update admin_ug_auth.php --- admin/admin_ug_auth.php | 10 +++++----- index.php | 2 +- library/includes/ucp/activate.php | 2 +- library/includes/ucp/register.php | 4 ++-- styles/templates/default/usercp_viewprofile.tpl | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/admin/admin_ug_auth.php b/admin/admin_ug_auth.php index b6914f4dd..7cef20864 100644 --- a/admin/admin_ug_auth.php +++ b/admin/admin_ug_auth.php @@ -20,9 +20,9 @@ $max_forum_name_length = 50; $yes_sign = '√'; $no_sign = 'x'; -$group_id = isset($_REQUEST['g']) ? (int)$_REQUEST['g'] : 0; -$user_id = isset($_REQUEST['u']) ? (int)$_REQUEST['u'] : 0; -$cat_id = isset($_REQUEST['c']) ? (int)$_REQUEST['c'] : 0; +$group_id = isset($_REQUEST[POST_GROUPS_URL]) ? (int)$_REQUEST[POST_GROUPS_URL] : 0; +$user_id = isset($_REQUEST[POST_USERS_URL]) ? (int)$_REQUEST[POST_USERS_URL] : 0; +$cat_id = isset($_REQUEST[POST_CAT_URL]) ? (int)$_REQUEST[POST_CAT_URL] : 0; $mode = isset($_REQUEST['mode']) ? (string)$_REQUEST['mode'] : ''; $submit = isset($_REQUEST['submit']); @@ -200,7 +200,7 @@ if ($mode == 'user' && (!empty($_POST['username']) || $user_id)) { 'CAT_HREF' => "$base_url&" . POST_CAT_URL . "=$c_id", )); - if (!$c =& $_REQUEST['c'] or !in_array($c, array('all', $c_id)) or empty($c_data['forums'])) { + if (!$c =& $_REQUEST[POST_CAT_URL] or !in_array($c, array('all', $c_id)) or empty($c_data['forums'])) { continue; } @@ -316,7 +316,7 @@ if ($mode == 'user' && (!empty($_POST['username']) || $user_id)) { 'CAT_HREF' => "$base_url&" . POST_CAT_URL . "=$c_id", )); - if (!($c =& $_REQUEST['c']) || !in_array($c, array('all', $c_id)) || empty($c_data['forums'])) { + if (!($c =& $_REQUEST[POST_CAT_URL]) || !in_array($c, array('all', $c_id)) || empty($c_data['forums'])) { continue; } diff --git a/index.php b/index.php index 7598df5d7..29548df6d 100644 --- a/index.php +++ b/index.php @@ -46,7 +46,7 @@ if ($bb_cfg['show_network_news']) { $user->session_start(); // Init main vars -$viewcat = isset($_GET['c']) ? (int)$_GET['c'] : 0; +$viewcat = isset($_GET[POST_CAT_URL]) ? (int)$_GET[POST_CAT_URL] : 0; $lastvisit = IS_GUEST ? TIMENOW : $userdata['user_lastvisit']; // Caching output diff --git a/library/includes/ucp/activate.php b/library/includes/ucp/activate.php index 4aac130de..b72660e1a 100644 --- a/library/includes/ucp/activate.php +++ b/library/includes/ucp/activate.php @@ -11,7 +11,7 @@ if (!defined('BB_ROOT')) { die(basename(__FILE__)); } -if (empty($_GET['u']) || empty($_GET['act_key'])) { +if (empty($_GET[POST_USERS_URL]) || empty($_GET['act_key'])) { bb_die('Bad request'); } diff --git a/library/includes/ucp/register.php b/library/includes/ucp/register.php index feaab65df..25acbfc0a 100644 --- a/library/includes/ucp/register.php +++ b/library/includes/ucp/register.php @@ -122,8 +122,8 @@ switch ($mode) { ]; // Select a profile: your own for the user, any for the admin - if (IS_ADMIN && !empty($_REQUEST['u'])) { - $pr_user_id = (int)$_REQUEST['u']; + if (IS_ADMIN && !empty($_REQUEST[POST_USERS_URL])) { + $pr_user_id = (int)$_REQUEST[POST_USERS_URL]; $adm_edit = ($pr_user_id != $userdata['user_id']); } else { $pr_user_id = $userdata['user_id']; diff --git a/styles/templates/default/usercp_viewprofile.tpl b/styles/templates/default/usercp_viewprofile.tpl index 5f1cb06b5..d4a11e354 100644 --- a/styles/templates/default/usercp_viewprofile.tpl +++ b/styles/templates/default/usercp_viewprofile.tpl @@ -225,7 +225,7 @@ ajax.callback.group_membership = function(data) { $('#rank-sel').bind('change', function(){ ajax.change_user_rank( {PROFILE_USER_ID}, $(this).val() ); });
- + {RANK_IMAGE}

From 1dc84f666f870f37175b59e0b3d54ccc9a135b1f Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Sun, 6 Apr 2025 01:37:25 +0000 Subject: [PATCH 053/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 96ffcf03c..e978219d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -44,6 +44,7 @@ - *(nightly builds)* Added cleanup step ([#1851](https://github.com/torrentpier/torrentpier/pull/1851)) - ([299d9a1](https://github.com/torrentpier/torrentpier/commit/299d9a1f6c4f244e435803212e763c252e5bd396)) - *(render_flag)* Hide names for specified (`$nameIgnoreList`) flags ([#1862](https://github.com/torrentpier/torrentpier/pull/1862)) - ([83e42bc](https://github.com/torrentpier/torrentpier/commit/83e42bc5db086f60a6038b3fffca5982ceeced51)) - *(text captcha)* Disabled scatter effect by default - ([3af5202](https://github.com/torrentpier/torrentpier/commit/3af5202f7b2a4ea5d14bbc4808b7a380de2e0dc0)) +- Minor improvements ([#1875](https://github.com/torrentpier/torrentpier/pull/1875)) - ([41a78dd](https://github.com/torrentpier/torrentpier/commit/41a78ddbcbc628f0592c59879df0170bf48664aa)) - Minor improvements ([#1874](https://github.com/torrentpier/torrentpier/pull/1874)) - ([0f1a69e](https://github.com/torrentpier/torrentpier/commit/0f1a69e32d8d5eb5053b021844845911c619d8cd)) - Fetch only necessary sitemap parameters in `admin_sitemap.php` ([#1873](https://github.com/torrentpier/torrentpier/pull/1873)) - ([f9c8160](https://github.com/torrentpier/torrentpier/commit/f9c8160f8e897950a038a74ad7ee30b116f7b2b8)) - Changed placeholder IP address from `7f000001` to `0` ([#1869](https://github.com/torrentpier/torrentpier/pull/1869)) - ([84e2392](https://github.com/torrentpier/torrentpier/commit/84e23928968f943826bdc4390c52365357d56f32)) From c3b40003b778a725e958cebee6446bcfd6a68b10 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Thu, 10 Apr 2025 16:19:22 +0700 Subject: [PATCH 054/216] fix(cache): Implicitly marking parameter `$name` as nullable is deprecated (#1877) --- src/Legacy/Cache/APCu.php | 2 +- src/Legacy/Cache/Memcached.php | 2 +- src/Legacy/Cache/Redis.php | 2 +- src/Legacy/Cache/Sqlite.php | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Legacy/Cache/APCu.php b/src/Legacy/Cache/APCu.php index 6e3b26fec..d7e4eb8ed 100644 --- a/src/Legacy/Cache/APCu.php +++ b/src/Legacy/Cache/APCu.php @@ -116,7 +116,7 @@ class APCu extends Common * @param string|null $name * @return bool */ - public function rm(string $name = null): bool + public function rm(?string $name = null): bool { $targetMethod = is_string($name) ? 'delete' : 'flush'; $name = is_string($name) ? $this->prefix . $name : null; diff --git a/src/Legacy/Cache/Memcached.php b/src/Legacy/Cache/Memcached.php index ddbc1b02c..4c5c5225b 100644 --- a/src/Legacy/Cache/Memcached.php +++ b/src/Legacy/Cache/Memcached.php @@ -172,7 +172,7 @@ class Memcached extends Common * @param string|null $name * @return bool */ - public function rm(string $name = null): bool + public function rm(?string $name = null): bool { if (!$this->connected) { $this->connect(); diff --git a/src/Legacy/Cache/Redis.php b/src/Legacy/Cache/Redis.php index d20c53aa8..08a6a16ab 100644 --- a/src/Legacy/Cache/Redis.php +++ b/src/Legacy/Cache/Redis.php @@ -174,7 +174,7 @@ class Redis extends Common * @param string|null $name * @return bool */ - public function rm(string $name = null): bool + public function rm(?string $name = null): bool { if (!$this->connected) { $this->connect(); diff --git a/src/Legacy/Cache/Sqlite.php b/src/Legacy/Cache/Sqlite.php index b6ba7f347..ae38a7699 100644 --- a/src/Legacy/Cache/Sqlite.php +++ b/src/Legacy/Cache/Sqlite.php @@ -126,7 +126,7 @@ class Sqlite extends Common * @param string|null $name * @return bool */ - public function rm(string $name = null): bool + public function rm(?string $name = null): bool { $targetMethod = is_string($name) ? 'delete' : 'flush'; $name = is_string($name) ? $this->prefix . $name : null; From 1374479fa214e86f1e5fd526ca74d92dfe14a0c4 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Fri, 11 Apr 2025 01:26:04 +0000 Subject: [PATCH 055/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e978219d8..e5ca65f14 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ ### 🐛 Bug Fixes +- *(cache)* Implicitly marking parameter `$name` as nullable is deprecated ([#1877](https://github.com/torrentpier/torrentpier/pull/1877)) - ([c3b4000](https://github.com/torrentpier/torrentpier/commit/c3b40003b778a725e958cebee6446bcfd6a68b10)) - Pagination issue in `Report on action` page ([#1872](https://github.com/torrentpier/torrentpier/pull/1872)) - ([8358aa0](https://github.com/torrentpier/torrentpier/commit/8358aa00de2ec9efd4c51b8bef11bd700a56c19c)) - `tablesorting` issues & incorrect `user_role` for pending users ([#1871](https://github.com/torrentpier/torrentpier/pull/1871)) - ([595adbe](https://github.com/torrentpier/torrentpier/commit/595adbe4da5296b0f3ebde6628e58e878c0fb7d5)) - Fixed TorrentPier build-in emojis showing in ACP ([#1870](https://github.com/torrentpier/torrentpier/pull/1870)) - ([12792e7](https://github.com/torrentpier/torrentpier/commit/12792e74f71a57448277dda46471563a7fea71db)) From e59adce848a9e10ee5775254045cbbd915236b8b Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Wed, 16 Apr 2025 00:31:45 +0700 Subject: [PATCH 056/216] feat: Improvements for `Torrent Files List` functionality (#1878) * feat: Improvements for `Torrent Files List` functionality * Updated * Updated * Update filelist.php * Update filelist.php * Update filelist.php * Updated * Update filelist.php * Update filelist.php * Update filelist.php * Updated * Update filelist.php * Update filelist.php --- filelist.php | 26 +++++++++++++++++++ library/language/source/main.php | 2 ++ styles/templates/default/filelist.tpl | 5 ++++ .../default/viewtopic_attach_guest.tpl | 1 + 4 files changed, 34 insertions(+) diff --git a/filelist.php b/filelist.php index f9792c989..08a2584ba 100644 --- a/filelist.php +++ b/filelist.php @@ -34,6 +34,32 @@ if (!$row = DB()->fetch_row($sql)) { bb_die($lang['INVALID_TOPIC_ID_DB'], 404); } +// Previous/next topic links +$sql = ' + (SELECT topic_id FROM ' . BB_BT_TORRENTS . ' WHERE topic_id < ' . $topic_id . ' ORDER BY topic_id DESC LIMIT 1) + UNION + (SELECT topic_id FROM ' . BB_BT_TORRENTS . ' WHERE topic_id >= ' . $topic_id . ' ORDER BY topic_id ASC LIMIT 2) + ORDER BY topic_id ASC'; + +if (!$topics = DB()->fetch_rowset($sql)) { + bb_die($lang['INVALID_TOPIC_ID_DB'], 404); +} +$topic_ids = array_column($topics, 'topic_id'); + +$current_index = array_search($topic_id, $topic_ids); +if ($current_index === false) { + bb_die($lang['INVALID_TOPIC_ID_DB'], 404); +} + +$prev_topic_id = $topic_ids[$current_index - 1] ?? $topic_id; +$next_topic_id = $topic_ids[$current_index + 1] ?? $topic_id; + +$template->assign_vars([ + 'U_NEXT_TOPIC' => "filelist.php?t=$next_topic_id", + 'U_PREV_TOPIC' => "filelist.php?t=$prev_topic_id", +]); +unset($prev_topic_id, $next_topic_id, $current_index, $topic_ids, $topics); + // Protocol meta $meta_v1 = !empty($row['info_hash']); $meta_v2 = !empty($row['info_hash_v2']); diff --git a/library/language/source/main.php b/library/language/source/main.php index 65fd05fd1..8ccab797c 100644 --- a/library/language/source/main.php +++ b/library/language/source/main.php @@ -1733,6 +1733,8 @@ $lang['EMPTY_ATTACH_ID'] = 'Missing file identifier!'; $lang['TOR_NOT_FOUND'] = 'File is missing on the server!'; $lang['ERROR_BUILD'] = 'The content of this torrent file can not be viewed on the site (it was not possible to build a list of files)'; $lang['TORFILE_INVALID'] = 'Torrent file is corrupt'; +$lang['PREV_RELEASE'] = 'Previous release'; +$lang['NEXT_RELEASE'] = 'Next release'; // Profile $lang['WEBSITE_ERROR'] = 'The "site" may contain only http://sitename'; diff --git a/styles/templates/default/filelist.tpl b/styles/templates/default/filelist.tpl index 9e6bc4eb4..4f7bcc2b9 100644 --- a/styles/templates/default/filelist.tpl +++ b/styles/templates/default/filelist.tpl @@ -6,6 +6,11 @@
+ +

{L_BT_FLIST_ANNOUNCERS_LIST}

#{pending.PM} {pending.EMAIL} {pending.FROM}{pending.JOINED_RAW}{pending.JOINED}{pending.JOINED_RAW}{pending.JOINED} {pending.POSTS} {pending.WWW}
- {L_DL_LIST_AND_TORRENT_ACTIVITY} - {L_DL_LIST_AND_TORRENT_ACTIVITY}
diff --git a/styles/templates/default/viewtopic_attach_guest.tpl b/styles/templates/default/viewtopic_attach_guest.tpl index fc83d07eb..f0c24ccc6 100644 --- a/styles/templates/default/viewtopic_attach_guest.tpl +++ b/styles/templates/default/viewtopic_attach_guest.tpl @@ -4,6 +4,7 @@ {L_DOWNLOAD}

{L_DOWNLOAD_INFO}

+ {L_BT_FLIST_LINK_TITLE} · {L_HOW_TO_DOWNLOAD} · {L_WHAT_IS_A_TORRENT} · {L_RATINGS_AND_LIMITATIONS}
From cb36715583a5e741d0152dd90ee8fd14501fa18b Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Wed, 16 Apr 2025 01:27:40 +0000 Subject: [PATCH 057/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e5ca65f14..ef3183ae1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ - *(avatar upload)* Added `accept="image/*"` attribute ([#1841](https://github.com/torrentpier/torrentpier/pull/1841)) - ([56d531a](https://github.com/torrentpier/torrentpier/commit/56d531aa5ddb778d08a2796fa9fb865e5b3040ce)) - *(emailer)* Added ability to configure `sendmail` - ([5ad4a70](https://github.com/torrentpier/torrentpier/commit/5ad4a7019d996d468650ab608ab53d6cf3ebb4f5)) - *(playback_m3u.php)* Added checking auth to download ([#1848](https://github.com/torrentpier/torrentpier/pull/1848)) - ([0b8d8a5](https://github.com/torrentpier/torrentpier/commit/0b8d8a5210ee761dddaa57fc48bb48b0ede1ec3c)) +- Improvements for `Torrent Files List` functionality ([#1878](https://github.com/torrentpier/torrentpier/pull/1878)) - ([e59adce](https://github.com/torrentpier/torrentpier/commit/e59adce848a9e10ee5775254045cbbd915236b8b)) ### 🐛 Bug Fixes From 1073f190135f2098b75293a62608e2c45762d5cf Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Wed, 16 Apr 2025 13:27:21 +0300 Subject: [PATCH 058/216] Revert "feat: Improvements for `Torrent Files List` functionality (#1878)" This reverts commit e59adce848a9e10ee5775254045cbbd915236b8b. --- filelist.php | 26 ------------------- library/language/source/main.php | 2 -- styles/templates/default/filelist.tpl | 5 ---- .../default/viewtopic_attach_guest.tpl | 1 - 4 files changed, 34 deletions(-) diff --git a/filelist.php b/filelist.php index 08a2584ba..f9792c989 100644 --- a/filelist.php +++ b/filelist.php @@ -34,32 +34,6 @@ if (!$row = DB()->fetch_row($sql)) { bb_die($lang['INVALID_TOPIC_ID_DB'], 404); } -// Previous/next topic links -$sql = ' - (SELECT topic_id FROM ' . BB_BT_TORRENTS . ' WHERE topic_id < ' . $topic_id . ' ORDER BY topic_id DESC LIMIT 1) - UNION - (SELECT topic_id FROM ' . BB_BT_TORRENTS . ' WHERE topic_id >= ' . $topic_id . ' ORDER BY topic_id ASC LIMIT 2) - ORDER BY topic_id ASC'; - -if (!$topics = DB()->fetch_rowset($sql)) { - bb_die($lang['INVALID_TOPIC_ID_DB'], 404); -} -$topic_ids = array_column($topics, 'topic_id'); - -$current_index = array_search($topic_id, $topic_ids); -if ($current_index === false) { - bb_die($lang['INVALID_TOPIC_ID_DB'], 404); -} - -$prev_topic_id = $topic_ids[$current_index - 1] ?? $topic_id; -$next_topic_id = $topic_ids[$current_index + 1] ?? $topic_id; - -$template->assign_vars([ - 'U_NEXT_TOPIC' => "filelist.php?t=$next_topic_id", - 'U_PREV_TOPIC' => "filelist.php?t=$prev_topic_id", -]); -unset($prev_topic_id, $next_topic_id, $current_index, $topic_ids, $topics); - // Protocol meta $meta_v1 = !empty($row['info_hash']); $meta_v2 = !empty($row['info_hash_v2']); diff --git a/library/language/source/main.php b/library/language/source/main.php index 8ccab797c..65fd05fd1 100644 --- a/library/language/source/main.php +++ b/library/language/source/main.php @@ -1733,8 +1733,6 @@ $lang['EMPTY_ATTACH_ID'] = 'Missing file identifier!'; $lang['TOR_NOT_FOUND'] = 'File is missing on the server!'; $lang['ERROR_BUILD'] = 'The content of this torrent file can not be viewed on the site (it was not possible to build a list of files)'; $lang['TORFILE_INVALID'] = 'Torrent file is corrupt'; -$lang['PREV_RELEASE'] = 'Previous release'; -$lang['NEXT_RELEASE'] = 'Next release'; // Profile $lang['WEBSITE_ERROR'] = 'The "site" may contain only http://sitename'; diff --git a/styles/templates/default/filelist.tpl b/styles/templates/default/filelist.tpl index 4f7bcc2b9..9e6bc4eb4 100644 --- a/styles/templates/default/filelist.tpl +++ b/styles/templates/default/filelist.tpl @@ -6,11 +6,6 @@
-

-

{L_BT_FLIST_ANNOUNCERS_LIST}

diff --git a/styles/templates/default/viewtopic_attach_guest.tpl b/styles/templates/default/viewtopic_attach_guest.tpl index f0c24ccc6..fc83d07eb 100644 --- a/styles/templates/default/viewtopic_attach_guest.tpl +++ b/styles/templates/default/viewtopic_attach_guest.tpl @@ -4,7 +4,6 @@ {L_DOWNLOAD}

{L_DOWNLOAD_INFO}

- {L_BT_FLIST_LINK_TITLE} · {L_HOW_TO_DOWNLOAD} · {L_WHAT_IS_A_TORRENT} · {L_RATINGS_AND_LIMITATIONS}
From eeb391da6a16440492a3b803f63be301ba3d02d3 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Wed, 16 Apr 2025 17:40:36 +0700 Subject: [PATCH 059/216] misc: Minor improvements (#1876) * misc: Minor improvements * Update viewprofile.php * Update viewprofile.php * Update functions.php * Update filelist.php * Revert "Update filelist.php" This reverts commit e5eb9a6b3fe8d532600ccc8dfcd3d5afe04091bf. * Update .cliffignore * Updated * Update viewtopic_attach_guest.tpl --- .cliffignore | 1 + library/attach_mod/displaying_torrent.php | 1 - library/includes/functions.php | 3 +++ library/includes/ucp/viewprofile.php | 8 ++++---- src/Legacy/BBCode.php | 1 + styles/templates/default/viewtopic_attach.tpl | 2 +- styles/templates/default/viewtopic_attach_guest.tpl | 1 + 7 files changed, 11 insertions(+), 6 deletions(-) diff --git a/.cliffignore b/.cliffignore index 95600423e..2cb35e72e 100644 --- a/.cliffignore +++ b/.cliffignore @@ -3,3 +3,4 @@ 2d53efc945c7747be1755d0b66557a86bdc12cbd 602137b65129b817811b80975a369ebde3270c6d 4eb26ae37e1f4c82a45961517ffeb54c20200408 +1073f190135f2098b75293a62608e2c45762d5cf diff --git a/library/attach_mod/displaying_torrent.php b/library/attach_mod/displaying_torrent.php index 37fdd7f55..0af704a52 100644 --- a/library/attach_mod/displaying_torrent.php +++ b/library/attach_mod/displaying_torrent.php @@ -219,7 +219,6 @@ if ($tor_reged && $tor_info) { 'HASH' => !empty($tor_info['info_hash']) ? strtoupper(bin2hex($tor_info['info_hash'])) : false, 'HASH_V2' => !empty($tor_info['info_hash_v2']) ? strtoupper(bin2hex($tor_info['info_hash_v2'])) : false, 'FILELIST_ICON' => $images['icon_tor_filelist'], - 'FILELIST_LINK' => FILELIST_URL . $tor_info['topic_id'], 'REGED_TIME' => bb_date($tor_info['reg_time']), 'REGED_DELTA' => delta_time($tor_info['reg_time']), 'TORRENT_SIZE' => humn_size($tor_size, 2), diff --git a/library/includes/functions.php b/library/includes/functions.php index 0e1a2117a..2eaf182dc 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -898,13 +898,16 @@ function bb_get_config($table, $from_db = false, $update_cache = true) { if ($from_db or !$cfg = CACHE('bb_config')->get("config_{$table}")) { $cfg = []; + foreach (DB()->fetch_rowset("SELECT * FROM $table") as $row) { $cfg[$row['config_name']] = $row['config_value']; } + if ($update_cache) { CACHE('bb_config')->set("config_{$table}", $cfg); } } + return $cfg; } diff --git a/library/includes/ucp/viewprofile.php b/library/includes/ucp/viewprofile.php index 1b3e4f878..7dbc44541 100644 --- a/library/includes/ucp/viewprofile.php +++ b/library/includes/ucp/viewprofile.php @@ -76,7 +76,7 @@ if (bf($profiledata['user_opt'], 'user_opt', 'dis_sig')) { // Null ratio if ($bb_cfg['ratio_null_enabled'] && $btu = get_bt_userdata($profiledata['user_id'])) { - $template->assign_vars(array('NULLED_RATIO' => $btu['ratio_nulled'])); + $template->assign_vars(['NULLED_RATIO' => $btu['ratio_nulled']]); } // Ban information @@ -93,7 +93,7 @@ $template->assign_vars([ 'PROFILE_USER_ID' => $profiledata['user_id'], 'PROFILE_USER' => $profile_user_id, 'USER_REGDATE' => bb_date($profiledata['user_regdate'], 'Y-m-d H:i', false), - 'POSTER_RANK' => ($poster_rank) ? "" . $poster_rank . "" : $lang['USER'], + 'POSTER_RANK' => $poster_rank ? "" . $poster_rank . "" : $lang['USER'], 'RANK_IMAGE' => $rank_image, 'RANK_SELECT' => $rank_select, 'POSTS' => $profiledata['user_posts'], @@ -101,8 +101,8 @@ $template->assign_vars([ 'EMAIL' => $email, 'WWW' => $profiledata['user_website'], 'ICQ' => $profiledata['user_icq'], - 'LAST_VISIT_TIME' => ($profiledata['user_lastvisit']) ? (!$profile_user_id && bf($profiledata['user_opt'], 'user_opt', 'user_viewonline') && !IS_ADMIN) ? $lang['HIDDEN_USER'] : bb_date($profiledata['user_lastvisit'], 'Y-m-d H:i', false) : $lang['NEVER'], - 'LAST_ACTIVITY_TIME' => ($profiledata['user_session_time']) ? (!$profile_user_id && bf($profiledata['user_opt'], 'user_opt', 'user_viewonline') && !IS_ADMIN) ? $lang['HIDDEN_USER'] : bb_date($profiledata['user_session_time'], 'Y-m-d H:i', false) : $lang['NEVER'], + 'LAST_VISIT_TIME' => $profiledata['user_lastvisit'] ? (!$profile_user_id && bf($profiledata['user_opt'], 'user_opt', 'user_viewonline') && !IS_ADMIN) ? $lang['HIDDEN_USER'] : bb_date($profiledata['user_lastvisit'], 'Y-m-d H:i', false) : $lang['NEVER'], + 'LAST_ACTIVITY_TIME' => $profiledata['user_session_time'] ? (!$profile_user_id && bf($profiledata['user_opt'], 'user_opt', 'user_viewonline') && !IS_ADMIN) ? $lang['HIDDEN_USER'] : bb_date($profiledata['user_session_time'], 'Y-m-d H:i', false) : $lang['NEVER'], 'USER_ACTIVE' => $profiledata['user_active'], 'LOCATION' => render_flag($profiledata['user_from']), 'OCCUPATION' => $profiledata['user_occ'], diff --git a/src/Legacy/BBCode.php b/src/Legacy/BBCode.php index 642ccfc5b..dddc8fc8f 100644 --- a/src/Legacy/BBCode.php +++ b/src/Legacy/BBCode.php @@ -345,6 +345,7 @@ class BBCode foreach ($this->smilies['repl'] as &$smile) { $smile = preg_replace('/src="([^"]+)"/', 'src="./../$1"', $smile); } + unset($smile); } if ($this->smilies) { diff --git a/styles/templates/default/viewtopic_attach.tpl b/styles/templates/default/viewtopic_attach.tpl index 372c87b7b..14c28862f 100644 --- a/styles/templates/default/viewtopic_attach.tpl +++ b/styles/templates/default/viewtopic_attach.tpl @@ -146,7 +146,7 @@

diff --git a/styles/templates/default/viewtopic_attach_guest.tpl b/styles/templates/default/viewtopic_attach_guest.tpl index fc83d07eb..7b9065d6f 100644 --- a/styles/templates/default/viewtopic_attach_guest.tpl +++ b/styles/templates/default/viewtopic_attach_guest.tpl @@ -4,6 +4,7 @@ {L_DOWNLOAD}

{L_DOWNLOAD_INFO}

+ {L_BT_FLIST_LINK_TITLE} · {L_HOW_TO_DOWNLOAD} · {L_WHAT_IS_A_TORRENT} · {L_RATINGS_AND_LIMITATIONS}
From 9f96090cc419f828e54e69a91a906a3f3d92c255 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Wed, 16 Apr 2025 23:29:00 +0700 Subject: [PATCH 060/216] fix: Displaying `Network news` and `Latest news` for guests when foums are private (#1879) --- admin/admin_forumauth.php | 1 + admin/admin_forumauth_list.php | 1 + filelist.php | 8 +++++++- index.php | 8 ++++++++ 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/admin/admin_forumauth.php b/admin/admin_forumauth.php index 797842a0a..fec7aa909 100644 --- a/admin/admin_forumauth.php +++ b/admin/admin_forumauth.php @@ -123,6 +123,7 @@ if ($submit) { } $datastore->update('cat_forums'); + CACHE('bb_cache')->rm(); bb_die($lang['FORUM_AUTH_UPDATED'] . '

' . sprintf($lang['CLICK_RETURN_FORUMAUTH'], '', '')); } diff --git a/admin/admin_forumauth_list.php b/admin/admin_forumauth_list.php index c45aa0092..37c49d251 100644 --- a/admin/admin_forumauth_list.php +++ b/admin/admin_forumauth_list.php @@ -153,6 +153,7 @@ if ($submit) { } $datastore->update('cat_forums'); + CACHE('bb_cache')->rm(); bb_die($lang['FORUM_AUTH_UPDATED'] . '

' . sprintf($lang['CLICK_RETURN_FORUMAUTH'], '', '')); } // End of submit diff --git a/filelist.php b/filelist.php index f9792c989..8e256dc67 100644 --- a/filelist.php +++ b/filelist.php @@ -23,7 +23,7 @@ if (!$topic_id) { bb_die($lang['INVALID_TOPIC_ID'], 404); } -$sql = 'SELECT t.attach_id, t.info_hash, t.info_hash_v2, t.size, ad.physical_filename +$sql = 'SELECT t.forum_id, t.attach_id, t.info_hash, t.info_hash_v2, t.size, ad.physical_filename FROM ' . BB_BT_TORRENTS . ' t LEFT JOIN ' . BB_ATTACHMENTS_DESC . ' ad ON t.attach_id = ad.attach_id @@ -34,6 +34,12 @@ if (!$row = DB()->fetch_row($sql)) { bb_die($lang['INVALID_TOPIC_ID_DB'], 404); } +// Check rights +$is_auth = auth(AUTH_ALL, $row['forum_id'], $userdata); +if (!$is_auth['auth_view']) { + bb_die($lang['SORRY_AUTH_VIEW_ATTACH'], 403); +} + // Protocol meta $meta_v1 = !empty($row['info_hash']); $meta_v2 = !empty($row['info_hash_v2']); diff --git a/index.php b/index.php index 29548df6d..965378564 100644 --- a/index.php +++ b/index.php @@ -329,6 +329,10 @@ if ($bb_cfg['show_latest_news']) { $template->assign_vars(['SHOW_LATEST_NEWS' => true]); foreach ($latest_news as $news) { + if (in_array($news['forum_id'], $user->get_excluded_forums(AUTH_VIEW, 'array'))) { + continue; + } + $template->assign_block_vars('news', [ 'NEWS_TOPIC_ID' => $news['topic_id'], 'NEWS_TITLE' => str_short($wordCensor->censorString($news['topic_title']), $bb_cfg['max_news_title']), @@ -348,6 +352,10 @@ if ($bb_cfg['show_network_news']) { $template->assign_vars(['SHOW_NETWORK_NEWS' => true]); foreach ($network_news as $net) { + if (in_array($net['forum_id'], $user->get_excluded_forums(AUTH_VIEW, 'array'))) { + continue; + } + $template->assign_block_vars('net', [ 'NEWS_TOPIC_ID' => $net['topic_id'], 'NEWS_TITLE' => str_short($wordCensor->censorString($net['topic_title']), $bb_cfg['max_net_title']), From 9e85a004644c34612bf9b98af918ea0972c0a712 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Thu, 17 Apr 2025 01:26:28 +0000 Subject: [PATCH 061/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ef3183ae1..9e89fd227 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ ### 🐛 Bug Fixes - *(cache)* Implicitly marking parameter `$name` as nullable is deprecated ([#1877](https://github.com/torrentpier/torrentpier/pull/1877)) - ([c3b4000](https://github.com/torrentpier/torrentpier/commit/c3b40003b778a725e958cebee6446bcfd6a68b10)) +- Displaying `Network news` and `Latest news` for guests when foums are private ([#1879](https://github.com/torrentpier/torrentpier/pull/1879)) - ([9f96090](https://github.com/torrentpier/torrentpier/commit/9f96090cc419f828e54e69a91a906a3f3d92c255)) - Pagination issue in `Report on action` page ([#1872](https://github.com/torrentpier/torrentpier/pull/1872)) - ([8358aa0](https://github.com/torrentpier/torrentpier/commit/8358aa00de2ec9efd4c51b8bef11bd700a56c19c)) - `tablesorting` issues & incorrect `user_role` for pending users ([#1871](https://github.com/torrentpier/torrentpier/pull/1871)) - ([595adbe](https://github.com/torrentpier/torrentpier/commit/595adbe4da5296b0f3ebde6628e58e878c0fb7d5)) - Fixed TorrentPier build-in emojis showing in ACP ([#1870](https://github.com/torrentpier/torrentpier/pull/1870)) - ([12792e7](https://github.com/torrentpier/torrentpier/commit/12792e74f71a57448277dda46471563a7fea71db)) @@ -46,6 +47,7 @@ - *(nightly builds)* Added cleanup step ([#1851](https://github.com/torrentpier/torrentpier/pull/1851)) - ([299d9a1](https://github.com/torrentpier/torrentpier/commit/299d9a1f6c4f244e435803212e763c252e5bd396)) - *(render_flag)* Hide names for specified (`$nameIgnoreList`) flags ([#1862](https://github.com/torrentpier/torrentpier/pull/1862)) - ([83e42bc](https://github.com/torrentpier/torrentpier/commit/83e42bc5db086f60a6038b3fffca5982ceeced51)) - *(text captcha)* Disabled scatter effect by default - ([3af5202](https://github.com/torrentpier/torrentpier/commit/3af5202f7b2a4ea5d14bbc4808b7a380de2e0dc0)) +- Minor improvements ([#1876](https://github.com/torrentpier/torrentpier/pull/1876)) - ([eeb391d](https://github.com/torrentpier/torrentpier/commit/eeb391da6a16440492a3b803f63be301ba3d02d3)) - Minor improvements ([#1875](https://github.com/torrentpier/torrentpier/pull/1875)) - ([41a78dd](https://github.com/torrentpier/torrentpier/commit/41a78ddbcbc628f0592c59879df0170bf48664aa)) - Minor improvements ([#1874](https://github.com/torrentpier/torrentpier/pull/1874)) - ([0f1a69e](https://github.com/torrentpier/torrentpier/commit/0f1a69e32d8d5eb5053b021844845911c619d8cd)) - Fetch only necessary sitemap parameters in `admin_sitemap.php` ([#1873](https://github.com/torrentpier/torrentpier/pull/1873)) - ([f9c8160](https://github.com/torrentpier/torrentpier/commit/f9c8160f8e897950a038a74ad7ee30b116f7b2b8)) From de8f1925bae3b38db18b86eb4a10337853638ad7 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Thu, 17 Apr 2025 23:18:29 +0700 Subject: [PATCH 062/216] misc: Minor improvements (#1880) * misc: Minor improvements * Update index.php --- .cliffignore | 2 +- index.php | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.cliffignore b/.cliffignore index 2cb35e72e..c4b190b53 100644 --- a/.cliffignore +++ b/.cliffignore @@ -3,4 +3,4 @@ 2d53efc945c7747be1755d0b66557a86bdc12cbd 602137b65129b817811b80975a369ebde3270c6d 4eb26ae37e1f4c82a45961517ffeb54c20200408 -1073f190135f2098b75293a62608e2c45762d5cf +e59adce848a9e10ee5775254045cbbd915236b8b diff --git a/index.php b/index.php index 965378564..bc96573ee 100644 --- a/index.php +++ b/index.php @@ -80,6 +80,7 @@ $forum_name_html = $forums['forum_name_html']; $anon = GUEST_UID; $excluded_forums_csv = $user->get_excluded_forums(AUTH_VIEW); +$excluded_forums_array = $excluded_forums_csv ? explode(',', $excluded_forums_csv) : []; $only_new = $user->opt_js['only_new']; // Validate requested category id @@ -329,7 +330,7 @@ if ($bb_cfg['show_latest_news']) { $template->assign_vars(['SHOW_LATEST_NEWS' => true]); foreach ($latest_news as $news) { - if (in_array($news['forum_id'], $user->get_excluded_forums(AUTH_VIEW, 'array'))) { + if (in_array($news['forum_id'], $excluded_forums_array)) { continue; } @@ -352,7 +353,7 @@ if ($bb_cfg['show_network_news']) { $template->assign_vars(['SHOW_NETWORK_NEWS' => true]); foreach ($network_news as $net) { - if (in_array($net['forum_id'], $user->get_excluded_forums(AUTH_VIEW, 'array'))) { + if (in_array($net['forum_id'], $excluded_forums_array)) { continue; } From ec0efe579059b79f310ddbaa56a4229f1b2e11d7 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Fri, 18 Apr 2025 01:25:35 +0000 Subject: [PATCH 063/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e89fd227..b33b6d273 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,6 @@ - *(avatar upload)* Added `accept="image/*"` attribute ([#1841](https://github.com/torrentpier/torrentpier/pull/1841)) - ([56d531a](https://github.com/torrentpier/torrentpier/commit/56d531aa5ddb778d08a2796fa9fb865e5b3040ce)) - *(emailer)* Added ability to configure `sendmail` - ([5ad4a70](https://github.com/torrentpier/torrentpier/commit/5ad4a7019d996d468650ab608ab53d6cf3ebb4f5)) - *(playback_m3u.php)* Added checking auth to download ([#1848](https://github.com/torrentpier/torrentpier/pull/1848)) - ([0b8d8a5](https://github.com/torrentpier/torrentpier/commit/0b8d8a5210ee761dddaa57fc48bb48b0ede1ec3c)) -- Improvements for `Torrent Files List` functionality ([#1878](https://github.com/torrentpier/torrentpier/pull/1878)) - ([e59adce](https://github.com/torrentpier/torrentpier/commit/e59adce848a9e10ee5775254045cbbd915236b8b)) ### 🐛 Bug Fixes @@ -47,6 +46,7 @@ - *(nightly builds)* Added cleanup step ([#1851](https://github.com/torrentpier/torrentpier/pull/1851)) - ([299d9a1](https://github.com/torrentpier/torrentpier/commit/299d9a1f6c4f244e435803212e763c252e5bd396)) - *(render_flag)* Hide names for specified (`$nameIgnoreList`) flags ([#1862](https://github.com/torrentpier/torrentpier/pull/1862)) - ([83e42bc](https://github.com/torrentpier/torrentpier/commit/83e42bc5db086f60a6038b3fffca5982ceeced51)) - *(text captcha)* Disabled scatter effect by default - ([3af5202](https://github.com/torrentpier/torrentpier/commit/3af5202f7b2a4ea5d14bbc4808b7a380de2e0dc0)) +- Minor improvements ([#1880](https://github.com/torrentpier/torrentpier/pull/1880)) - ([de8f192](https://github.com/torrentpier/torrentpier/commit/de8f1925bae3b38db18b86eb4a10337853638ad7)) - Minor improvements ([#1876](https://github.com/torrentpier/torrentpier/pull/1876)) - ([eeb391d](https://github.com/torrentpier/torrentpier/commit/eeb391da6a16440492a3b803f63be301ba3d02d3)) - Minor improvements ([#1875](https://github.com/torrentpier/torrentpier/pull/1875)) - ([41a78dd](https://github.com/torrentpier/torrentpier/commit/41a78ddbcbc628f0592c59879df0170bf48664aa)) - Minor improvements ([#1874](https://github.com/torrentpier/torrentpier/pull/1874)) - ([0f1a69e](https://github.com/torrentpier/torrentpier/commit/0f1a69e32d8d5eb5053b021844845911c619d8cd)) From 5c4972ec12340cbffb8ac941d390ee6c2c89b635 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Tue, 22 Apr 2025 14:33:08 +0700 Subject: [PATCH 064/216] misc: Composer dependencies are installed according to the minimum supported PHP version (#1881) --- .github/workflows/cd.yml | 3 + .github/workflows/ci.yml | 3 + composer.lock | 171 ++++++++++++--------------------------- install.php | 2 + 4 files changed, 59 insertions(+), 120 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 19301d0e6..47028004c 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -43,6 +43,9 @@ jobs: with: php-version: '8.1' + - name: Update composer.lock file + run: composer update --no-install + - name: Install Composer dependencies run: composer install --no-progress --prefer-dist --optimize-autoloader diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9ab197a68..4c63b3393 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,6 +19,9 @@ jobs: with: php-version: '8.1' + - name: Update composer.lock file + run: composer update --no-install + - name: Install Composer dependencies 🪚 run: composer install --no-progress --prefer-dist --optimize-autoloader diff --git a/composer.lock b/composer.lock index c244f2380..94753599d 100644 --- a/composer.lock +++ b/composer.lock @@ -144,12 +144,12 @@ "source": { "type": "git", "url": "https://github.com/arokettu/monsterid.git", - "reference": "de2873a5cf6f2ed7cf2c8709ee1bae0e6aec1ed8" + "reference": "4e7484a593c42eba960ee555877dd9b26577fe8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/arokettu/monsterid/zipball/de2873a5cf6f2ed7cf2c8709ee1bae0e6aec1ed8", - "reference": "de2873a5cf6f2ed7cf2c8709ee1bae0e6aec1ed8", + "url": "https://api.github.com/repos/arokettu/monsterid/zipball/4e7484a593c42eba960ee555877dd9b26577fe8a", + "reference": "4e7484a593c42eba960ee555877dd9b26577fe8a", "shasum": "" }, "require": { @@ -157,20 +157,26 @@ "arokettu/random-polyfill": "^1.0.1", "ext-gd": "*", "php": "^8.0", - "php-http/discovery": "^1.19", "psr/http-factory": "^1.0" }, "require-dev": { "arokettu/random-polyfill": ">= 1.0.1 < 1.99", "httpsoft/http-message": "^1.1", + "php-http/discovery": "^1.20", "phpunit/phpunit": ">= 7.0 < 10", "psy/psysh": "*", - "sandfox.dev/code-standard": "^1.2024.07.05", + "sandfox.dev/code-standard": "^1.2025.03.27", + "slim/psr7": "^1.7", "squizlabs/php_codesniffer": "*", - "vimeo/psalm": "^5.4" + "vimeo/psalm": "^5.4 || ^6.0" }, "default-branch": true, "type": "library", + "extra": { + "discovery": { + "psr/http-factory-implementation": "Arokettu\\MonsterID\\Tests\\Helpers\\HttpFactory" + } + }, "autoload": { "files": [ "src/functions.php" @@ -191,7 +197,7 @@ }, { "name": "Anton Smirnov", - "email": "sandfox@sandfox.me", + "email": "sandfox+composer@sandfox.me", "homepage": "https://sandfox.me/", "role": "maintainer" } @@ -203,11 +209,12 @@ "monsterid" ], "support": { + "chat": "https://gitter.im/arokettu/community", "docs": "https://monsterid.readthedocs.io/", "issues": "https://gitlab.com/sandfox/monsterid/-/issues", "source": "https://gitlab.com/sandfox/monsterid" }, - "time": "2024-10-13T00:45:20+00:00" + "time": "2025-04-03T13:37:00+00:00" }, { "name": "arokettu/random-polyfill", @@ -347,16 +354,16 @@ }, { "name": "arokettu/unsigned", - "version": "1.3.5", + "version": "1.3.6", "source": { "type": "git", "url": "https://github.com/arokettu/unsigned.git", - "reference": "559dd1247fb4bbc9d70a6ff8581d8e9fd742e096" + "reference": "1e5b3a131d669ee31c4d941bc27e4ba4ef64ae76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/arokettu/unsigned/zipball/559dd1247fb4bbc9d70a6ff8581d8e9fd742e096", - "reference": "559dd1247fb4bbc9d70a6ff8581d8e9fd742e096", + "url": "https://api.github.com/repos/arokettu/unsigned/zipball/1e5b3a131d669ee31c4d941bc27e4ba4ef64ae76", + "reference": "1e5b3a131d669ee31c4d941bc27e4ba4ef64ae76", "shasum": "" }, "require": { @@ -365,13 +372,16 @@ "require-dev": { "phpunit/phpunit": ">= 6.5 <10", "psy/psysh": "*", - "sandfox.dev/code-standard": "^1.2023.12.09", + "sandfox.dev/code-standard": "^1.2025.03.27", "squizlabs/php_codesniffer": "*" }, "type": "library", "autoload": { "files": [ "src/lib.php" + ], + "classmap": [ + "src/Unsigned.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -398,7 +408,7 @@ "issues": "https://gitlab.com/sandfox/unsigned/-/issues", "source": "https://gitlab.com/sandfox/unsigned" }, - "time": "2024-02-01T20:40:11+00:00" + "time": "2025-03-31T23:49:37+00:00" }, { "name": "belomaxorka/captcha", @@ -883,20 +893,20 @@ "source": { "type": "git", "url": "https://github.com/Gemorroj/M3uParser.git", - "reference": "6e6a35df8d5410d8884c7dadcde611607aae3b12" + "reference": "92fc0fe236d77e1b5a26c735ffcb6fc637eb298a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Gemorroj/M3uParser/zipball/6e6a35df8d5410d8884c7dadcde611607aae3b12", - "reference": "6e6a35df8d5410d8884c7dadcde611607aae3b12", + "url": "https://api.github.com/repos/Gemorroj/M3uParser/zipball/92fc0fe236d77e1b5a26c735ffcb6fc637eb298a", + "reference": "92fc0fe236d77e1b5a26c735ffcb6fc637eb298a", "shasum": "" }, "require": { "php": ">=8.0.2" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.68.5", - "phpstan/phpstan": "^2", + "friendsofphp/php-cs-fixer": "^3.73.1", + "phpstan/phpstan": "^2.1", "phpunit/phpunit": "^9.6.22" }, "default-branch": true, @@ -923,9 +933,9 @@ ], "support": { "issues": "https://github.com/Gemorroj/M3uParser/issues", - "source": "https://github.com/Gemorroj/M3uParser/tree/master" + "source": "https://github.com/Gemorroj/M3uParser/tree/6.0.1" }, - "time": "2025-03-03T18:16:38+00:00" + "time": "2025-03-25T19:21:43+00:00" }, { "name": "gigablah/sphinxphp", @@ -1098,16 +1108,16 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.9.2", + "version": "7.9.3", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "d281ed313b989f213357e3be1a179f02196ac99b" + "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d281ed313b989f213357e3be1a179f02196ac99b", - "reference": "d281ed313b989f213357e3be1a179f02196ac99b", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7b2f29fe81dc4da0ca0ea7d42107a0845946ea77", + "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77", "shasum": "" }, "require": { @@ -1204,7 +1214,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.9.2" + "source": "https://github.com/guzzle/guzzle/tree/7.9.3" }, "funding": [ { @@ -1220,20 +1230,20 @@ "type": "tidelift" } ], - "time": "2024-07-24T11:22:20+00:00" + "time": "2025-03-27T13:37:11+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.0.4", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455" + "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/f9c436286ab2892c7db7be8c8da4ef61ccf7b455", - "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455", + "url": "https://api.github.com/repos/guzzle/promises/zipball/7c69f28996b0a6920945dd20b3857e499d9ca96c", + "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c", "shasum": "" }, "require": { @@ -1287,7 +1297,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.4" + "source": "https://github.com/guzzle/promises/tree/2.2.0" }, "funding": [ { @@ -1303,20 +1313,20 @@ "type": "tidelift" } ], - "time": "2024-10-17T10:06:22+00:00" + "time": "2025-03-27T13:27:01+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.7.0", + "version": "2.7.1", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201" + "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201", - "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/c2270caaabe631b3b44c85f99e5a04bbb8060d16", + "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16", "shasum": "" }, "require": { @@ -1403,7 +1413,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.7.0" + "source": "https://github.com/guzzle/psr7/tree/2.7.1" }, "funding": [ { @@ -1419,7 +1429,7 @@ "type": "tidelift" } ], - "time": "2024-07-18T11:15:46+00:00" + "time": "2025-03-27T12:30:47+00:00" }, { "name": "jacklul/monolog-telegram", @@ -2189,85 +2199,6 @@ }, "time": "2025-03-25T18:04:16+00:00" }, - { - "name": "php-http/discovery", - "version": "1.20.0", - "source": { - "type": "git", - "url": "https://github.com/php-http/discovery.git", - "reference": "82fe4c73ef3363caed49ff8dd1539ba06044910d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-http/discovery/zipball/82fe4c73ef3363caed49ff8dd1539ba06044910d", - "reference": "82fe4c73ef3363caed49ff8dd1539ba06044910d", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0|^2.0", - "php": "^7.1 || ^8.0" - }, - "conflict": { - "nyholm/psr7": "<1.0", - "zendframework/zend-diactoros": "*" - }, - "provide": { - "php-http/async-client-implementation": "*", - "php-http/client-implementation": "*", - "psr/http-client-implementation": "*", - "psr/http-factory-implementation": "*", - "psr/http-message-implementation": "*" - }, - "require-dev": { - "composer/composer": "^1.0.2|^2.0", - "graham-campbell/phpspec-skip-example-extension": "^5.0", - "php-http/httplug": "^1.0 || ^2.0", - "php-http/message-factory": "^1.0", - "phpspec/phpspec": "^5.1 || ^6.1 || ^7.3", - "sebastian/comparator": "^3.0.5 || ^4.0.8", - "symfony/phpunit-bridge": "^6.4.4 || ^7.0.1" - }, - "type": "composer-plugin", - "extra": { - "class": "Http\\Discovery\\Composer\\Plugin", - "plugin-optional": true - }, - "autoload": { - "psr-4": { - "Http\\Discovery\\": "src/" - }, - "exclude-from-classmap": [ - "src/Composer/Plugin.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com" - } - ], - "description": "Finds and installs PSR-7, PSR-17, PSR-18 and HTTPlug implementations", - "homepage": "http://php-http.org", - "keywords": [ - "adapter", - "client", - "discovery", - "factory", - "http", - "message", - "psr17", - "psr7" - ], - "support": { - "issues": "https://github.com/php-http/discovery/issues", - "source": "https://github.com/php-http/discovery/tree/1.20.0" - }, - "time": "2024-10-02T11:20:13+00:00" - }, { "name": "phpoption/phpoption", "version": "1.9.3", @@ -3812,6 +3743,6 @@ "platform": { "php": "^8.1 | ^8.2 | ^8.3 | ^8.4" }, - "platform-dev": [], - "plugin-api-version": "2.3.0" + "platform-dev": {}, + "plugin-api-version": "2.6.0" } diff --git a/install.php b/install.php index 72bd12068..b095c8bd5 100644 --- a/install.php +++ b/install.php @@ -257,6 +257,8 @@ if (!is_file(BB_ROOT . 'vendor/autoload.php')) { // Installing dependencies if (is_file(BB_ROOT . 'composer.phar')) { out('- Installing dependencies...', 'info'); + runProcess('php ' . BB_ROOT . 'composer.phar update --no-install'); + sleep(3); runProcess('php ' . BB_ROOT . 'composer.phar install --no-interaction --no-ansi'); define('COMPOSER_COMPLETED', true); } else { From bc1713abdd28d04e8e1da3c3eabeb5170a35a460 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Tue, 22 Apr 2025 14:45:43 +0700 Subject: [PATCH 065/216] misc: Corrected `php` version in `composer.json` (#1882) --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 599cd5ae4..42ef8adaa 100644 --- a/composer.json +++ b/composer.json @@ -46,7 +46,7 @@ "forum": "https://torrentpier.com" }, "require": { - "php": "^8.1 | ^8.2 | ^8.3 | ^8.4", + "php": ">=8.1", "arokettu/random-polyfill": "1.0.2", "arokettu/bencode": "^4.1.0", "arokettu/monsterid": "dev-master", From 53e944be5178922399a275b93dc52e58612a3c3a Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Tue, 22 Apr 2025 16:16:04 +0300 Subject: [PATCH 066/216] Revert "style: Correct sidebar2 displaying" --- .cliffignore | 1 + styles/templates/default/css/page_content.css | 3 ++- styles/templates/default/css/top.css | 1 - 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.cliffignore b/.cliffignore index c4b190b53..187668fd1 100644 --- a/.cliffignore +++ b/.cliffignore @@ -4,3 +4,4 @@ 602137b65129b817811b80975a369ebde3270c6d 4eb26ae37e1f4c82a45961517ffeb54c20200408 e59adce848a9e10ee5775254045cbbd915236b8b +9e0a64108d62236ab07b3f8d10e8c78269b8e1d1 diff --git a/styles/templates/default/css/page_content.css b/styles/templates/default/css/page_content.css index db9bec438..b7d79a551 100644 --- a/styles/templates/default/css/page_content.css +++ b/styles/templates/default/css/page_content.css @@ -58,7 +58,7 @@ #sidebar2 h3 { padding: 0 0 4px 0; - margin: 8px 0 2px 0; + margin: 0 0 2px 0; color: #333333; text-indent: 0.5em; background: transparent url(../images/hr200_ltr_gradient.jpg) no-repeat left bottom; @@ -88,6 +88,7 @@ /* User ratio */ #user_ratio { + padding: 1px 6px 0 0; font-size: 11px; } diff --git a/styles/templates/default/css/top.css b/styles/templates/default/css/top.css index bc8b49c70..6288fb032 100644 --- a/styles/templates/default/css/top.css +++ b/styles/templates/default/css/top.css @@ -58,7 +58,6 @@ body, th, td, font { } #sidebar2-wrap { - margin-top: -8px; } #main_content { From 04b0a477d3113b980301bcd9c119ae7ee8807bd4 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Tue, 22 Apr 2025 18:13:23 +0000 Subject: [PATCH 067/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b33b6d273..4ba622215 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,10 +34,6 @@ - Password generation ([#1847](https://github.com/torrentpier/torrentpier/pull/1847)) - ([af2403f](https://github.com/torrentpier/torrentpier/commit/af2403f1918845e8af3d9fa7708623eef6aa427e)) - Moved `Select` class into `Legacy\Common` ([#1846](https://github.com/torrentpier/torrentpier/pull/1846)) - ([bd0ef06](https://github.com/torrentpier/torrentpier/commit/bd0ef063fac328ed16537aacbc12e287a8d8206b)) -### 🎨 Styling - -- Correct `sidebar2` displaying ([#1852](https://github.com/torrentpier/torrentpier/pull/1852)) - ([9e0a641](https://github.com/torrentpier/torrentpier/commit/9e0a64108d62236ab07b3f8d10e8c78269b8e1d1)) - ### ⚙️ Miscellaneous - *(.cliffignore)* Added one more commit ([#1860](https://github.com/torrentpier/torrentpier/pull/1860)) - ([974d359](https://github.com/torrentpier/torrentpier/commit/974d3590c1fb11c6314da4a4b8115a2229e32bbd)) @@ -46,6 +42,8 @@ - *(nightly builds)* Added cleanup step ([#1851](https://github.com/torrentpier/torrentpier/pull/1851)) - ([299d9a1](https://github.com/torrentpier/torrentpier/commit/299d9a1f6c4f244e435803212e763c252e5bd396)) - *(render_flag)* Hide names for specified (`$nameIgnoreList`) flags ([#1862](https://github.com/torrentpier/torrentpier/pull/1862)) - ([83e42bc](https://github.com/torrentpier/torrentpier/commit/83e42bc5db086f60a6038b3fffca5982ceeced51)) - *(text captcha)* Disabled scatter effect by default - ([3af5202](https://github.com/torrentpier/torrentpier/commit/3af5202f7b2a4ea5d14bbc4808b7a380de2e0dc0)) +- Corrected `php` version in `composer.json` ([#1882](https://github.com/torrentpier/torrentpier/pull/1882)) - ([bc1713a](https://github.com/torrentpier/torrentpier/commit/bc1713abdd28d04e8e1da3c3eabeb5170a35a460)) +- Composer dependencies are installed according to the minimum supported PHP version ([#1881](https://github.com/torrentpier/torrentpier/pull/1881)) - ([5c4972e](https://github.com/torrentpier/torrentpier/commit/5c4972ec12340cbffb8ac941d390ee6c2c89b635)) - Minor improvements ([#1880](https://github.com/torrentpier/torrentpier/pull/1880)) - ([de8f192](https://github.com/torrentpier/torrentpier/commit/de8f1925bae3b38db18b86eb4a10337853638ad7)) - Minor improvements ([#1876](https://github.com/torrentpier/torrentpier/pull/1876)) - ([eeb391d](https://github.com/torrentpier/torrentpier/commit/eeb391da6a16440492a3b803f63be301ba3d02d3)) - Minor improvements ([#1875](https://github.com/torrentpier/torrentpier/pull/1875)) - ([41a78dd](https://github.com/torrentpier/torrentpier/commit/41a78ddbcbc628f0592c59879df0170bf48664aa)) From c0cdcff48825ce5fb0c89c0ec44eb95686aee74c Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Wed, 23 Apr 2025 23:57:03 +0700 Subject: [PATCH 068/216] feat(magnet): Added `xl` (eXact Length) parametr (#1883) --- composer.lock | 4 ++-- library/attach_mod/displaying_torrent.php | 2 +- library/includes/functions.php | 17 +++++++++++------ tracker.php | 2 +- viewforum.php | 2 +- 5 files changed, 16 insertions(+), 11 deletions(-) diff --git a/composer.lock b/composer.lock index 94753599d..9b095995c 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "a906f822bca0d03bee43a9efe8529350", + "content-hash": "291864741a4c19d097861853d529836c", "packages": [ { "name": "arokettu/bencode", @@ -3741,7 +3741,7 @@ "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": "^8.1 | ^8.2 | ^8.3 | ^8.4" + "php": ">=8.1" }, "platform-dev": {}, "plugin-api-version": "2.6.0" diff --git a/library/attach_mod/displaying_torrent.php b/library/attach_mod/displaying_torrent.php index 0af704a52..a8dda29f1 100644 --- a/library/attach_mod/displaying_torrent.php +++ b/library/attach_mod/displaying_torrent.php @@ -149,7 +149,7 @@ if ($tor_reged && $tor_info) { // Magnet link $user_passkey = \TorrentPier\Legacy\Torrent::getPasskey($bt_user_id); - $tor_magnet = create_magnet($tor_info['info_hash'], $tor_info['info_hash_v2'], $user_passkey, html_ent_decode($t_data['topic_title'])); + $tor_magnet = create_magnet($tor_info['info_hash'], $tor_info['info_hash_v2'], $user_passkey, html_ent_decode($t_data['topic_title']), $tor_size); // ratio limits $min_ratio_dl = $bb_cfg['bt_min_ratio_allow_dl_tor']; diff --git a/library/includes/functions.php b/library/includes/functions.php index 2eaf182dc..ead1f5fb8 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -1811,14 +1811,14 @@ function decode_text_match($txt) /** * Create magnet link * - * @param string $infohash - * @param string $infohash_v2 - * @param string $auth_key - * @param string $name - * + * @param string $infohash (xt=urn:btih) + * @param string $infohash_v2 (xt=urn:btmh:1220) + * @param string $auth_key (tr) + * @param string $name (dn) + * @param int|string $length (xl) * @return string */ -function create_magnet(string $infohash, string $infohash_v2, string $auth_key, string $name): string +function create_magnet(string $infohash, string $infohash_v2, string $auth_key, string $name, int|string $length = 0): string { global $bb_cfg, $images, $lang; @@ -1847,6 +1847,11 @@ function create_magnet(string $infohash, string $infohash_v2, string $auth_key, $magnet .= 'xt=urn:btmh:1220' . bin2hex($infohash_v2); } + $length = (int)$length; + if ($length > 0) { + $magnet .= '&xl=' . $length; + } + return ''; } diff --git a/tracker.php b/tracker.php index 3675f7375..2e94615b9 100644 --- a/tracker.php +++ b/tracker.php @@ -713,7 +713,7 @@ if ($allowed_forums) { $s_last = $tor['seeder_last_seen']; $att_id = $tor['attach_id']; $size = $tor['size']; - $tor_magnet = create_magnet($tor['info_hash'], $tor['info_hash_v2'], \TorrentPier\Legacy\Torrent::getPasskey($user_id), html_ent_decode($tor['topic_title'])); + $tor_magnet = create_magnet($tor['info_hash'], $tor['info_hash_v2'], \TorrentPier\Legacy\Torrent::getPasskey($user_id), html_ent_decode($tor['topic_title']), $size); $compl = $tor['complete_count']; $dl_sp = $dl ? humn_size($dl, min: 'KB') . '/s' : '0 KB/s'; $ul_sp = $ul ? humn_size($ul, min: 'KB') . '/s' : '0 KB/s'; diff --git a/viewforum.php b/viewforum.php index fa281dfcd..a8e17b581 100644 --- a/viewforum.php +++ b/viewforum.php @@ -468,7 +468,7 @@ foreach ($topic_rowset as $topic) { ]); if (isset($topic['tor_size'])) { - $tor_magnet = create_magnet($topic['info_hash'], $topic['info_hash_v2'], $topic['auth_key'], html_ent_decode($topic['topic_title'])); + $tor_magnet = create_magnet($topic['info_hash'], $topic['info_hash_v2'], $topic['auth_key'], html_ent_decode($topic['topic_title']), $topic['tor_size']); $template->assign_block_vars('t.tor', [ 'SEEDERS' => (int)$topic['seeders'], From c98a4f760eefc976fb0f3247c79c22fe6d693a2b Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Thu, 24 Apr 2025 01:27:35 +0000 Subject: [PATCH 069/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ba622215..0c1c1d15b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ - *(avatar upload)* Added `accept="image/*"` attribute ([#1841](https://github.com/torrentpier/torrentpier/pull/1841)) - ([56d531a](https://github.com/torrentpier/torrentpier/commit/56d531aa5ddb778d08a2796fa9fb865e5b3040ce)) - *(emailer)* Added ability to configure `sendmail` - ([5ad4a70](https://github.com/torrentpier/torrentpier/commit/5ad4a7019d996d468650ab608ab53d6cf3ebb4f5)) +- *(magnet)* Added `xl` (eXact Length) parametr ([#1883](https://github.com/torrentpier/torrentpier/pull/1883)) - ([c0cdcff](https://github.com/torrentpier/torrentpier/commit/c0cdcff48825ce5fb0c89c0ec44eb95686aee74c)) - *(playback_m3u.php)* Added checking auth to download ([#1848](https://github.com/torrentpier/torrentpier/pull/1848)) - ([0b8d8a5](https://github.com/torrentpier/torrentpier/commit/0b8d8a5210ee761dddaa57fc48bb48b0ede1ec3c)) ### 🐛 Bug Fixes From 5fe770070e1cd71ea50ea3ad3825a322774f0baf Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Tue, 29 Apr 2025 20:26:03 +0300 Subject: [PATCH 070/216] misc: Composer dependencies are installed according to the minimum supported PHP version (#1884) --- .github/workflows/ci.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4c63b3393..e92dfe326 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,7 +44,7 @@ jobs: - name: Upload Archive 📤 uses: actions/upload-artifact@v4 with: - name: TorrentPier + name: TorrentPier-master path: ${{ steps.create-zip.outputs.ZIP_NAME }} deploy: @@ -59,6 +59,9 @@ jobs: with: php-version: '8.1' + - name: Update composer.lock file + run: composer update --no-install + - name: 🖇 Install Composer dependencies run: composer install --no-progress --prefer-dist --optimize-autoloader From 6bd000bc0d6176dbe1f0a573f081c9daefd3718b Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Tue, 29 Apr 2025 20:36:15 +0300 Subject: [PATCH 071/216] misc: Updated nightly builds link (#1885) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8bb82d3db..8397b363b 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ License Stars Packagist Crowdin - TorrentPier nightly + TorrentPier nightly Downloads Version Last release From 1663e19c3f80ae15792d6ffe4ce64e40129b14db Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Tue, 29 Apr 2025 20:41:03 +0300 Subject: [PATCH 072/216] misc(password_hash): Changed `cost` to `12` by default (#1886) --- library/config.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/config.php b/library/config.php index af87d3ace..dc4224d28 100644 --- a/library/config.php +++ b/library/config.php @@ -439,7 +439,7 @@ $bb_cfg['password_symbols'] = [ $bb_cfg['password_hash_options'] = [ // https://www.php.net/manual/ru/password.constants.php 'algo' => PASSWORD_BCRYPT, - 'options' => [] + 'options' => ['cost' => 12] ]; // Email From 0b489a25fd48cec7c9adffd42606bff4db5a87ed Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Wed, 30 Apr 2025 01:36:25 +0000 Subject: [PATCH 073/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c1c1d15b..7dda89b4e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -41,8 +41,11 @@ - *(README)* Removed `Build actions` badge ([#1861](https://github.com/torrentpier/torrentpier/pull/1861)) - ([e9920ab](https://github.com/torrentpier/torrentpier/commit/e9920ab59803552e3a1a00b603962208a62efe4e)) - *(cliff)* Added `.cliffignore` file to ignore reverted commits ([#1859](https://github.com/torrentpier/torrentpier/pull/1859)) - ([2eab551](https://github.com/torrentpier/torrentpier/commit/2eab551bd75e7acfd6f4dabe13b2a30ac09db880)) - *(nightly builds)* Added cleanup step ([#1851](https://github.com/torrentpier/torrentpier/pull/1851)) - ([299d9a1](https://github.com/torrentpier/torrentpier/commit/299d9a1f6c4f244e435803212e763c252e5bd396)) +- *(password_hash)* Changed `cost` to `12` by default ([#1886](https://github.com/torrentpier/torrentpier/pull/1886)) - ([1663e19](https://github.com/torrentpier/torrentpier/commit/1663e19c3f80ae15792d6ffe4ce64e40129b14db)) - *(render_flag)* Hide names for specified (`$nameIgnoreList`) flags ([#1862](https://github.com/torrentpier/torrentpier/pull/1862)) - ([83e42bc](https://github.com/torrentpier/torrentpier/commit/83e42bc5db086f60a6038b3fffca5982ceeced51)) - *(text captcha)* Disabled scatter effect by default - ([3af5202](https://github.com/torrentpier/torrentpier/commit/3af5202f7b2a4ea5d14bbc4808b7a380de2e0dc0)) +- Updated nightly builds link ([#1885](https://github.com/torrentpier/torrentpier/pull/1885)) - ([6bd000b](https://github.com/torrentpier/torrentpier/commit/6bd000bc0d6176dbe1f0a573f081c9daefd3718b)) +- Composer dependencies are installed according to the minimum supported PHP version ([#1884](https://github.com/torrentpier/torrentpier/pull/1884)) - ([5fe7700](https://github.com/torrentpier/torrentpier/commit/5fe770070e1cd71ea50ea3ad3825a322774f0baf)) - Corrected `php` version in `composer.json` ([#1882](https://github.com/torrentpier/torrentpier/pull/1882)) - ([bc1713a](https://github.com/torrentpier/torrentpier/commit/bc1713abdd28d04e8e1da3c3eabeb5170a35a460)) - Composer dependencies are installed according to the minimum supported PHP version ([#1881](https://github.com/torrentpier/torrentpier/pull/1881)) - ([5c4972e](https://github.com/torrentpier/torrentpier/commit/5c4972ec12340cbffb8ac941d390ee6c2c89b635)) - Minor improvements ([#1880](https://github.com/torrentpier/torrentpier/pull/1880)) - ([de8f192](https://github.com/torrentpier/torrentpier/commit/de8f1925bae3b38db18b86eb4a10337853638ad7)) From 7a14464d20fe8d2f8b980a82647c6b9ec081f621 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 May 2025 19:36:22 +0300 Subject: [PATCH 074/216] Composer(deps): Bump vlucas/phpdotenv from 5.6.1 to 5.6.2 (#1887) Bumps [vlucas/phpdotenv](https://github.com/vlucas/phpdotenv) from 5.6.1 to 5.6.2. - [Release notes](https://github.com/vlucas/phpdotenv/releases) - [Commits](https://github.com/vlucas/phpdotenv/compare/v5.6.1...v5.6.2) --- updated-dependencies: - dependency-name: vlucas/phpdotenv dependency-version: 5.6.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.lock b/composer.lock index 9b095995c..f29ecfabc 100644 --- a/composer.lock +++ b/composer.lock @@ -3508,16 +3508,16 @@ }, { "name": "vlucas/phpdotenv", - "version": "v5.6.1", + "version": "v5.6.2", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2" + "reference": "24ac4c74f91ee2c193fa1aaa5c249cb0822809af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/a59a13791077fe3d44f90e7133eb68e7d22eaff2", - "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/24ac4c74f91ee2c193fa1aaa5c249cb0822809af", + "reference": "24ac4c74f91ee2c193fa1aaa5c249cb0822809af", "shasum": "" }, "require": { @@ -3576,7 +3576,7 @@ ], "support": { "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.1" + "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.2" }, "funding": [ { @@ -3588,7 +3588,7 @@ "type": "tidelift" } ], - "time": "2024-07-20T21:52:34+00:00" + "time": "2025-04-30T23:37:27+00:00" }, { "name": "z4kn4fein/php-semver", @@ -3743,6 +3743,6 @@ "platform": { "php": ">=8.1" }, - "platform-dev": {}, - "plugin-api-version": "2.6.0" + "platform-dev": [], + "plugin-api-version": "2.3.0" } From 25224e6dfd166a5856071b376de498d56f895f15 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Fri, 2 May 2025 01:36:51 +0000 Subject: [PATCH 075/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7dda89b4e..99bda0817 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ ### 📦 Dependencies +- *(deps)* Bump vlucas/phpdotenv from 5.6.1 to 5.6.2 ([#1887](https://github.com/torrentpier/torrentpier/pull/1887)) - ([7a14464](https://github.com/torrentpier/torrentpier/commit/7a14464d20fe8d2f8b980a82647c6b9ec081f621)) - *(deps)* Bump php-curl-class/php-curl-class from 11.1.0 to 12.0.0 ([#1868](https://github.com/torrentpier/torrentpier/pull/1868)) - ([bd5aa2a](https://github.com/torrentpier/torrentpier/commit/bd5aa2a5e71560409bc630ea2334e33c77458ab3)) - *(deps)* Bump monolog/monolog from 3.8.1 to 3.9.0 ([#1865](https://github.com/torrentpier/torrentpier/pull/1865)) - ([6440162](https://github.com/torrentpier/torrentpier/commit/64401621879af0cc445c38687c571d2fec184410)) - *(deps)* Bump php-curl-class/php-curl-class from 11.0.5 to 11.1.0 ([#1864](https://github.com/torrentpier/torrentpier/pull/1864)) - ([de2fcea](https://github.com/torrentpier/torrentpier/commit/de2fceabedefd07441ba6801417157a9828e0e2a)) From e510ebc3ba30be7bf99769b1e5540353bd53c333 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Fri, 2 May 2025 14:43:36 +0300 Subject: [PATCH 076/216] feat(admin_ranks): Added confirmation on rank deleting (#1888) * feat(admin_ranks): Added confirmation on rank deleting * Update functions.php * Update admin_ranks.php --- admin/admin_ranks.php | 43 +++++++++++++++++++++++----------- library/includes/functions.php | 2 +- 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/admin/admin_ranks.php b/admin/admin_ranks.php index 366668301..03b63d5b2 100644 --- a/admin/admin_ranks.php +++ b/admin/admin_ranks.php @@ -29,6 +29,10 @@ if (isset($_GET['mode']) || isset($_POST['mode'])) { } } +if ($mode == 'delete' && isset($_POST['cancel'])) { + $mode = ''; +} + if ($mode != '') { if ($mode == 'edit' || $mode == 'add') { // @@ -123,29 +127,40 @@ if ($mode != '') { // Ok, they want to delete their rank // + $confirmed = isset($_POST['confirm']); if (isset($_POST['id']) || isset($_GET['id'])) { $rank_id = isset($_POST['id']) ? (int)$_POST['id'] : (int)$_GET['id']; } else { $rank_id = 0; } - if ($rank_id) { - $sql = 'DELETE FROM ' . BB_RANKS . " WHERE rank_id = $rank_id"; + if ($confirmed) { + if ($rank_id) { + $sql = 'DELETE FROM ' . BB_RANKS . " WHERE rank_id = $rank_id"; - if (!$result = DB()->sql_query($sql)) { - bb_die('Could not delete rank data'); + if (!$result = DB()->sql_query($sql)) { + bb_die('Could not delete rank data'); + } + + $sql = 'UPDATE ' . BB_USERS . " SET user_rank = 0 WHERE user_rank = $rank_id"; + if (!$result = DB()->sql_query($sql)) { + bb_die($lang['NO_UPDATE_RANKS']); + } + + $datastore->update('ranks'); + + bb_die($lang['RANK_REMOVED'] . '

' . sprintf($lang['CLICK_RETURN_RANKADMIN'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '')); + } else { + bb_die($lang['MUST_SELECT_RANK']); } - - $sql = 'UPDATE ' . BB_USERS . " SET user_rank = 0 WHERE user_rank = $rank_id"; - if (!$result = DB()->sql_query($sql)) { - bb_die($lang['NO_UPDATE_RANKS']); - } - - $datastore->update('ranks'); - - bb_die($lang['RANK_REMOVED'] . '

' . sprintf($lang['CLICK_RETURN_RANKADMIN'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '')); } else { - bb_die($lang['MUST_SELECT_RANK']); + $hidden_fields = ''; + $hidden_fields .= ''; + + print_confirmation([ + 'FORM_ACTION' => 'admin_ranks.php', + 'HIDDEN_FIELDS' => $hidden_fields, + ]); } } else { bb_die('Invalid mode'); diff --git a/library/includes/functions.php b/library/includes/functions.php index ead1f5fb8..850a344ef 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -1592,7 +1592,7 @@ function build_topic_pagination($url, $replies, $per_page) return $pg; } -function print_confirmation($tpl_vars) +function print_confirmation($tpl_vars): void { global $template, $lang; From 071fc04b48091dd3ad253a4db1fc646178f48f2d Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Sat, 3 May 2025 01:26:39 +0000 Subject: [PATCH 077/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 99bda0817..53b923bd6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ ### 🚀 Features +- *(admin_ranks)* Added confirmation on rank deleting ([#1888](https://github.com/torrentpier/torrentpier/pull/1888)) - ([e510ebc](https://github.com/torrentpier/torrentpier/commit/e510ebc3ba30be7bf99769b1e5540353bd53c333)) - *(avatar upload)* Added `accept="image/*"` attribute ([#1841](https://github.com/torrentpier/torrentpier/pull/1841)) - ([56d531a](https://github.com/torrentpier/torrentpier/commit/56d531aa5ddb778d08a2796fa9fb865e5b3040ce)) - *(emailer)* Added ability to configure `sendmail` - ([5ad4a70](https://github.com/torrentpier/torrentpier/commit/5ad4a7019d996d468650ab608ab53d6cf3ebb4f5)) - *(magnet)* Added `xl` (eXact Length) parametr ([#1883](https://github.com/torrentpier/torrentpier/pull/1883)) - ([c0cdcff](https://github.com/torrentpier/torrentpier/commit/c0cdcff48825ce5fb0c89c0ec44eb95686aee74c)) From 75e9d5e4a8c5ec20f438e7b24a5469d219959a8c Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sat, 3 May 2025 16:24:48 +0300 Subject: [PATCH 078/216] feat(atom): Hide topics from private forums (#1889) --- src/Legacy/Atom.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Legacy/Atom.php b/src/Legacy/Atom.php index 21d65d7ac..10b78422e 100644 --- a/src/Legacy/Atom.php +++ b/src/Legacy/Atom.php @@ -25,10 +25,17 @@ class Atom */ public static function update_forum_feed($forum_id, $forum_data) { - global $bb_cfg, $lang; + global $bb_cfg, $lang, $datastore; $sql = null; $file_path = $bb_cfg['atom']['path'] . '/f/' . $forum_id . '.atom'; $select_tor_sql = $join_tor_sql = ''; + + if (!$forums = $datastore->get('cat_forums')) { + $datastore->update('cat_forums'); + $forums = $datastore->get('cat_forums'); + } + $not_forums_id = $forums['not_auth_forums']['guest_view']; + if ($forum_id == 0) { $forum_data['forum_name'] = $lang['ATOM_GLOBAL_FEED'] ?? $bb_cfg['server_name']; } @@ -77,6 +84,9 @@ class Atom $topics_tmp = DB()->fetch_rowset($sql); $topics = []; foreach ($topics_tmp as $topic) { + if (in_array($topic['topic_id'], explode(',', $not_forums_id))) { + continue; + } if (isset($topic['topic_status'])) { if ($topic['topic_status'] == TOPIC_MOVED) { continue; From 3a679bc253a8b2518798cbd6d9df4e41dfea3d93 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Sat, 3 May 2025 13:32:36 +0000 Subject: [PATCH 079/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 53b923bd6..b08add96b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ ### 🚀 Features - *(admin_ranks)* Added confirmation on rank deleting ([#1888](https://github.com/torrentpier/torrentpier/pull/1888)) - ([e510ebc](https://github.com/torrentpier/torrentpier/commit/e510ebc3ba30be7bf99769b1e5540353bd53c333)) +- *(atom)* Hide topics from private forums ([#1889](https://github.com/torrentpier/torrentpier/pull/1889)) - ([75e9d5e](https://github.com/torrentpier/torrentpier/commit/75e9d5e4a8c5ec20f438e7b24a5469d219959a8c)) - *(avatar upload)* Added `accept="image/*"` attribute ([#1841](https://github.com/torrentpier/torrentpier/pull/1841)) - ([56d531a](https://github.com/torrentpier/torrentpier/commit/56d531aa5ddb778d08a2796fa9fb865e5b3040ce)) - *(emailer)* Added ability to configure `sendmail` - ([5ad4a70](https://github.com/torrentpier/torrentpier/commit/5ad4a7019d996d468650ab608ab53d6cf3ebb4f5)) - *(magnet)* Added `xl` (eXact Length) parametr ([#1883](https://github.com/torrentpier/torrentpier/pull/1883)) - ([c0cdcff](https://github.com/torrentpier/torrentpier/commit/c0cdcff48825ce5fb0c89c0ec44eb95686aee74c)) From 1db941295757d5e2bca0b2315d98413130123c9d Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sat, 3 May 2025 20:43:45 +0300 Subject: [PATCH 080/216] =?UTF-8?q?release:=20v2.4.5-rc.5=20=F0=9F=90=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/config.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/config.php b/library/config.php index dc4224d28..232f0f96d 100644 --- a/library/config.php +++ b/library/config.php @@ -18,8 +18,8 @@ $reserved_port = env('TP_PORT', 80); $bb_cfg = []; // Version info -$bb_cfg['tp_version'] = 'v2.4.5-rc.4'; -$bb_cfg['tp_release_date'] = '09-03-2025'; +$bb_cfg['tp_version'] = 'v2.4.5-rc.5'; +$bb_cfg['tp_release_date'] = '03-05-2025'; $bb_cfg['tp_release_codename'] = 'Cattle'; // Increase version number after changing JS or CSS From ccb122f9cbbfa2bcf4c87709111382861fa9a55b Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Sat, 3 May 2025 17:50:28 +0000 Subject: [PATCH 081/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b08add96b..5f9060fea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ > [!NOTE] > To view changelog from **v2.0.0** to **v2.4.5-rc.2** navigate to [HISTORY.md](HISTORY.md). -## [nightly](https://nightly.link/torrentpier/torrentpier/workflows/build/master/TorrentPier) +## [v2.4.5-rc.5](https://github.com/torrentpier/torrentpier/compare/v2.4.5-rc.4..v2.4.5-rc.5) (2025-05-03) ### 🚀 Features From f5d65b8911c5e864f000348a6d1aefbb4c09c2b4 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sun, 4 May 2025 10:38:38 +0300 Subject: [PATCH 082/216] feat: Added ability to hide BitTorrent client in peers list (#1890) * feat: Added ability to hide peer torrent client * Update displaying_torrent.php * Update functions.php * Update register.php * Updated --- composer.lock | 40 ++++++++++---------- library/attach_mod/displaying_torrent.php | 11 +++++- library/includes/functions.php | 1 + library/includes/ucp/register.php | 1 + library/language/source/main.php | 1 + styles/templates/default/usercp_register.tpl | 7 ++++ 6 files changed, 39 insertions(+), 22 deletions(-) diff --git a/composer.lock b/composer.lock index f29ecfabc..02bb5624b 100644 --- a/composer.lock +++ b/composer.lock @@ -3145,16 +3145,16 @@ }, { "name": "symfony/mailer", - "version": "v6.4.18", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "e93a6ae2767d7f7578c2b7961d9d8e27580b2b11" + "reference": "ada2809ccd4ec27aba9fc344e3efdaec624c6438" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/e93a6ae2767d7f7578c2b7961d9d8e27580b2b11", - "reference": "e93a6ae2767d7f7578c2b7961d9d8e27580b2b11", + "url": "https://api.github.com/repos/symfony/mailer/zipball/ada2809ccd4ec27aba9fc344e3efdaec624c6438", + "reference": "ada2809ccd4ec27aba9fc344e3efdaec624c6438", "shasum": "" }, "require": { @@ -3205,7 +3205,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.4.18" + "source": "https://github.com/symfony/mailer/tree/v6.4.21" }, "funding": [ { @@ -3221,20 +3221,20 @@ "type": "tidelift" } ], - "time": "2025-01-24T15:27:15+00:00" + "time": "2025-04-26T23:47:35+00:00" }, { "name": "symfony/mime", - "version": "v6.4.19", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "ac537b6c55ccc2c749f3c979edfa9ec14aaed4f3" + "reference": "fec8aa5231f3904754955fad33c2db50594d22d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/ac537b6c55ccc2c749f3c979edfa9ec14aaed4f3", - "reference": "ac537b6c55ccc2c749f3c979edfa9ec14aaed4f3", + "url": "https://api.github.com/repos/symfony/mime/zipball/fec8aa5231f3904754955fad33c2db50594d22d1", + "reference": "fec8aa5231f3904754955fad33c2db50594d22d1", "shasum": "" }, "require": { @@ -3290,7 +3290,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.4.19" + "source": "https://github.com/symfony/mime/tree/v6.4.21" }, "funding": [ { @@ -3306,7 +3306,7 @@ "type": "tidelift" } ], - "time": "2025-02-17T21:23:52+00:00" + "time": "2025-04-27T13:27:38+00:00" }, { "name": "symfony/polyfill", @@ -3648,16 +3648,16 @@ "packages-dev": [ { "name": "symfony/var-dumper", - "version": "v6.4.18", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "4ad10cf8b020e77ba665305bb7804389884b4837" + "reference": "22560f80c0c5cd58cc0bcaf73455ffd81eb380d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/4ad10cf8b020e77ba665305bb7804389884b4837", - "reference": "4ad10cf8b020e77ba665305bb7804389884b4837", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/22560f80c0c5cd58cc0bcaf73455ffd81eb380d5", + "reference": "22560f80c0c5cd58cc0bcaf73455ffd81eb380d5", "shasum": "" }, "require": { @@ -3713,7 +3713,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.18" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.21" }, "funding": [ { @@ -3729,7 +3729,7 @@ "type": "tidelift" } ], - "time": "2025-01-17T11:26:11+00:00" + "time": "2025-04-09T07:34:50+00:00" } ], "aliases": [], @@ -3743,6 +3743,6 @@ "platform": { "php": ">=8.1" }, - "platform-dev": [], - "plugin-api-version": "2.3.0" + "platform-dev": {}, + "plugin-api-version": "2.6.0" } diff --git a/library/attach_mod/displaying_torrent.php b/library/attach_mod/displaying_torrent.php index a8dda29f1..84e9fa359 100644 --- a/library/attach_mod/displaying_torrent.php +++ b/library/attach_mod/displaying_torrent.php @@ -301,7 +301,7 @@ if ($tor_reged && $tor_info) { $sql = "SELECT tr.user_id, tr.ip, tr.ipv6, tr.port, tr.peer_id, tr.uploaded, tr.downloaded, tr.remain, tr.seeder, tr.releaser, tr.speed_up, tr.speed_down, tr.update_time, - tr.complete_percent, u.username, u.user_rank + tr.complete_percent, u.username, u.user_rank, u.user_opt FROM " . BB_BT_TRACKER . " tr LEFT JOIN " . BB_USERS . " u ON u.user_id = tr.user_id WHERE tr.topic_id = $tor_id @@ -455,10 +455,17 @@ if ($tor_reged && $tor_info) { $row_bgr = ($change_peers_bgr_over) ? " class=\"$bgr_class\" onmouseover=\"this.className='$bgr_class_over';\" onmouseout=\"this.className='$bgr_class';\"" : ''; $tr[$x]++; + $peerTorrentClient = $lang['UNKNOWN']; + if (IS_AM || $peer['user_id'] == $userdata['user_id'] || !bf($peer['user_opt'], 'user_opt', 'user_hide_torrent_client')) { + if (isset($peer['peer_id'])) { + $peerTorrentClient = get_user_torrent_client($peer['peer_id']); + } + } + $template->assign_block_vars("$x_full.$x_row", [ 'ROW_BGR' => $row_bgr, 'NAME' => ($peer['update_time']) ? $name : "$name", - 'PEER_ID' => isset($peer['peer_id']) ? get_user_torrent_client($peer['peer_id']) : $lang['UNKNOWN'], + 'PEER_ID' => $peerTorrentClient, 'COUNTRY' => render_flag(infoByIP((!empty($peer['ipv6']) ? $peer['ipv6'] : $peer['ip']), $peer['port'])['countryCode'], false), 'COMPL_PRC' => $compl_perc, 'UP_TOTAL' => ($max_up_id[$x] == $pid) ? "$up_tot" : $up_tot, diff --git a/library/includes/functions.php b/library/includes/functions.php index 850a344ef..a383c00d3 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -197,6 +197,7 @@ $bf['user_opt'] = [ 'dis_post_edit' => 13, // [PROHIBITIONS] Block editing own posts / topics 'user_dls' => 14, // [SETTINGS] Hide list of "Current downloads" in my profile 'user_retracker' => 15, // [SETTINGS] Add my retracker into downloaded torrent files + 'user_hide_torrent_client' => 16 // [SETTINGS] Option to hide user's torrent client in peer list ]; function bit2dec($bit_num) diff --git a/library/includes/ucp/register.php b/library/includes/ucp/register.php index 25acbfc0a..6abf55c1e 100644 --- a/library/includes/ucp/register.php +++ b/library/includes/ucp/register.php @@ -365,6 +365,7 @@ foreach ($profile_fields as $field => $can_edit) { 'user_dls' => $reg_mode ? false : true, 'user_callseed' => $reg_mode ? true : true, 'user_retracker' => $reg_mode ? true : true, + 'user_hide_torrent_client' => $reg_mode ? true : true, ]; foreach ($update_user_opt as $opt => $can_change_opt) { diff --git a/library/language/source/main.php b/library/language/source/main.php index 65fd05fd1..c8ee2c495 100644 --- a/library/language/source/main.php +++ b/library/language/source/main.php @@ -1879,6 +1879,7 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'stopped'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'shows data only for the current session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin first post'; diff --git a/styles/templates/default/usercp_register.tpl b/styles/templates/default/usercp_register.tpl index a19d17371..9f3016280 100644 --- a/styles/templates/default/usercp_register.tpl +++ b/styles/templates/default/usercp_register.tpl @@ -319,6 +319,13 @@ +

+ + + From 2555ebce4717f871922495e48cbca9e22da78bd5 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sun, 4 May 2025 11:55:28 +0300 Subject: [PATCH 083/216] feat: Added ability to hide peer country in peer list (#1891) * feat: Added ability to hide peer country in peer list * Update displaying_torrent.php * Update displaying_torrent.php * Updated * Update usercp_register.tpl * Update main.php * Update functions.php --- library/attach_mod/displaying_torrent.php | 13 ++++++++++++- library/includes/functions.php | 11 +++++++++-- library/includes/ucp/register.php | 1 + library/language/source/main.php | 1 + styles/templates/default/usercp_register.tpl | 7 +++++++ 5 files changed, 30 insertions(+), 3 deletions(-) diff --git a/library/attach_mod/displaying_torrent.php b/library/attach_mod/displaying_torrent.php index 84e9fa359..0a780e16d 100644 --- a/library/attach_mod/displaying_torrent.php +++ b/library/attach_mod/displaying_torrent.php @@ -462,11 +462,22 @@ if ($tor_reged && $tor_info) { } } + $peerCountry = $lang['UNKNOWN']; + if (IS_AM || $peer['user_id'] == $userdata['user_id'] || !bf($peer['user_opt'], 'user_opt', 'user_hide_peer_country')) { + if ($port !== false && $ip !== false) { + if ($infoByIP = infoByIP($ip, $port)) { + if (isset($infoByIP['countryCode'])) { + $peerCountry = render_flag($infoByIP['countryCode']); + } + } + } + } + $template->assign_block_vars("$x_full.$x_row", [ 'ROW_BGR' => $row_bgr, 'NAME' => ($peer['update_time']) ? $name : "$name", 'PEER_ID' => $peerTorrentClient, - 'COUNTRY' => render_flag(infoByIP((!empty($peer['ipv6']) ? $peer['ipv6'] : $peer['ip']), $peer['port'])['countryCode'], false), + 'COUNTRY' => $peerCountry, 'COMPL_PRC' => $compl_perc, 'UP_TOTAL' => ($max_up_id[$x] == $pid) ? "$up_tot" : $up_tot, 'DOWN_TOTAL' => ($max_down_id[$x] == $pid) ? "$down_tot" : $down_tot, diff --git a/library/includes/functions.php b/library/includes/functions.php index a383c00d3..efc0bee13 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -197,7 +197,8 @@ $bf['user_opt'] = [ 'dis_post_edit' => 13, // [PROHIBITIONS] Block editing own posts / topics 'user_dls' => 14, // [SETTINGS] Hide list of "Current downloads" in my profile 'user_retracker' => 15, // [SETTINGS] Add my retracker into downloaded torrent files - 'user_hide_torrent_client' => 16 // [SETTINGS] Option to hide user's torrent client in peer list + 'user_hide_torrent_client' => 16, // [SETTINGS] Option to hide user's torrent client in peer list + 'user_hide_peer_country' => 17 // [SETTINGS] Option to hide user's country name in peer list ]; function bit2dec($bit_num) @@ -602,7 +603,13 @@ function bt_show_ip($ip, $port = '') if (IS_AM) { $ip = \TorrentPier\Helpers\IPHelper::long2ip_extended($ip); - $ip .= ($port) ? ":$port" : ''; + + // Wrap IPv6 address in square brackets + if ($port && str_contains($ip, ':')) { + $ip = "[$ip]"; + } + $ip .= $port ? ":$port" : ''; + return $ip; } diff --git a/library/includes/ucp/register.php b/library/includes/ucp/register.php index 6abf55c1e..0e8cc2e34 100644 --- a/library/includes/ucp/register.php +++ b/library/includes/ucp/register.php @@ -366,6 +366,7 @@ foreach ($profile_fields as $field => $can_edit) { 'user_callseed' => $reg_mode ? true : true, 'user_retracker' => $reg_mode ? true : true, 'user_hide_torrent_client' => $reg_mode ? true : true, + 'user_hide_peer_country' => $reg_mode ? true : true, ]; foreach ($update_user_opt as $opt => $can_change_opt) { diff --git a/library/language/source/main.php b/library/language/source/main.php index c8ee2c495..3f8da2cdc 100644 --- a/library/language/source/main.php +++ b/library/language/source/main.php @@ -1880,6 +1880,7 @@ $lang['DL_STOPPED'] = 'stopped'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'shows data only for the current session'; $lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin first post'; diff --git a/styles/templates/default/usercp_register.tpl b/styles/templates/default/usercp_register.tpl index 9f3016280..d55a7a208 100644 --- a/styles/templates/default/usercp_register.tpl +++ b/styles/templates/default/usercp_register.tpl @@ -326,6 +326,13 @@ + + + + From 1e5b93d2c072c5c35feef7567b3fcdb4b3597935 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sun, 4 May 2025 12:27:13 +0300 Subject: [PATCH 084/216] misc: Minor improvements (#1892) --- library/attach_mod/displaying_torrent.php | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/library/attach_mod/displaying_torrent.php b/library/attach_mod/displaying_torrent.php index 0a780e16d..4d698ee09 100644 --- a/library/attach_mod/displaying_torrent.php +++ b/library/attach_mod/displaying_torrent.php @@ -464,11 +464,9 @@ if ($tor_reged && $tor_info) { $peerCountry = $lang['UNKNOWN']; if (IS_AM || $peer['user_id'] == $userdata['user_id'] || !bf($peer['user_opt'], 'user_opt', 'user_hide_peer_country')) { - if ($port !== false && $ip !== false) { - if ($infoByIP = infoByIP($ip, $port)) { - if (isset($infoByIP['countryCode'])) { - $peerCountry = render_flag($infoByIP['countryCode']); - } + if ($infoByIP = infoByIP((!empty($peer['ipv6']) ? $peer['ipv6'] : $peer['ip']), $peer['port'])) { + if (isset($infoByIP['countryCode'])) { + $peerCountry = render_flag($infoByIP['countryCode']); } } } From 90ece5c7621789f170246b2898841b347e264674 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sun, 4 May 2025 12:33:08 +0300 Subject: [PATCH 085/216] misc: Minor improvements (#1893) --- library/attach_mod/displaying_torrent.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/attach_mod/displaying_torrent.php b/library/attach_mod/displaying_torrent.php index 4d698ee09..a621cb113 100644 --- a/library/attach_mod/displaying_torrent.php +++ b/library/attach_mod/displaying_torrent.php @@ -465,7 +465,7 @@ if ($tor_reged && $tor_info) { $peerCountry = $lang['UNKNOWN']; if (IS_AM || $peer['user_id'] == $userdata['user_id'] || !bf($peer['user_opt'], 'user_opt', 'user_hide_peer_country')) { if ($infoByIP = infoByIP((!empty($peer['ipv6']) ? $peer['ipv6'] : $peer['ip']), $peer['port'])) { - if (isset($infoByIP['countryCode'])) { + if (!empty($infoByIP['countryCode'])) { $peerCountry = render_flag($infoByIP['countryCode']); } } From 8edba72f09f037225ede058cf09c830b1a01e78f Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sun, 4 May 2025 16:20:02 +0300 Subject: [PATCH 086/216] fix: Peer country flag not shown in peers list (#1894) * fix: Peer country flag not shown in peers list * Update functions.php --- library/attach_mod/displaying_torrent.php | 2 +- library/includes/functions.php | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/library/attach_mod/displaying_torrent.php b/library/attach_mod/displaying_torrent.php index a621cb113..426bce393 100644 --- a/library/attach_mod/displaying_torrent.php +++ b/library/attach_mod/displaying_torrent.php @@ -466,7 +466,7 @@ if ($tor_reged && $tor_info) { if (IS_AM || $peer['user_id'] == $userdata['user_id'] || !bf($peer['user_opt'], 'user_opt', 'user_hide_peer_country')) { if ($infoByIP = infoByIP((!empty($peer['ipv6']) ? $peer['ipv6'] : $peer['ip']), $peer['port'])) { if (!empty($infoByIP['countryCode'])) { - $peerCountry = render_flag($infoByIP['countryCode']); + $peerCountry = render_flag($infoByIP['countryCode'], false); } } } diff --git a/library/includes/functions.php b/library/includes/functions.php index efc0bee13..8bc2933ef 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -2189,7 +2189,9 @@ function readUpdaterFile(): array|bool */ function infoByIP(string $ipAddress, int $port = 0): array { - if (!$data = CACHE('bb_ip2countries')->get($ipAddress . '_' . $port)) { + $ipAddress = \TorrentPier\Helpers\IPHelper::long2ip_extended($ipAddress); + $cacheName = hash('xxh128', ($ipAddress . '_' . $port)); + if (!$data = CACHE('bb_ip2countries')->get($cacheName)) { $data = []; $response = file_get_contents(API_IP_URL . $ipAddress); $json = json_decode($response, true); @@ -2200,7 +2202,7 @@ function infoByIP(string $ipAddress, int $port = 0): array 'continent' => $json['continent'], 'continentCode' => $json['continentCode'] ]; - CACHE('bb_ip2countries')->set($ipAddress . '_' . $port, $data, 1200); + CACHE('bb_ip2countries')->set($cacheName, $data, 1200); } } From bdd4d9322bcb0f8818432aa5cee4faa952e8bc7d Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Sun, 4 May 2025 13:25:46 +0000 Subject: [PATCH 087/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f9060fea..02579fb0c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,23 @@ > [!NOTE] > To view changelog from **v2.0.0** to **v2.4.5-rc.2** navigate to [HISTORY.md](HISTORY.md). +## [nightly](https://nightly.link/torrentpier/torrentpier/workflows/build/master/TorrentPier) + +### 🚀 Features + +- Added ability to hide peer country in peer list ([#1891](https://github.com/torrentpier/torrentpier/pull/1891)) - ([2555ebc](https://github.com/torrentpier/torrentpier/commit/2555ebce4717f871922495e48cbca9e22da78bd5)) +- Added ability to hide BitTorrent client in peers list ([#1890](https://github.com/torrentpier/torrentpier/pull/1890)) - ([f5d65b8](https://github.com/torrentpier/torrentpier/commit/f5d65b8911c5e864f000348a6d1aefbb4c09c2b4)) + +### 🐛 Bug Fixes + +- Peer country flag not shown in peers list ([#1894](https://github.com/torrentpier/torrentpier/pull/1894)) - ([8edba72](https://github.com/torrentpier/torrentpier/commit/8edba72f09f037225ede058cf09c830b1a01e78f)) + +### ⚙️ Miscellaneous + +- Minor improvements ([#1893](https://github.com/torrentpier/torrentpier/pull/1893)) - ([90ece5c](https://github.com/torrentpier/torrentpier/commit/90ece5c7621789f170246b2898841b347e264674)) +- Minor improvements ([#1892](https://github.com/torrentpier/torrentpier/pull/1892)) - ([1e5b93d](https://github.com/torrentpier/torrentpier/commit/1e5b93d2c072c5c35feef7567b3fcdb4b3597935)) + + ## [v2.4.5-rc.5](https://github.com/torrentpier/torrentpier/compare/v2.4.5-rc.4..v2.4.5-rc.5) (2025-05-03) ### 🚀 Features From b51820e1861044143321fcde5239c22abc3de984 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sun, 4 May 2025 16:50:17 +0300 Subject: [PATCH 088/216] feat(admin_smilies): Added confirmation on smilie deleting (#1895) * feat(admin_smilies): Added confirmation on smilie deleting * Update admin_smilies.php --- admin/admin_smilies.php | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/admin/admin_smilies.php b/admin/admin_smilies.php index c91723a5e..e53c24223 100644 --- a/admin/admin_smilies.php +++ b/admin/admin_smilies.php @@ -22,6 +22,10 @@ if (isset($_POST['mode']) || isset($_GET['mode'])) { $mode = ''; } +if ($mode == 'delete' && isset($_POST['cancel'])) { + $mode = ''; +} + $pathToSmilesDir = BB_ROOT . $bb_cfg['smilies_path']; $delimeter = '=+:'; $s_hidden_fields = ''; @@ -174,17 +178,28 @@ if (isset($_GET['import_pack']) || isset($_POST['import_pack'])) { } elseif ($mode != '') { switch ($mode) { case 'delete': + $confirmed = isset($_POST['confirm']); $smiley_id = (!empty($_POST['id'])) ? $_POST['id'] : $_GET['id']; $smiley_id = (int)$smiley_id; - $sql = 'DELETE FROM ' . BB_SMILIES . ' WHERE smilies_id = ' . $smiley_id; - $result = DB()->sql_query($sql); - if (!$result) { - bb_die('Could not delete smiley'); - } - $datastore->update('smile_replacements'); + if ($confirmed) { + $sql = 'DELETE FROM ' . BB_SMILIES . ' WHERE smilies_id = ' . $smiley_id; + $result = DB()->sql_query($sql); + if (!$result) { + bb_die('Could not delete smiley'); + } - bb_die($lang['SMILEY_DEL_SUCCESS'] . '

' . sprintf($lang['CLICK_RETURN_SMILEADMIN'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '')); + $datastore->update('smile_replacements'); + bb_die($lang['SMILEY_DEL_SUCCESS'] . '

' . sprintf($lang['CLICK_RETURN_SMILEADMIN'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '')); + } else { + $hidden_fields = ''; + $hidden_fields .= ''; + + print_confirmation([ + 'FORM_ACTION' => 'admin_smilies.php', + 'HIDDEN_FIELDS' => $hidden_fields, + ]); + } break; case 'edit': From 36d399220e2c16a582e1e400df0002c164f5ec3b Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sun, 4 May 2025 17:28:22 +0300 Subject: [PATCH 089/216] fix: `Undefined array key "smile"` when are no smilies (#1896) --- library/includes/bbcode.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/includes/bbcode.php b/library/includes/bbcode.php index 29ea40982..9e34d8940 100644 --- a/library/includes/bbcode.php +++ b/library/includes/bbcode.php @@ -118,7 +118,7 @@ function generate_smilies($mode) $data = $datastore->get('smile_replacements'); - if ($sql = $data['smile']) { + if (isset($data['smile']) && $sql = $data['smile']) { $num_smilies = 0; $rowset = []; foreach ($sql as $row) { From 14086a0ed6181a0ff4496ee2e56f4fb70bfe18d5 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sun, 4 May 2025 19:40:57 +0300 Subject: [PATCH 090/216] misc: Minor improvements (#1897) --- library/includes/functions.php | 5 +---- src/Censor.php | 5 +---- src/Legacy/BBCode.php | 19 ++++++++----------- 3 files changed, 10 insertions(+), 19 deletions(-) diff --git a/library/includes/functions.php b/library/includes/functions.php index 8bc2933ef..bf055495b 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -2154,10 +2154,7 @@ function getBanInfo(?int $userId = null): ?array global $datastore; // Get bans info from datastore - if (!$bans = $datastore->get('ban_list')) { - $datastore->update('ban_list'); - $bans = $datastore->get('ban_list'); - } + $bans = $datastore->get('ban_list'); if (!isset($userId)) { return $bans; diff --git a/src/Censor.php b/src/Censor.php index b28aec723..5b4d00a73 100644 --- a/src/Censor.php +++ b/src/Censor.php @@ -41,10 +41,7 @@ class Censor } // Get censored words - if (!$censoredWords = $datastore->get('censor')) { - $datastore->update('censor'); - $censoredWords = $datastore->get('censor'); - } + $censoredWords = $datastore->get('censor'); foreach ($censoredWords as $word) { $this->words[] = '#(?smilies = $datastore->get('smile_replacements')) { - $datastore->update('smile_replacements'); - $this->smilies = $datastore->get('smile_replacements'); - } + $this->smilies = $datastore->get('smile_replacements'); - if (defined('IN_ADMIN')) { - foreach ($this->smilies['repl'] as &$smile) { - $smile = preg_replace('/src="([^"]+)"/', 'src="./../$1"', $smile); + if (!empty($this->smilies)) { + if (defined('IN_ADMIN')) { + foreach ($this->smilies['repl'] as &$smile) { + $smile = preg_replace('/src="([^"]+)"/', 'src="./../$1"', $smile); + } + unset($smile); } - unset($smile); - } - if ($this->smilies) { /** @noinspection NestedPositiveIfStatementsInspection */ if ($parsed_text = preg_replace($this->smilies['orig'], $this->smilies['repl'], $text)) { return $parsed_text; From 781b7240c41ddd141cfb057480c10d9cee30e6d7 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sun, 4 May 2025 20:16:58 +0300 Subject: [PATCH 091/216] fix: Incorrect rounding in execution time counter (#1899) * fix: Incorrect rounding in execution time counter * Update page_footer.php --- admin/stats/tr_stats.php | 2 +- admin/stats/tracker.php | 2 +- library/includes/page_footer.php | 4 ++-- src/Dev.php | 2 +- src/Legacy/SqlDb.php | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/admin/stats/tr_stats.php b/admin/stats/tr_stats.php index 591b675c6..4cd8733c3 100644 --- a/admin/stats/tr_stats.php +++ b/admin/stats/tr_stats.php @@ -39,7 +39,7 @@ foreach ($sql as $i => $query) { echo '
{postrow.attach.tor_reged.DOWNLOAD_NAME} - {L_BT_FLIST_LINK_TITLE} + {L_BT_FLIST_LINK_TITLE}  {postrow.attach.tor_reged.MAGNET}
{L_HIDE_PEER_TORRENT_CLIENT}: +    + +
{L_AVATAR_PANEL}
{L_HIDE_PEER_COUNTRY_NAME}: +    + +
{L_AVATAR_PANEL}
'; echo '

';
 
-echo 'gen time: ' . sprintf('%.4f', array_sum(explode(' ', microtime())) - TIMESTART) . " sec\n";
+echo 'gen time: ' . sprintf('%.3f', array_sum(explode(' ', microtime())) - TIMESTART) . " sec\n";
 
 echo '
'; echo ''; diff --git a/admin/stats/tracker.php b/admin/stats/tracker.php index 102436bcb..977856b4c 100644 --- a/admin/stats/tracker.php +++ b/admin/stats/tracker.php @@ -173,7 +173,7 @@ echo ''; echo !$client_full ? '

Simple stats for clients are being cached for one hour.

' : ''; echo '
';
 
-echo 'gen time: ' . sprintf('%.4f', array_sum(explode(' ', microtime())) - TIMESTART) . " sec\n";
+echo 'gen time: ' . sprintf('%.3f', array_sum(explode(' ', microtime())) - TIMESTART) . " sec\n";
 echo '
'; echo ''; diff --git a/library/includes/page_footer.php b/library/includes/page_footer.php index 15b1023b3..2eadbe6f2 100644 --- a/library/includes/page_footer.php +++ b/library/includes/page_footer.php @@ -35,7 +35,7 @@ if (!$bb_cfg['gzip_compress']) { if ($show_dbg_info) { $gen_time = utime() - TIMESTART; - $gen_time_txt = sprintf('%.4f', $gen_time); + $gen_time_txt = sprintf('%.3f', $gen_time); $gzip_text = UA_GZIP_SUPPORTED ? "{$lang['GZIP_COMPRESSION']}: " : "{$lang['GZIP_COMPRESSION']}: "; $gzip_text .= $bb_cfg['gzip_compress'] ? $lang['ON'] : $lang['OFF']; @@ -43,7 +43,7 @@ if ($show_dbg_info) { if (!empty($DBS)) { $sql_t = $DBS->sql_timetotal; - $sql_time_txt = ($sql_t) ? sprintf('%.4f ' . $lang['SEC'] . ' (%d%%) · ', $sql_t, round($sql_t * 100 / $gen_time)) : ''; + $sql_time_txt = ($sql_t) ? sprintf('%.3f ' . $lang['SEC'] . ' (%d%%) · ', $sql_t, round($sql_t * 100 / $gen_time)) : ''; $num_q = $DBS->num_queries; $stat .= "  |  {$DBS->get_db_obj()->engine}: {$sql_time_txt}{$num_q} " . $lang['QUERIES']; } diff --git a/src/Dev.php b/src/Dev.php index a4ce7f7f0..e1539eb03 100644 --- a/src/Dev.php +++ b/src/Dev.php @@ -230,7 +230,7 @@ class Dev foreach ($db_obj->dbg as $i => $dbg) { $id = "sql_{$i}_" . random_int(0, mt_getrandmax()); $sql = self::shortQuery($dbg['sql'], true); - $time = sprintf('%.4f', $dbg['time']); + $time = sprintf('%.3f', $dbg['time']); $perc = '[' . round($dbg['time'] * 100 / $db_obj->sql_timetotal) . '%]'; $info = !empty($dbg['info']) ? $dbg['info'] . ' [' . $dbg['src'] . ']' : $dbg['src']; diff --git a/src/Legacy/SqlDb.php b/src/Legacy/SqlDb.php index 3fa1dbab8..366108923 100644 --- a/src/Legacy/SqlDb.php +++ b/src/Legacy/SqlDb.php @@ -832,7 +832,7 @@ class SqlDb */ public function log_query($log_file = 'sql_queries') { - $q_time = ($this->cur_query_time >= 10) ? round($this->cur_query_time, 0) : sprintf('%.4f', $this->cur_query_time); + $q_time = ($this->cur_query_time >= 10) ? round($this->cur_query_time, 0) : sprintf('%.3f', $this->cur_query_time); $msg = []; $msg[] = round($this->sql_starttime); $msg[] = date('m-d H:i:s', (int)$this->sql_starttime); @@ -943,7 +943,7 @@ class SqlDb $this->explain_out .= ' - + From ab7ea901ec55652efff056a7834e6e4efe9a558d Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Mon, 5 May 2025 01:40:58 +0000 Subject: [PATCH 092/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 02579fb0c..6e490731b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,15 +6,19 @@ ### 🚀 Features +- *(admin_smilies)* Added confirmation on smilie deleting ([#1895](https://github.com/torrentpier/torrentpier/pull/1895)) - ([b51820e](https://github.com/torrentpier/torrentpier/commit/b51820e1861044143321fcde5239c22abc3de984)) - Added ability to hide peer country in peer list ([#1891](https://github.com/torrentpier/torrentpier/pull/1891)) - ([2555ebc](https://github.com/torrentpier/torrentpier/commit/2555ebce4717f871922495e48cbca9e22da78bd5)) - Added ability to hide BitTorrent client in peers list ([#1890](https://github.com/torrentpier/torrentpier/pull/1890)) - ([f5d65b8](https://github.com/torrentpier/torrentpier/commit/f5d65b8911c5e864f000348a6d1aefbb4c09c2b4)) ### 🐛 Bug Fixes +- Incorrect rounding in execution time counter ([#1899](https://github.com/torrentpier/torrentpier/pull/1899)) - ([781b724](https://github.com/torrentpier/torrentpier/commit/781b7240c41ddd141cfb057480c10d9cee30e6d7)) +- `Undefined array key "smile"` when are no smilies ([#1896](https://github.com/torrentpier/torrentpier/pull/1896)) - ([36d3992](https://github.com/torrentpier/torrentpier/commit/36d399220e2c16a582e1e400df0002c164f5ec3b)) - Peer country flag not shown in peers list ([#1894](https://github.com/torrentpier/torrentpier/pull/1894)) - ([8edba72](https://github.com/torrentpier/torrentpier/commit/8edba72f09f037225ede058cf09c830b1a01e78f)) ### ⚙️ Miscellaneous +- Minor improvements ([#1897](https://github.com/torrentpier/torrentpier/pull/1897)) - ([14086a0](https://github.com/torrentpier/torrentpier/commit/14086a0ed6181a0ff4496ee2e56f4fb70bfe18d5)) - Minor improvements ([#1893](https://github.com/torrentpier/torrentpier/pull/1893)) - ([90ece5c](https://github.com/torrentpier/torrentpier/commit/90ece5c7621789f170246b2898841b347e264674)) - Minor improvements ([#1892](https://github.com/torrentpier/torrentpier/pull/1892)) - ([1e5b93d](https://github.com/torrentpier/torrentpier/commit/1e5b93d2c072c5c35feef7567b3fcdb4b3597935)) From a4793f6ce103f22941d72793e2bf8cdf9f78d494 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 May 2025 14:26:46 +0700 Subject: [PATCH 093/216] Composer(deps): Bump symfony/polyfill from 1.31.0 to 1.32.0 (#1900) Bumps [symfony/polyfill](https://github.com/symfony/polyfill) from 1.31.0 to 1.32.0. - [Changelog](https://github.com/symfony/polyfill/blob/1.x/CHANGELOG.md) - [Commits](https://github.com/symfony/polyfill/compare/v1.31.0...v1.32.0) --- updated-dependencies: - dependency-name: symfony/polyfill dependency-version: 1.32.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.json | 2 +- composer.lock | 20 +++++++++++--------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/composer.json b/composer.json index 42ef8adaa..a15ef15cc 100644 --- a/composer.json +++ b/composer.json @@ -73,7 +73,7 @@ "symfony/event-dispatcher": "^6.4", "symfony/mime": "^6.4", "symfony/mailer": "^6.4", - "symfony/polyfill": "v1.31.0", + "symfony/polyfill": "v1.32.0", "vlucas/phpdotenv": "^5.5" }, "require-dev": { diff --git a/composer.lock b/composer.lock index 02bb5624b..77676de8e 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "291864741a4c19d097861853d529836c", + "content-hash": "2acad3dafd9fd57bc8c26303df22dd15", "packages": [ { "name": "arokettu/bencode", @@ -3310,16 +3310,16 @@ }, { "name": "symfony/polyfill", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill.git", - "reference": "c5ce28b35b2784b7b508aaa4447a6c3e39041e50" + "reference": "c4ee386e95ccdbea59cea802ea776d806319d506" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill/zipball/c5ce28b35b2784b7b508aaa4447a6c3e39041e50", - "reference": "c5ce28b35b2784b7b508aaa4447a6c3e39041e50", + "url": "https://api.github.com/repos/symfony/polyfill/zipball/c4ee386e95ccdbea59cea802ea776d806319d506", + "reference": "c4ee386e95ccdbea59cea802ea776d806319d506", "shasum": "" }, "require": { @@ -3342,6 +3342,7 @@ "symfony/polyfill-php82": "self.version", "symfony/polyfill-php83": "self.version", "symfony/polyfill-php84": "self.version", + "symfony/polyfill-php85": "self.version", "symfony/polyfill-util": "self.version", "symfony/polyfill-uuid": "self.version" }, @@ -3372,6 +3373,7 @@ "src/Intl/Icu/Resources/stubs", "src/Intl/MessageFormatter/Resources/stubs", "src/Intl/Normalizer/Resources/stubs", + "src/Php85/Resources/stubs", "src/Php84/Resources/stubs", "src/Php83/Resources/stubs", "src/Php82/Resources/stubs", @@ -3405,7 +3407,7 @@ ], "support": { "issues": "https://github.com/symfony/polyfill/issues", - "source": "https://github.com/symfony/polyfill/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill/tree/v1.32.0" }, "funding": [ { @@ -3421,7 +3423,7 @@ "type": "tidelift" } ], - "time": "2024-09-09T12:16:23+00:00" + "time": "2025-05-02T09:40:28+00:00" }, { "name": "symfony/service-contracts", @@ -3743,6 +3745,6 @@ "platform": { "php": ">=8.1" }, - "platform-dev": {}, - "plugin-api-version": "2.6.0" + "platform-dev": [], + "plugin-api-version": "2.3.0" } From 513e3065d34409931c4198c03b080f232f1d809b Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Mon, 5 May 2025 18:58:08 +0300 Subject: [PATCH 094/216] feat(freeipapi): Added ability to use own API token (#1901) * feat(freeipapi): Added ability to use own API token * Updated * Update displaying_torrent.php * Update usercp_register.tpl * Update register.php --- library/attach_mod/displaying_torrent.php | 10 +++-- library/config.php | 8 ++++ library/defines.php | 3 -- library/includes/functions.php | 38 ++++++++++++++----- library/includes/ucp/register.php | 2 +- styles/templates/default/usercp_register.tpl | 2 + .../templates/default/viewtopic_torrent.tpl | 8 ++-- 7 files changed, 50 insertions(+), 21 deletions(-) diff --git a/library/attach_mod/displaying_torrent.php b/library/attach_mod/displaying_torrent.php index 426bce393..a4364d750 100644 --- a/library/attach_mod/displaying_torrent.php +++ b/library/attach_mod/displaying_torrent.php @@ -463,10 +463,12 @@ if ($tor_reged && $tor_info) { } $peerCountry = $lang['UNKNOWN']; - if (IS_AM || $peer['user_id'] == $userdata['user_id'] || !bf($peer['user_opt'], 'user_opt', 'user_hide_peer_country')) { - if ($infoByIP = infoByIP((!empty($peer['ipv6']) ? $peer['ipv6'] : $peer['ip']), $peer['port'])) { - if (!empty($infoByIP['countryCode'])) { - $peerCountry = render_flag($infoByIP['countryCode'], false); + if ($bb_cfg['ip2country_settings']['enabled']) { + if (IS_AM || $peer['user_id'] == $userdata['user_id'] || !bf($peer['user_opt'], 'user_opt', 'user_hide_peer_country')) { + if ($infoByIP = infoByIP((!empty($peer['ipv6']) ? $peer['ipv6'] : $peer['ip']), $peer['port'])) { + if (!empty($infoByIP['countryCode'])) { + $peerCountry = render_flag($infoByIP['countryCode'], false); + } } } } diff --git a/library/config.php b/library/config.php index 232f0f96d..55de1ba8d 100644 --- a/library/config.php +++ b/library/config.php @@ -144,6 +144,14 @@ $bb_cfg['torr_server'] = [ 'disable_for_guest' => true ]; +// FreeIPAPI settings +$bb_cfg['ip2country_settings'] = [ + // Documentation: https://docs.freeipapi.com/ + 'enabled' => true, + 'endpoint' => 'https://freeipapi.com/api/json/', + 'api_token' => '', // not required for basic usage +]; + // FAQ url help link $bb_cfg['how_to_download_url_help'] = 'viewtopic.php?t=1'; // How to download? $bb_cfg['what_is_torrent_url_help'] = 'viewtopic.php?t=2'; // What is a torrent? diff --git a/library/defines.php b/library/defines.php index d7078a7fd..dbb636585 100644 --- a/library/defines.php +++ b/library/defines.php @@ -35,9 +35,6 @@ define('UPDATER_URL', 'https://api.github.com/repos/torrentpier/torrentpier/rele define('UPDATER_FILE', INT_DATA_DIR . '/updater.json'); define('COOKIE_DBG', 'bb_dbg'); -// TODO: Move in another section -define('API_IP_URL', 'https://freeipapi.com/api/json/'); - // Templates define('ADMIN_TPL_DIR', TEMPLATES_DIR . '/admin/'); define('XS_USE_ISSET', '1'); diff --git a/library/includes/functions.php b/library/includes/functions.php index bf055495b..943648d29 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -2186,20 +2186,40 @@ function readUpdaterFile(): array|bool */ function infoByIP(string $ipAddress, int $port = 0): array { + global $bb_cfg; + + if (!$bb_cfg['ip2country_settings']['enabled']) { + return []; + } + $ipAddress = \TorrentPier\Helpers\IPHelper::long2ip_extended($ipAddress); $cacheName = hash('xxh128', ($ipAddress . '_' . $port)); + if (!$data = CACHE('bb_ip2countries')->get($cacheName)) { $data = []; - $response = file_get_contents(API_IP_URL . $ipAddress); - $json = json_decode($response, true); - if (is_array($json) && !empty($json)) { - $data = [ - 'ipVersion' => $json['ipVersion'], - 'countryCode' => $json['countryCode'], - 'continent' => $json['continent'], - 'continentCode' => $json['continentCode'] + + $contextOptions = []; + if (!empty($bb_cfg['ip2country_settings']['api_token'])) { + $contextOptions['http'] = [ + 'header' => "Authorization: Bearer " . $bb_cfg['ip2country_settings']['api_token'] . "\r\n" ]; - CACHE('bb_ip2countries')->set($cacheName, $data, 1200); + } + + $context = stream_context_create($contextOptions); + $response = file_get_contents($bb_cfg['ip2country_settings']['endpoint'] . $ipAddress, context: $context); + + if ($response !== false) { + $json = json_decode($response, true); + + if (is_array($json) && !empty($json)) { + $data = [ + 'ipVersion' => $json['ipVersion'], + 'countryCode' => $json['countryCode'], + 'continent' => $json['continent'], + 'continentCode' => $json['continentCode'] + ]; + CACHE('bb_ip2countries')->set($cacheName, $data, 1200); + } } } diff --git a/library/includes/ucp/register.php b/library/includes/ucp/register.php index 0e8cc2e34..69a14add1 100644 --- a/library/includes/ucp/register.php +++ b/library/includes/ucp/register.php @@ -366,7 +366,7 @@ foreach ($profile_fields as $field => $can_edit) { 'user_callseed' => $reg_mode ? true : true, 'user_retracker' => $reg_mode ? true : true, 'user_hide_torrent_client' => $reg_mode ? true : true, - 'user_hide_peer_country' => $reg_mode ? true : true, + 'user_hide_peer_country' => $reg_mode ? true : $bb_cfg['ip2country_settings']['enabled'], ]; foreach ($update_user_opt as $opt => $can_change_opt) { diff --git a/styles/templates/default/usercp_register.tpl b/styles/templates/default/usercp_register.tpl index d55a7a208..2a0e3fba5 100644 --- a/styles/templates/default/usercp_register.tpl +++ b/styles/templates/default/usercp_register.tpl @@ -326,6 +326,7 @@ + + diff --git a/styles/templates/default/viewtopic_torrent.tpl b/styles/templates/default/viewtopic_torrent.tpl index 8d7b621e4..88a87f67f 100644 --- a/styles/templates/default/viewtopic_torrent.tpl +++ b/styles/templates/default/viewtopic_torrent.tpl @@ -155,7 +155,7 @@ ajax.callback.callseed = function (data) { - + @@ -173,7 +173,7 @@ ajax.callback.callseed = function (data) { - +
 ' . $dbg['src'] . '  [' . sprintf('%.4f', $dbg['time']) . ' s]  ' . $dbg['info'] . ' ' . $dbg['src'] . '  [' . sprintf('%.3f', $dbg['time']) . ' s]  ' . $dbg['info'] . ' ' . "[$this->engine] $this->db_server.$this->selected_db" . ' :: Query #' . ($this->num_queries + 1) . ' 
' . $this->explain_hold . '
{L_HIDE_PEER_COUNTRY_NAME}: @@ -333,6 +334,7 @@
{L_AVATAR_PANEL}
{L_DL_PORT} {L_DL_CLIENT}{L_COUNTRY}{L_COUNTRY}
{sfull.srow.port.PORT} {sfull.srow.PEER_ID}{sfull.srow.COUNTRY}{sfull.srow.COUNTRY}
@@ -208,7 +208,7 @@ ajax.callback.callseed = function (data) { {L_DL_PORT} {L_DL_CLIENT} - {L_COUNTRY} + {L_COUNTRY} @@ -226,7 +226,7 @@ ajax.callback.callseed = function (data) { {lfull.lrow.port.PORT} {lfull.lrow.PEER_ID} - {lfull.lrow.COUNTRY} + {lfull.lrow.COUNTRY} From 2f026921ee331226900b3cd4f1bb238f6562b48d Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Mon, 5 May 2025 19:11:22 +0300 Subject: [PATCH 095/216] misc: Minor improvements (#1898) * misc: Minor improvements * Update functions.php * Update functions.php --- library/attach_mod/includes/functions_attach.php | 2 +- library/includes/functions.php | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/library/attach_mod/includes/functions_attach.php b/library/attach_mod/includes/functions_attach.php index ebfc48bcb..e2d7bc67a 100644 --- a/library/attach_mod/includes/functions_attach.php +++ b/library/attach_mod/includes/functions_attach.php @@ -342,7 +342,7 @@ function _set_var(&$result, $var, $type, $multibyte = false) * @param $var_name * @param $default * @param bool $multibyte - * @return array + * @return array|string */ function get_var($var_name, $default, $multibyte = false) { diff --git a/library/includes/functions.php b/library/includes/functions.php index 943648d29..e490ad930 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -2218,9 +2218,16 @@ function infoByIP(string $ipAddress, int $port = 0): array 'continent' => $json['continent'], 'continentCode' => $json['continentCode'] ]; - CACHE('bb_ip2countries')->set($cacheName, $data, 1200); } } + + if (empty($data)) { + $data = [ + 'response' => false, + 'timestamp' => TIMENOW + ]; + } + CACHE('bb_ip2countries')->set($cacheName, $data, 1200); } return $data; From d3b8c38f7a69c07a3d899891dfa6182dc6555888 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Mon, 5 May 2025 16:12:44 +0000 Subject: [PATCH 096/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e490731b..79cdf0541 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ ### 🚀 Features - *(admin_smilies)* Added confirmation on smilie deleting ([#1895](https://github.com/torrentpier/torrentpier/pull/1895)) - ([b51820e](https://github.com/torrentpier/torrentpier/commit/b51820e1861044143321fcde5239c22abc3de984)) +- *(freeipapi)* Added ability to use own API token ([#1901](https://github.com/torrentpier/torrentpier/pull/1901)) - ([513e306](https://github.com/torrentpier/torrentpier/commit/513e3065d34409931c4198c03b080f232f1d809b)) - Added ability to hide peer country in peer list ([#1891](https://github.com/torrentpier/torrentpier/pull/1891)) - ([2555ebc](https://github.com/torrentpier/torrentpier/commit/2555ebce4717f871922495e48cbca9e22da78bd5)) - Added ability to hide BitTorrent client in peers list ([#1890](https://github.com/torrentpier/torrentpier/pull/1890)) - ([f5d65b8](https://github.com/torrentpier/torrentpier/commit/f5d65b8911c5e864f000348a6d1aefbb4c09c2b4)) @@ -16,8 +17,13 @@ - `Undefined array key "smile"` when are no smilies ([#1896](https://github.com/torrentpier/torrentpier/pull/1896)) - ([36d3992](https://github.com/torrentpier/torrentpier/commit/36d399220e2c16a582e1e400df0002c164f5ec3b)) - Peer country flag not shown in peers list ([#1894](https://github.com/torrentpier/torrentpier/pull/1894)) - ([8edba72](https://github.com/torrentpier/torrentpier/commit/8edba72f09f037225ede058cf09c830b1a01e78f)) +### 📦 Dependencies + +- *(deps)* Bump symfony/polyfill from 1.31.0 to 1.32.0 ([#1900](https://github.com/torrentpier/torrentpier/pull/1900)) - ([a4793f6](https://github.com/torrentpier/torrentpier/commit/a4793f6ce103f22941d72793e2bf8cdf9f78d494)) + ### ⚙️ Miscellaneous +- Minor improvements ([#1898](https://github.com/torrentpier/torrentpier/pull/1898)) - ([2f02692](https://github.com/torrentpier/torrentpier/commit/2f026921ee331226900b3cd4f1bb238f6562b48d)) - Minor improvements ([#1897](https://github.com/torrentpier/torrentpier/pull/1897)) - ([14086a0](https://github.com/torrentpier/torrentpier/commit/14086a0ed6181a0ff4496ee2e56f4fb70bfe18d5)) - Minor improvements ([#1893](https://github.com/torrentpier/torrentpier/pull/1893)) - ([90ece5c](https://github.com/torrentpier/torrentpier/commit/90ece5c7621789f170246b2898841b347e264674)) - Minor improvements ([#1892](https://github.com/torrentpier/torrentpier/pull/1892)) - ([1e5b93d](https://github.com/torrentpier/torrentpier/commit/1e5b93d2c072c5c35feef7567b3fcdb4b3597935)) From 6e0786bdee8f1a2557f9ac1dc628983bcafe3f5f Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Tue, 6 May 2025 12:55:18 +0300 Subject: [PATCH 097/216] feat(announcer): Check for frozen torrents (#1770) * feat(announcer): Check for frozen torrents * Update announce.php * Update announce.php * Update announce.php * Update announce.php * Update announce.php * Update announce.php * Updated * Update announce.php * Update announce.php * Update announce.php * Update announce.php * Update announce.php --- bt/announce.php | 18 ++++++++++++++++-- library/defines.php | 10 ++++++++++ library/includes/init_bb.php | 10 ---------- 3 files changed, 26 insertions(+), 12 deletions(-) diff --git a/bt/announce.php b/bt/announce.php index 67ade667b..91d9d1e23 100644 --- a/bt/announce.php +++ b/bt/announce.php @@ -248,9 +248,10 @@ if ($lp_info) { $passkey_sql = DB()->escape($passkey); $sql = " - SELECT tor.topic_id, tor.poster_id, tor.tor_type, tor.info_hash, tor.info_hash_v2, u.* + SELECT tor.topic_id, tor.poster_id, tor.tor_type, tor.tor_status, tor.info_hash, tor.info_hash_v2, bt.*, u.user_level FROM " . BB_BT_TORRENTS . " tor - LEFT JOIN " . BB_BT_USERS . " u ON u.auth_key = '$passkey_sql' + LEFT JOIN " . BB_BT_USERS . " bt ON bt.auth_key = '$passkey_sql' + LEFT JOIN " . BB_USERS . " u ON u.user_id = bt.user_id $info_hash_where LIMIT 1 "; @@ -266,9 +267,22 @@ if ($lp_info) { // Assign variables $user_id = $row['user_id']; + define('IS_GUEST', (int)$user_id === GUEST_UID); + define('IS_ADMIN', !IS_GUEST && (int)$row['user_level'] === ADMIN); + define('IS_MOD', !IS_GUEST && (int)$row['user_level'] === MOD); + define('IS_GROUP_MEMBER', !IS_GUEST && (int)$row['user_level'] === GROUP_MEMBER); + define('IS_USER', !IS_GUEST && (int)$row['user_level'] === USER); + define('IS_SUPER_ADMIN', IS_ADMIN && isset($bb_cfg['super_admins'][$user_id])); + define('IS_AM', IS_ADMIN || IS_MOD); $topic_id = $row['topic_id']; $releaser = (int)($user_id == $row['poster_id']); $tor_type = $row['tor_type']; + $tor_status = $row['tor_status']; + + // Check tor status + if (!IS_AM && isset($bb_cfg['tor_frozen'][$tor_status]) && !(isset($bb_cfg['tor_frozen_author_download'][$tor_status]) && $releaser)) { + msg_die('Torrent frozen and cannot be downloaded'); + } // Check hybrid status if (!empty($row['info_hash']) && !empty($row['info_hash_v2'])) { diff --git a/library/defines.php b/library/defines.php index dbb636585..30d3d3ab2 100644 --- a/library/defines.php +++ b/library/defines.php @@ -89,6 +89,7 @@ define('BB_BT_TORRENTS', 'bb_bt_torrents'); define('BB_BT_TRACKER', 'bb_bt_tracker'); define('BB_BT_TRACKER_SNAP', 'bb_bt_tracker_snap'); define('BB_BT_USERS', 'bb_bt_users'); +define('BB_USERS', 'bb_users'); define('BT_AUTH_KEY_LENGTH', 20); // Passkey length // Torrents (reserved: -1) @@ -134,6 +135,15 @@ define('ONLY_NEW_TOPICS', 2); define('GUEST_UID', -1); define('BOT_UID', -746); +// User Levels +define('DELETED', -1); +define('USER', 0); +define('ADMIN', 1); +define('MOD', 2); +define('GROUP_MEMBER', 20); +define('CP_HOLDER', 25); +define('EXCLUDED_USERS', implode(',', [GUEST_UID, BOT_UID])); + // Ratio limits define('TR_RATING_LIMITS', true); // ON/OFF define('MIN_DL_FOR_RATIO', 10737418240); // 10 GB in bytes, 0 - disable diff --git a/library/includes/init_bb.php b/library/includes/init_bb.php index e9ba19f4b..932dba5a1 100644 --- a/library/includes/init_bb.php +++ b/library/includes/init_bb.php @@ -104,15 +104,6 @@ function bb_setcookie(string $name, mixed $val, int $lifetime = COOKIE_PERSIST, } } -// User Levels -define('DELETED', -1); -define('USER', 0); -define('ADMIN', 1); -define('MOD', 2); -define('GROUP_MEMBER', 20); -define('CP_HOLDER', 25); -define('EXCLUDED_USERS', implode(',', [GUEST_UID, BOT_UID])); - // User related define('USER_ACTIVATION_NONE', 0); define('USER_ACTIVATION_SELF', 1); @@ -257,7 +248,6 @@ define('BB_TOPIC_TPL', 'bb_topic_tpl'); define('BB_TOPICS', 'bb_topics'); define('BB_TOPICS_WATCH', 'bb_topics_watch'); define('BB_USER_GROUP', 'bb_user_group'); -define('BB_USERS', 'bb_users'); define('BB_WORDS', 'bb_words'); define('BB_THX', 'bb_thx'); From 4b7203f8aeeeffc1b163bd3db1dd6b2cac33c923 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Tue, 6 May 2025 19:41:17 +0300 Subject: [PATCH 098/216] fix(peers list): `IPv6` showing (#1902) * fix(peers list): `IPv6` showing * Update functions.php --- library/attach_mod/displaying_torrent.php | 9 +++++++-- styles/templates/default/viewtopic_torrent.tpl | 4 ++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/library/attach_mod/displaying_torrent.php b/library/attach_mod/displaying_torrent.php index a4364d750..442ac634f 100644 --- a/library/attach_mod/displaying_torrent.php +++ b/library/attach_mod/displaying_torrent.php @@ -383,7 +383,9 @@ if ($tor_reged && $tor_info) { // Full details mode if ($s_mode == 'full') { if (!empty($peer['ip']) && !empty($peer['ipv6'])) { - $ip = bt_show_ip($peer['ipv6']) . ' (' . bt_show_ip($peer['ip']) . ')'; + if ($ip = bt_show_ip($peer['ipv6'])) { + $ip .= ' (' . bt_show_ip($peer['ip']) . ')'; + } } else { $ip = bt_show_ip(!empty($peer['ipv6']) ? $peer['ipv6'] : $peer['ip']); } @@ -492,7 +494,10 @@ if ($tor_reged && $tor_info) { ]); if ($ip) { - $template->assign_block_vars("$x_full.$x_row.ip", ['IP' => $ip]); + $template->assign_block_vars("$x_full.$x_row.ip", [ + 'U_WHOIS_IP' => $bb_cfg['whois_info'] . $ip, + 'IP' => $ip + ]); } if ($port !== false) { $template->assign_block_vars("$x_full.$x_row.port", ['PORT' => $port]); diff --git a/styles/templates/default/viewtopic_torrent.tpl b/styles/templates/default/viewtopic_torrent.tpl index 88a87f67f..8717bcd5c 100644 --- a/styles/templates/default/viewtopic_torrent.tpl +++ b/styles/templates/default/viewtopic_torrent.tpl @@ -167,7 +167,7 @@ ajax.callback.callseed = function (data) { {sfull.srow.SPEED_UP_RAW}{sfull.srow.SPEED_UP} {sfull.srow.SPEED_DOWN_RAW}{sfull.srow.SPEED_DOWN} - {sfull.srow.ip.IP} + {sfull.srow.ip.IP} {sfull.srow.port.PORT} @@ -220,7 +220,7 @@ ajax.callback.callseed = function (data) { {lfull.lrow.SPEED_UP_RAW}{lfull.lrow.SPEED_UP} {lfull.lrow.SPEED_DOWN_RAW}{lfull.lrow.SPEED_DOWN} - {lfull.lrow.ip.IP} + {lfull.lrow.ip.IP} {lfull.lrow.port.PORT} From 3a64f8595cafd99b9cb821d52ec5d3b3e8e467c0 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Tue, 6 May 2025 20:04:17 +0300 Subject: [PATCH 099/216] feat: Added ability to hide peer username in peer list (#1903) * Added ability to hide peer username in peer list * Updated --- library/attach_mod/displaying_torrent.php | 19 ++++++++++++------- library/includes/functions.php | 3 ++- library/includes/ucp/register.php | 1 + library/language/source/main.php | 1 + styles/templates/default/usercp_register.tpl | 7 +++++++ 5 files changed, 23 insertions(+), 8 deletions(-) diff --git a/library/attach_mod/displaying_torrent.php b/library/attach_mod/displaying_torrent.php index 442ac634f..06a670266 100644 --- a/library/attach_mod/displaying_torrent.php +++ b/library/attach_mod/displaying_torrent.php @@ -445,8 +445,6 @@ if ($tor_reged && $tor_info) { $compl_perc = ($compl_size) ? floor($compl_size * 100 / $tor_size) : 0; } - $rel_sign = (!$guest && $peer['releaser']) ? ' ®' : ''; - $name = profile_url($peer) . $rel_sign; $up_tot = ($p_max_up) ? humn_size($p_max_up) : '-'; $down_tot = ($p_max_down) ? humn_size($p_max_down) : '-'; $up_ratio = ($p_max_down) ? round(($p_max_up / $p_max_down), 2) : ''; @@ -457,14 +455,21 @@ if ($tor_reged && $tor_info) { $row_bgr = ($change_peers_bgr_over) ? " class=\"$bgr_class\" onmouseover=\"this.className='$bgr_class_over';\" onmouseout=\"this.className='$bgr_class';\"" : ''; $tr[$x]++; - $peerTorrentClient = $lang['UNKNOWN']; + $peerUsername = $lang['HIDDEN_USER']; + if (IS_AM || $peer['user_id'] == $userdata['user_id'] || !bf($peer['user_opt'], 'user_opt', 'user_hide_peer_username')) { + $releaserSign = (!$guest && $peer['releaser']) ? ' ®' : ''; + $peerUsername = profile_url($peer) . $releaserSign; + $peerUsername = $peer['update_time'] ? $peerUsername : "$peerUsername"; + } + + $peerTorrentClient = $lang['HIDDEN_USER']; if (IS_AM || $peer['user_id'] == $userdata['user_id'] || !bf($peer['user_opt'], 'user_opt', 'user_hide_torrent_client')) { if (isset($peer['peer_id'])) { $peerTorrentClient = get_user_torrent_client($peer['peer_id']); } } - $peerCountry = $lang['UNKNOWN']; + $peerCountry = $lang['HIDDEN_USER']; if ($bb_cfg['ip2country_settings']['enabled']) { if (IS_AM || $peer['user_id'] == $userdata['user_id'] || !bf($peer['user_opt'], 'user_opt', 'user_hide_peer_country')) { if ($infoByIP = infoByIP((!empty($peer['ipv6']) ? $peer['ipv6'] : $peer['ip']), $peer['port'])) { @@ -477,7 +482,7 @@ if ($tor_reged && $tor_info) { $template->assign_block_vars("$x_full.$x_row", [ 'ROW_BGR' => $row_bgr, - 'NAME' => ($peer['update_time']) ? $name : "$name", + 'NAME' => $peerUsername, 'PEER_ID' => $peerTorrentClient, 'COUNTRY' => $peerCountry, 'COMPL_PRC' => $compl_perc, @@ -489,8 +494,8 @@ if ($tor_reged && $tor_info) { 'DOWN_TOTAL_RAW' => $peer['downloaded'], 'SPEED_UP_RAW' => $peer['speed_up'], 'SPEED_DOWN_RAW' => $peer['speed_down'], - 'UPD_EXP_TIME' => ($peer['update_time']) ? $lang['DL_UPD'] . bb_date($peer['update_time'], 'd-M-y H:i') . ' · ' . delta_time($peer['update_time']) . $lang['TOR_BACK'] : $lang['DL_STOPPED'], - 'TOR_RATIO' => ($up_ratio) ? $lang['USER_RATIO'] . "UL/DL: $up_ratio" : '' + 'UPD_EXP_TIME' => $peer['update_time'] ? $lang['DL_UPD'] . bb_date($peer['update_time'], 'd-M-y H:i') . ' · ' . delta_time($peer['update_time']) . $lang['TOR_BACK'] : $lang['DL_STOPPED'], + 'TOR_RATIO' => $up_ratio ? $lang['USER_RATIO'] . "UL/DL: $up_ratio" : '' ]); if ($ip) { diff --git a/library/includes/functions.php b/library/includes/functions.php index e490ad930..61954e856 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -198,7 +198,8 @@ $bf['user_opt'] = [ 'user_dls' => 14, // [SETTINGS] Hide list of "Current downloads" in my profile 'user_retracker' => 15, // [SETTINGS] Add my retracker into downloaded torrent files 'user_hide_torrent_client' => 16, // [SETTINGS] Option to hide user's torrent client in peer list - 'user_hide_peer_country' => 17 // [SETTINGS] Option to hide user's country name in peer list + 'user_hide_peer_country' => 17, // [SETTINGS] Option to hide user's country name in peer list + 'user_hide_peer_username' => 18, // [SETTINGS] Option to hide peer username in peer list ]; function bit2dec($bit_num) diff --git a/library/includes/ucp/register.php b/library/includes/ucp/register.php index 69a14add1..5e101a310 100644 --- a/library/includes/ucp/register.php +++ b/library/includes/ucp/register.php @@ -367,6 +367,7 @@ foreach ($profile_fields as $field => $can_edit) { 'user_retracker' => $reg_mode ? true : true, 'user_hide_torrent_client' => $reg_mode ? true : true, 'user_hide_peer_country' => $reg_mode ? true : $bb_cfg['ip2country_settings']['enabled'], + 'user_hide_peer_username' => $reg_mode ? false : true, ]; foreach ($update_user_opt as $opt => $can_change_opt) { diff --git a/library/language/source/main.php b/library/language/source/main.php index 3f8da2cdc..09451df9b 100644 --- a/library/language/source/main.php +++ b/library/language/source/main.php @@ -1881,6 +1881,7 @@ $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'shows data only for the current session'; $lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; $lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin first post'; diff --git a/styles/templates/default/usercp_register.tpl b/styles/templates/default/usercp_register.tpl index 2a0e3fba5..4b800f172 100644 --- a/styles/templates/default/usercp_register.tpl +++ b/styles/templates/default/usercp_register.tpl @@ -335,6 +335,13 @@ + + {L_HIDE_PEER_USERNAME}: + +    + + + {L_AVATAR_PANEL} From 19ef9efc6aaf2e7a9f2a7681fd537a7c5b92691e Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Tue, 6 May 2025 17:06:37 +0000 Subject: [PATCH 100/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 79cdf0541..d1a646e56 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,12 +7,15 @@ ### 🚀 Features - *(admin_smilies)* Added confirmation on smilie deleting ([#1895](https://github.com/torrentpier/torrentpier/pull/1895)) - ([b51820e](https://github.com/torrentpier/torrentpier/commit/b51820e1861044143321fcde5239c22abc3de984)) +- *(announcer)* Check for frozen torrents ([#1770](https://github.com/torrentpier/torrentpier/pull/1770)) - ([6e0786b](https://github.com/torrentpier/torrentpier/commit/6e0786bdee8f1a2557f9ac1dc628983bcafe3f5f)) - *(freeipapi)* Added ability to use own API token ([#1901](https://github.com/torrentpier/torrentpier/pull/1901)) - ([513e306](https://github.com/torrentpier/torrentpier/commit/513e3065d34409931c4198c03b080f232f1d809b)) +- Added ability to hide peer username in peer list ([#1903](https://github.com/torrentpier/torrentpier/pull/1903)) - ([3a64f85](https://github.com/torrentpier/torrentpier/commit/3a64f8595cafd99b9cb821d52ec5d3b3e8e467c0)) - Added ability to hide peer country in peer list ([#1891](https://github.com/torrentpier/torrentpier/pull/1891)) - ([2555ebc](https://github.com/torrentpier/torrentpier/commit/2555ebce4717f871922495e48cbca9e22da78bd5)) - Added ability to hide BitTorrent client in peers list ([#1890](https://github.com/torrentpier/torrentpier/pull/1890)) - ([f5d65b8](https://github.com/torrentpier/torrentpier/commit/f5d65b8911c5e864f000348a6d1aefbb4c09c2b4)) ### 🐛 Bug Fixes +- *(peers list)* `IPv6` showing ([#1902](https://github.com/torrentpier/torrentpier/pull/1902)) - ([4b7203f](https://github.com/torrentpier/torrentpier/commit/4b7203f8aeeeffc1b163bd3db1dd6b2cac33c923)) - Incorrect rounding in execution time counter ([#1899](https://github.com/torrentpier/torrentpier/pull/1899)) - ([781b724](https://github.com/torrentpier/torrentpier/commit/781b7240c41ddd141cfb057480c10d9cee30e6d7)) - `Undefined array key "smile"` when are no smilies ([#1896](https://github.com/torrentpier/torrentpier/pull/1896)) - ([36d3992](https://github.com/torrentpier/torrentpier/commit/36d399220e2c16a582e1e400df0002c164f5ec3b)) - Peer country flag not shown in peers list ([#1894](https://github.com/torrentpier/torrentpier/pull/1894)) - ([8edba72](https://github.com/torrentpier/torrentpier/commit/8edba72f09f037225ede058cf09c830b1a01e78f)) From 3cdf843a0442d4cdf9b70702c6092d05df86c7e0 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Wed, 7 May 2025 22:26:51 +0300 Subject: [PATCH 101/216] misc: Minor improvements (#1904) * misc: Minor improvements * Update legacy-changes.txt * Update composer.lock --- composer.lock | 14 +++++++------- install/upgrade/legacy-changes.txt | 2 +- library/includes/functions.php | 11 +++++++---- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/composer.lock b/composer.lock index 77676de8e..a8f2332e8 100644 --- a/composer.lock +++ b/composer.lock @@ -893,12 +893,12 @@ "source": { "type": "git", "url": "https://github.com/Gemorroj/M3uParser.git", - "reference": "92fc0fe236d77e1b5a26c735ffcb6fc637eb298a" + "reference": "95c62fd837e7adad1694d86dd8f6b31b603ab819" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Gemorroj/M3uParser/zipball/92fc0fe236d77e1b5a26c735ffcb6fc637eb298a", - "reference": "92fc0fe236d77e1b5a26c735ffcb6fc637eb298a", + "url": "https://api.github.com/repos/Gemorroj/M3uParser/zipball/95c62fd837e7adad1694d86dd8f6b31b603ab819", + "reference": "95c62fd837e7adad1694d86dd8f6b31b603ab819", "shasum": "" }, "require": { @@ -933,9 +933,9 @@ ], "support": { "issues": "https://github.com/Gemorroj/M3uParser/issues", - "source": "https://github.com/Gemorroj/M3uParser/tree/6.0.1" + "source": "https://github.com/Gemorroj/M3uParser/tree/master" }, - "time": "2025-03-25T19:21:43+00:00" + "time": "2025-05-04T19:36:03+00:00" }, { "name": "gigablah/sphinxphp", @@ -3745,6 +3745,6 @@ "platform": { "php": ">=8.1" }, - "platform-dev": [], - "plugin-api-version": "2.3.0" + "platform-dev": {}, + "plugin-api-version": "2.6.0" } diff --git a/install/upgrade/legacy-changes.txt b/install/upgrade/legacy-changes.txt index cb5dfa239..942ed2075 100644 --- a/install/upgrade/legacy-changes.txt +++ b/install/upgrade/legacy-changes.txt @@ -153,5 +153,5 @@ ALTER TABLE `bb_topics` ADD COLUMN `topic_allow_robots` TINYINT(1) UNSIGNED NOT INSERT INTO `bb_config` VALUES ('magnet_links_for_guests', '0'); INSERT INTO `bb_config` VALUES ('tp_instance_hash', ''); -// 2.4.5 +// 2.4.5-rc.5 DELETE FROM `bb_config` WHERE `config_name` = 'tp_instance_hash'; diff --git a/library/includes/functions.php b/library/includes/functions.php index 61954e856..67256eb1f 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -605,11 +605,14 @@ function bt_show_ip($ip, $port = '') if (IS_AM) { $ip = \TorrentPier\Helpers\IPHelper::long2ip_extended($ip); - // Wrap IPv6 address in square brackets - if ($port && str_contains($ip, ':')) { - $ip = "[$ip]"; + if (!empty($port)) { + if (\TorrentPier\Helpers\IPHelper::isValidv6($ip)) { + // Wrap IPv6 address in square brackets + $ip = "[$ip]:$port"; + } else { + $ip = "$ip:$port"; + } } - $ip .= $port ? ":$port" : ''; return $ip; } From 44bdd13df815dfa21b3a72f397ddfd9177bf80cd Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Thu, 8 May 2025 01:38:38 +0000 Subject: [PATCH 102/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d1a646e56..4c7c44e46 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,7 @@ ### ⚙️ Miscellaneous +- Minor improvements ([#1904](https://github.com/torrentpier/torrentpier/pull/1904)) - ([3cdf843](https://github.com/torrentpier/torrentpier/commit/3cdf843a0442d4cdf9b70702c6092d05df86c7e0)) - Minor improvements ([#1898](https://github.com/torrentpier/torrentpier/pull/1898)) - ([2f02692](https://github.com/torrentpier/torrentpier/commit/2f026921ee331226900b3cd4f1bb238f6562b48d)) - Minor improvements ([#1897](https://github.com/torrentpier/torrentpier/pull/1897)) - ([14086a0](https://github.com/torrentpier/torrentpier/commit/14086a0ed6181a0ff4496ee2e56f4fb70bfe18d5)) - Minor improvements ([#1893](https://github.com/torrentpier/torrentpier/pull/1893)) - ([90ece5c](https://github.com/torrentpier/torrentpier/commit/90ece5c7621789f170246b2898841b347e264674)) From cd450e67bbe84c45f3697efbe8f2c47d11e4a382 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sun, 11 May 2025 21:39:24 +0300 Subject: [PATCH 103/216] =?UTF-8?q?release:=20v2.4.5=20=F0=9F=90=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/config.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/config.php b/library/config.php index 55de1ba8d..62d6dd792 100644 --- a/library/config.php +++ b/library/config.php @@ -18,8 +18,8 @@ $reserved_port = env('TP_PORT', 80); $bb_cfg = []; // Version info -$bb_cfg['tp_version'] = 'v2.4.5-rc.5'; -$bb_cfg['tp_release_date'] = '03-05-2025'; +$bb_cfg['tp_version'] = 'v2.4.5'; +$bb_cfg['tp_release_date'] = '11-05-2025'; $bb_cfg['tp_release_codename'] = 'Cattle'; // Increase version number after changing JS or CSS From 1738624d04bb76552155ea97ac7ed68aa563642d Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Mon, 12 May 2025 01:41:59 +0000 Subject: [PATCH 104/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c7c44e46..733e4ac8b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ > [!NOTE] > To view changelog from **v2.0.0** to **v2.4.5-rc.2** navigate to [HISTORY.md](HISTORY.md). -## [nightly](https://nightly.link/torrentpier/torrentpier/workflows/build/master/TorrentPier) +## [v2.4.5](https://github.com/torrentpier/torrentpier/compare/v2.4.5-rc.5..v2.4.5) (2025-05-11) ### 🚀 Features From dee7b4acf971ece3b479373c076b7ca8630491e1 Mon Sep 17 00:00:00 2001 From: Yury Pikhtarev Date: Sat, 17 May 2025 06:50:07 +0200 Subject: [PATCH 105/216] New Crowdin updates (#1905) * New translations main.php (Romanian) * New translations main.php (French) * New translations main.php (Spanish) * New translations main.php (Afrikaans) * New translations main.php (Arabic) * New translations main.php (Belarusian) * New translations main.php (Bulgarian) * New translations main.php (Catalan) * New translations main.php (Czech) * New translations main.php (Danish) * New translations main.php (German) * New translations main.php (Greek) * New translations main.php (Finnish) * New translations main.php (Hebrew) * New translations main.php (Hungarian) * New translations main.php (Armenian) * New translations main.php (Italian) * New translations main.php (Japanese) * New translations main.php (Georgian) * New translations main.php (Korean) * New translations main.php (Lithuanian) * New translations main.php (Dutch) * New translations main.php (Norwegian) * New translations main.php (Polish) * New translations main.php (Russian) * New translations main.php (Slovak) * New translations main.php (Slovenian) * New translations main.php (Albanian) * New translations main.php (Serbian (Cyrillic)) * New translations main.php (Swedish) * New translations main.php (Turkish) * New translations main.php (Ukrainian) * New translations main.php (Chinese Traditional) * New translations main.php (English) * New translations main.php (Vietnamese) * New translations main.php (Portuguese, Brazilian) * New translations main.php (Indonesian) * New translations main.php (Thai) * New translations main.php (Croatian) * New translations main.php (Kazakh) * New translations main.php (Estonian) * New translations main.php (Latvian) * New translations main.php (Azerbaijani) * New translations main.php (Hindi) * New translations main.php (Bosnian) * New translations main.php (Uzbek) * New translations main.php (Tajik) * New translations admin_send_email.html (Japanese) * New translations admin_send_email.html (Chinese Traditional) * New translations admin_send_email.html (Portuguese, Brazilian) * New translations group_added.html (Spanish) * New translations group_added.html (Japanese) * New translations group_added.html (Chinese Traditional) * New translations group_added.html (Thai) * New translations group_approved.html (Spanish) * New translations group_approved.html (Japanese) * New translations group_approved.html (Chinese Traditional) * New translations group_approved.html (Thai) * New translations group_request.html (Chinese Traditional) * New translations privmsg_notify.html (Spanish) * New translations privmsg_notify.html (Japanese) * New translations privmsg_notify.html (Chinese Traditional) * New translations profile_send_email.html (Spanish) * New translations profile_send_email.html (Japanese) * New translations profile_send_email.html (Thai) * New translations topic_notify.html (Spanish) * New translations topic_notify.html (Chinese Traditional) * New translations topic_notify.html (Thai) * New translations user_activate.html (Spanish) * New translations user_activate.html (Chinese Traditional) * New translations user_activate_passwd.html (Spanish) * New translations user_activate_passwd.html (Japanese) * New translations user_activate_passwd.html (Chinese Traditional) * New translations user_activate_passwd.html (Portuguese, Brazilian) * New translations user_activate_passwd.html (Thai) * New translations user_welcome.html (German) * New translations user_welcome.html (Chinese Traditional) * New translations user_welcome.html (Portuguese, Brazilian) * New translations user_welcome.html (Thai) * New translations user_welcome_inactive.html (Spanish) * New translations user_welcome_inactive.html (Chinese Traditional) * New translations user_welcome_inactive.html (Portuguese, Brazilian) * New translations user_welcome_inactive.html (Thai) * New translations copyright_holders.html (Chinese Traditional) * New translations copyright_holders.html (Thai) * New translations user_agreement.html (Thai) --- library/language/af/main.php | 2 +- library/language/ar/main.php | 2 +- library/language/az/main.php | 2 +- library/language/be/main.php | 2 +- library/language/bg/main.php | 2 +- library/language/bs/main.php | 2 +- library/language/ca/main.php | 2 +- library/language/cs/main.php | 2 +- library/language/da/main.php | 2 +- library/language/de/email/user_welcome.html | 7 ++----- library/language/de/main.php | 2 +- library/language/el/main.php | 2 +- library/language/en/main.php | 2 +- library/language/es/email/group_added.html | 2 ++ library/language/es/email/group_approved.html | 2 ++ library/language/es/email/privmsg_notify.html | 2 ++ .../language/es/email/profile_send_email.html | 2 ++ library/language/es/email/topic_notify.html | 2 ++ library/language/es/email/user_activate.html | 2 ++ .../es/email/user_activate_passwd.html | 2 ++ .../es/email/user_welcome_inactive.html | 4 +--- library/language/es/main.php | 2 +- library/language/et/main.php | 2 +- library/language/fi/main.php | 2 +- library/language/fr/main.php | 2 +- library/language/he/main.php | 2 +- library/language/hi/main.php | 2 +- library/language/hr/main.php | 2 +- library/language/hu/main.php | 2 +- library/language/hy/main.php | 2 +- library/language/id/main.php | 2 +- library/language/it/main.php | 2 +- .../language/ja/email/admin_send_email.html | 5 +++++ library/language/ja/email/group_added.html | 4 +++- library/language/ja/email/group_approved.html | 4 ++++ library/language/ja/email/privmsg_notify.html | 2 ++ .../language/ja/email/profile_send_email.html | 5 +++++ .../ja/email/user_activate_passwd.html | 2 ++ library/language/ja/main.php | 2 +- library/language/ka/main.php | 2 +- library/language/kk/main.php | 2 +- library/language/ko/main.php | 2 +- library/language/lt/main.php | 2 +- library/language/lv/main.php | 2 +- library/language/nl/main.php | 2 +- library/language/no/main.php | 2 +- library/language/pl/main.php | 2 +- .../language/pt/email/admin_send_email.html | 4 +--- .../pt/email/user_activate_passwd.html | 8 +------- library/language/pt/email/user_welcome.html | 12 +++-------- .../pt/email/user_welcome_inactive.html | 8 ++------ library/language/pt/main.php | 2 +- library/language/ro/main.php | 2 +- library/language/ru/main.php | 16 +++++++-------- library/language/sk/main.php | 2 +- library/language/sl/main.php | 2 +- library/language/sq/main.php | 2 +- library/language/sr/main.php | 2 +- library/language/sv/main.php | 2 +- library/language/tg/main.php | 2 +- library/language/th/email/group_added.html | 10 ++++++++++ library/language/th/email/group_approved.html | 4 ++++ .../language/th/email/profile_send_email.html | 5 +++++ library/language/th/email/topic_notify.html | 2 ++ .../th/email/user_activate_passwd.html | 6 ++++++ library/language/th/email/user_welcome.html | 2 ++ .../th/email/user_welcome_inactive.html | 9 +++++++++ .../language/th/html/copyright_holders.html | 4 ++-- library/language/th/html/user_agreement.html | 2 +- library/language/th/main.php | 2 +- library/language/tr/main.php | 2 +- library/language/uk/main.php | 20 +++++++++---------- library/language/uz/main.php | 2 +- library/language/vi/main.php | 2 +- .../language/zh/email/admin_send_email.html | 5 +++++ library/language/zh/email/group_added.html | 3 +++ library/language/zh/email/group_approved.html | 3 +++ library/language/zh/email/group_request.html | 3 +++ library/language/zh/email/privmsg_notify.html | 4 ++++ library/language/zh/email/topic_notify.html | 4 +++- library/language/zh/email/user_activate.html | 4 +++- .../zh/email/user_activate_passwd.html | 4 +++- library/language/zh/email/user_welcome.html | 7 +++++++ .../zh/email/user_welcome_inactive.html | 9 ++++++++- .../language/zh/html/copyright_holders.html | 4 ++-- library/language/zh/main.php | 2 +- 86 files changed, 193 insertions(+), 106 deletions(-) diff --git a/library/language/af/main.php b/library/language/af/main.php index eddfd2b6c..04e872d2a 100644 --- a/library/language/af/main.php +++ b/library/language/af/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/ar/main.php b/library/language/ar/main.php index e1420e0fc..04a347dc3 100644 --- a/library/language/ar/main.php +++ b/library/language/ar/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/az/main.php b/library/language/az/main.php index af012571a..b674946a7 100644 --- a/library/language/az/main.php +++ b/library/language/az/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/be/main.php b/library/language/be/main.php index 2feb55022..220e62628 100644 --- a/library/language/be/main.php +++ b/library/language/be/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/bg/main.php b/library/language/bg/main.php index 096b12821..428c9fe75 100644 --- a/library/language/bg/main.php +++ b/library/language/bg/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/bs/main.php b/library/language/bs/main.php index 28f6eccd8..700ce50c7 100644 --- a/library/language/bs/main.php +++ b/library/language/bs/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/ca/main.php b/library/language/ca/main.php index 04dcae417..a70d849b0 100644 --- a/library/language/ca/main.php +++ b/library/language/ca/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/cs/main.php b/library/language/cs/main.php index 464baa6cc..3c717a42e 100644 --- a/library/language/cs/main.php +++ b/library/language/cs/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/da/main.php b/library/language/da/main.php index 1055a88bb..70b2a0312 100644 --- a/library/language/da/main.php +++ b/library/language/da/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/de/email/user_welcome.html b/library/language/de/email/user_welcome.html index e2783b598..78e3dcaa0 100644 --- a/library/language/de/email/user_welcome.html +++ b/library/language/de/email/user_welcome.html @@ -2,12 +2,9 @@ Please keep this email for your records. Your account information is as follows: ----------------------------- -Username: {USERNAME} +---------------------------- Username: {USERNAME} Password: {PASSWORD} ----------------------------- - -Please do not forget your password as it has been encrypted in our database, and we cannot retrieve it for you. Allerdings sollten Sie Ihr Passwort vergessen können Sie ein neues anfordern, die aktiviert werden, in der gleichen Weise wie das Konto. +---------------------------- Please do not forget your password as it has been encrypted in our database, and we cannot retrieve it for you. Allerdings sollten Sie Ihr Passwort vergessen können Sie ein neues anfordern, die aktiviert werden, in der gleichen Weise wie das Konto. Danke für die Registrierung. diff --git a/library/language/de/main.php b/library/language/de/main.php index 6f5084035..64adaaf4e 100644 --- a/library/language/de/main.php +++ b/library/language/de/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/el/main.php b/library/language/el/main.php index 9f820abb7..2984491cf 100644 --- a/library/language/el/main.php +++ b/library/language/el/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/en/main.php b/library/language/en/main.php index 09795fa95..77ba706dd 100644 --- a/library/language/en/main.php +++ b/library/language/en/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/es/email/group_added.html b/library/language/es/email/group_added.html index b7290a7a3..3e2cb22dc 100644 --- a/library/language/es/email/group_added.html +++ b/library/language/es/email/group_added.html @@ -1,5 +1,7 @@ Congratulations! +Congratulations! + You have been added to the "{GROUP_NAME}" group on {SITENAME}. Esta acción fue realizada por el grupo de moderador o el administrador del sitio, póngase en contacto con ellos para obtener más información. diff --git a/library/language/es/email/group_approved.html b/library/language/es/email/group_approved.html index da7d50586..4c36bd502 100644 --- a/library/language/es/email/group_approved.html +++ b/library/language/es/email/group_approved.html @@ -1,5 +1,7 @@ Congratulations! +Congratulations! + Your request to join the "{GROUP_NAME}" group on {SITENAME} has been approved. Haga clic en el siguiente enlace para ver a su grupo de pertenencia. diff --git a/library/language/es/email/privmsg_notify.html b/library/language/es/email/privmsg_notify.html index ca9df3d12..db8c6ebf5 100644 --- a/library/language/es/email/privmsg_notify.html +++ b/library/language/es/email/privmsg_notify.html @@ -1,5 +1,7 @@ Hello, {USERNAME}! +Hello, {USERNAME}! + You have received a new private message to your account on "{SITENAME}" and you have requested that you be notified on this event. Usted puede ver su nuevo mensaje haciendo clic en el siguiente enlace: {U_INBOX} Recuerde que usted siempre puede optar por no ser notificado de nuevos mensajes por el cambio de la configuración apropiada de su perfil. diff --git a/library/language/es/email/profile_send_email.html b/library/language/es/email/profile_send_email.html index f661204c2..62640a872 100644 --- a/library/language/es/email/profile_send_email.html +++ b/library/language/es/email/profile_send_email.html @@ -1,5 +1,7 @@ Hello, {TO_USERNAME}! +Hello, {TO_USERNAME}! + The following is an email sent to you by {FROM_USERNAME} via your account on {SITENAME}. Si este mensaje es spam, contiene abusivo o de otros comentarios que considere ofensivos por favor póngase en contacto con el webmaster de la junta en la siguiente dirección: {BOARD_EMAIL} Incluir este correo electrónico completa (en particular los encabezados). Por favor, tenga en cuenta que la dirección de respuesta a este correo electrónico ha sido configurado para que de {FROM_USERNAME}. diff --git a/library/language/es/email/topic_notify.html b/library/language/es/email/topic_notify.html index 255176f16..f260a3920 100644 --- a/library/language/es/email/topic_notify.html +++ b/library/language/es/email/topic_notify.html @@ -1,5 +1,7 @@ Hello, {USERNAME}! +Hello, {USERNAME}! + You are receiving this email because you are watching the topic, "{TOPIC_TITLE}" at {SITENAME}. Este tema ha recibido una respuesta desde su última visita. Puede utilizar el siguiente enlace para ver las respuestas, no más notificaciones se enviarán hasta que visite el tema. {U_TOPIC} diff --git a/library/language/es/email/user_activate.html b/library/language/es/email/user_activate.html index 4b6ba039b..c247b526e 100644 --- a/library/language/es/email/user_activate.html +++ b/library/language/es/email/user_activate.html @@ -1,5 +1,7 @@ Hello, {USERNAME}! +Hello, {USERNAME}! + Your account on "{SITENAME}" has been deactivated, most likely due to changes made to your profile. Con el fin de reactivar su cuenta, usted debe hacer clic en el enlace de abajo: {U_ACTIVATE} {EMAIL_SIG} diff --git a/library/language/es/email/user_activate_passwd.html b/library/language/es/email/user_activate_passwd.html index 47b3dd203..154a11c26 100644 --- a/library/language/es/email/user_activate_passwd.html +++ b/library/language/es/email/user_activate_passwd.html @@ -1,5 +1,7 @@ Hello, {USERNAME}! +Hello, {USERNAME}! + You are receiving this email because you have (or someone pretending to be you has) requested a new password be sent for your account on {SITENAME}. Si usted no hizo la solicitud a este correo electrónico, por favor ignore, si seguir recibiendo póngase en contacto con el administrador del foro. Para utilizar la nueva contraseña que usted necesita para activarlo. Para ello haga clic en el enlace que se proporciona a continuación. diff --git a/library/language/es/email/user_welcome_inactive.html b/library/language/es/email/user_welcome_inactive.html index 5f65662ad..e6e2914c3 100644 --- a/library/language/es/email/user_welcome_inactive.html +++ b/library/language/es/email/user_welcome_inactive.html @@ -7,9 +7,7 @@ Nombre de usuario: {USERNAME} Contraseña: {PASSWORD} ---------------------------- -Su cuenta está inactiva. You cannot use it until you visit the following link: - -{U_ACTIVATE} +Su cuenta está inactiva. You cannot use it until you visit the following link: {U_ACTIVATE} Please do not forget your password as it has been encrypted in our database, and we cannot retrieve it for you. Sin embargo, si usted olvida su contraseña, puede solicitar una nueva, que será activado en la misma forma como esta cuenta. diff --git a/library/language/es/main.php b/library/language/es/main.php index 520c56faf..d0b2fcb40 100644 --- a/library/language/es/main.php +++ b/library/language/es/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/et/main.php b/library/language/et/main.php index 5316a7653..f7ed4bb63 100644 --- a/library/language/et/main.php +++ b/library/language/et/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/fi/main.php b/library/language/fi/main.php index 0e31ef204..68e8b7c05 100644 --- a/library/language/fi/main.php +++ b/library/language/fi/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/fr/main.php b/library/language/fr/main.php index ab5b3dfde..3376cd28c 100644 --- a/library/language/fr/main.php +++ b/library/language/fr/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/he/main.php b/library/language/he/main.php index cc5cf4325..b64b9b9a6 100644 --- a/library/language/he/main.php +++ b/library/language/he/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/hi/main.php b/library/language/hi/main.php index c3d366011..ffe75a194 100644 --- a/library/language/hi/main.php +++ b/library/language/hi/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/hr/main.php b/library/language/hr/main.php index dfa5ee321..dfb8d56c4 100644 --- a/library/language/hr/main.php +++ b/library/language/hr/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/hu/main.php b/library/language/hu/main.php index 57ae81cf3..bd3e86800 100644 --- a/library/language/hu/main.php +++ b/library/language/hu/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/hy/main.php b/library/language/hy/main.php index 17f3d9bf7..f15cb1d3a 100644 --- a/library/language/hy/main.php +++ b/library/language/hy/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/id/main.php b/library/language/id/main.php index c7c48eca8..0c636c04b 100644 --- a/library/language/id/main.php +++ b/library/language/id/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/it/main.php b/library/language/it/main.php index d169c2c6f..bcf36f2df 100644 --- a/library/language/it/main.php +++ b/library/language/it/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/ja/email/admin_send_email.html b/library/language/ja/email/admin_send_email.html index a1dd40faf..4d286a390 100644 --- a/library/language/ja/email/admin_send_email.html +++ b/library/language/ja/email/admin_send_email.html @@ -13,3 +13,8 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {MESSAGE} + +メッセージ送信者: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +{MESSAGE} diff --git a/library/language/ja/email/group_added.html b/library/language/ja/email/group_added.html index f9e6e98bb..2cee84bf4 100644 --- a/library/language/ja/email/group_added.html +++ b/library/language/ja/email/group_added.html @@ -1,7 +1,9 @@ Congratulations! You have been added to the "{GROUP_NAME}" group on {SITENAME}. -このアクションは、グループモデレータまたはサイト管理者によって行われました。詳細については、それらに連絡してください。 +このアクションは、グループモデレータまたはサイト管理者によって行われました。 + +詳細については、それらに連絡してください。 ここであなたのグループ情報を表示できます: {U_GROUP} diff --git a/library/language/ja/email/group_approved.html b/library/language/ja/email/group_approved.html index c1bfea6a1..f8f02f053 100644 --- a/library/language/ja/email/group_approved.html +++ b/library/language/ja/email/group_approved.html @@ -6,3 +6,7 @@ Your request to join the "{GROUP_NAME}" group on {SITENAME} has been approved. {U_GROUP} {EMAIL_SIG} + +{U_GROUP} + +{EMAIL_SIG} diff --git a/library/language/ja/email/privmsg_notify.html b/library/language/ja/email/privmsg_notify.html index 47527d447..9f43b709e 100644 --- a/library/language/ja/email/privmsg_notify.html +++ b/library/language/ja/email/privmsg_notify.html @@ -9,3 +9,5 @@ You have received a new private message to your account on "{SITENAME}" and you {EMAIL_SIG} {EMAIL_SIG} + +{EMAIL_SIG} diff --git a/library/language/ja/email/profile_send_email.html b/library/language/ja/email/profile_send_email.html index b8a108369..461cb798f 100644 --- a/library/language/ja/email/profile_send_email.html +++ b/library/language/ja/email/profile_send_email.html @@ -15,3 +15,8 @@ The following is an email sent to you by {FROM_USERNAME} via your account on {SI ~~~~~~~~~~~~~~~~~~~~~~~~~ {MESSAGE} + +次のメッセージを送信しました +~~~~~~~~~~~~~~~~~~~~~~~~~ + +{MESSAGE} diff --git a/library/language/ja/email/user_activate_passwd.html b/library/language/ja/email/user_activate_passwd.html index a2931962e..b577d3711 100644 --- a/library/language/ja/email/user_activate_passwd.html +++ b/library/language/ja/email/user_activate_passwd.html @@ -4,6 +4,8 @@ You are receiving this email because you have (or someone pretending to be you h 新しいパスワードを使用するには、それを有効にする必要があります。 これを行うには、下記のリンクをクリックしてください。 +これを行うには、下記のリンクをクリックしてください。 + {U_ACTIVATE} If successful you will be able to login using the following password: diff --git a/library/language/ja/main.php b/library/language/ja/main.php index ee9f50f4e..e0414e0e3 100644 --- a/library/language/ja/main.php +++ b/library/language/ja/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/ka/main.php b/library/language/ka/main.php index 8f6138e1e..92e81846c 100644 --- a/library/language/ka/main.php +++ b/library/language/ka/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/kk/main.php b/library/language/kk/main.php index 0dd7e4042..e09ad1a44 100644 --- a/library/language/kk/main.php +++ b/library/language/kk/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/ko/main.php b/library/language/ko/main.php index c5fd4262e..565dc1002 100644 --- a/library/language/ko/main.php +++ b/library/language/ko/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/lt/main.php b/library/language/lt/main.php index a985834cb..c16742c95 100644 --- a/library/language/lt/main.php +++ b/library/language/lt/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/lv/main.php b/library/language/lv/main.php index 9d434357e..1f5d16194 100644 --- a/library/language/lv/main.php +++ b/library/language/lv/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/nl/main.php b/library/language/nl/main.php index b6d5a90fe..336975e30 100644 --- a/library/language/nl/main.php +++ b/library/language/nl/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/no/main.php b/library/language/no/main.php index 9aabb2604..8452b967e 100644 --- a/library/language/no/main.php +++ b/library/language/no/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/pl/main.php b/library/language/pl/main.php index ab61430ad..93b44657f 100644 --- a/library/language/pl/main.php +++ b/library/language/pl/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/pt/email/admin_send_email.html b/library/language/pt/email/admin_send_email.html index 8e91adde8..cdb72e2ff 100644 --- a/library/language/pt/email/admin_send_email.html +++ b/library/language/pt/email/admin_send_email.html @@ -1,8 +1,6 @@ O seguinte é um e-mail enviado a você por um administrador de "{SITENAME}". Se esta mensagem for spam, contiver comentários abusivos ou outros comentários que você considere ofensivos, entre em contato com o administrador do fórum no seguinte endereço: -{BOARD_EMAIL} - -Inclua este e-mail completo (principalmente os cabeçalhos). +{BOARD_EMAIL} Inclua este e-mail completo (principalmente os cabeçalhos). Mensagem enviada seguinte: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/library/language/pt/email/user_activate_passwd.html b/library/language/pt/email/user_activate_passwd.html index d2d3232bb..46bd80973 100644 --- a/library/language/pt/email/user_activate_passwd.html +++ b/library/language/pt/email/user_activate_passwd.html @@ -4,12 +4,6 @@ You are receiving this email because you have (or someone pretending to be you h Para usar a nova senha, você precisa ativá-lo. Para fazer isso clique no link fornecido abaixo. -{U_ACTIVATE} - -If successful you will be able to login using the following password: - -Password: {PASSWORD} - -You can of course change this password yourself via the profile page. Se você tiver qualquer dificuldade, por favor, contate o administrador do fórum. +{U_ACTIVATE} If successful you will be able to login using the following password: Password: {PASSWORD} You can of course change this password yourself via the profile page. Se você tiver qualquer dificuldade, por favor, contate o administrador do fórum. {EMAIL_SIG} diff --git a/library/language/pt/email/user_welcome.html b/library/language/pt/email/user_welcome.html index 1ca45283a..bf4357ef5 100644 --- a/library/language/pt/email/user_welcome.html +++ b/library/language/pt/email/user_welcome.html @@ -1,13 +1,7 @@ -{WELCOME_MSG} +{WELCOME_MSG} Please keep this email for your records. Your account information is as follows: -Please keep this email for your records. Your account information is as follows: - ----------------------------- -Username: {USERNAME} -Password: {PASSWORD} ----------------------------- - -Please do not forget your password as it has been encrypted in our database, and we cannot retrieve it for you. No entanto, caso você esqueça sua senha, você pode solicitar uma nova, que será ativada da mesma maneira como esta conta. +---------------------------- Username: {USERNAME} Password: {PASSWORD} +---------------------------- Please do not forget your password as it has been encrypted in our database, and we cannot retrieve it for you. No entanto, caso você esqueça sua senha, você pode solicitar uma nova, que será ativada da mesma maneira como esta conta. Obrigado por se registar. diff --git a/library/language/pt/email/user_welcome_inactive.html b/library/language/pt/email/user_welcome_inactive.html index 78ca98f6f..ac8650e8e 100644 --- a/library/language/pt/email/user_welcome_inactive.html +++ b/library/language/pt/email/user_welcome_inactive.html @@ -1,13 +1,9 @@ -{WELCOME_MSG} - -Please keep this email for your records. As informações de sua conta, é como segue: +{WELCOME_MSG} Please keep this email for your records. As informações de sua conta, é como segue: ---------------------------- Nome de usuário: {USERNAME} Senha: {PASSWORD} ---------------------------- Sua conta está inativa no momento. You cannot use it until you visit the following link: -{U_ACTIVATE} - -Please do not forget your password as it has been encrypted in our database, and we cannot retrieve it for you. No entanto, caso você esqueça sua senha, você pode solicitar uma nova, que será ativada da mesma maneira como esta conta. +{U_ACTIVATE} Please do not forget your password as it has been encrypted in our database, and we cannot retrieve it for you. No entanto, caso você esqueça sua senha, você pode solicitar uma nova, que será ativada da mesma maneira como esta conta. Obrigado por se registar. diff --git a/library/language/pt/main.php b/library/language/pt/main.php index 47a7a2bab..970482462 100644 --- a/library/language/pt/main.php +++ b/library/language/pt/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/ro/main.php b/library/language/ro/main.php index a5680858b..42435c193 100644 --- a/library/language/ro/main.php +++ b/library/language/ro/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/ru/main.php b/library/language/ru/main.php index 7425754da..3a769bd49 100644 --- a/library/language/ru/main.php +++ b/library/language/ru/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ @@ -1370,17 +1370,17 @@ $lang['BT_REG_FAIL'] = 'Не удалось зарегистрировать т $lang['BT_REG_FAIL_SAME_HASH'] = 'Другой торрент с таким же info_hash уже зарегистрирован'; $lang['BT_V1_ONLY_DISALLOWED'] = 'В данный момент администратор отключил только v1 торренты, разрешены: v2 и гибриды (hybrids)'; $lang['BT_V2_ONLY_DISALLOWED'] = 'В данный момент администратор отключил v2 торренты, разрешены: v1 и гибриды (hybrids)'; -$lang['BT_FLIST'] = 'Files list'; +$lang['BT_FLIST'] = 'Список файлов'; $lang['BT_FLIST_LIMIT'] = 'Настройки трекера не позволяют обрабатывать списки более чем с %d файлами. Текущее число: %d'; $lang['BT_FLIST_BTMR_HASH'] = 'Хэш BTMR'; $lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root — хэш файлов, встроенных в торренты с поддержкой BitTorrent v2, пользователи трекеров могут извлечь, вычислить их, также скачать deduplicated торренты с помощью настольных инструментов, таких как Torrent Merkle Root Reader'; $lang['BT_FLIST_CREATION_DATE'] = 'Дата создания'; -$lang['BT_IS_PRIVATE'] = 'Private torrent'; +$lang['BT_IS_PRIVATE'] = 'Приватный торрент'; $lang['BT_FLIST_FILE_PATH'] = 'Путь (%s)'; $lang['BT_FLIST_LINK_TITLE'] = 'Хеши файлов | .torrent мета-информация'; -$lang['BT_FLIST_ANNOUNCERS_LIST'] = 'Announcers list'; -$lang['BT_FLIST_ANNOUNCERS'] = 'Announcers'; -$lang['BT_FLIST_ANNOUNCERS_NOTICE'] = 'This list contains announcers of torrent file'; +$lang['BT_FLIST_ANNOUNCERS_LIST'] = 'Список анонсеров'; +$lang['BT_FLIST_ANNOUNCERS'] = 'Анонсеры'; +$lang['BT_FLIST_ANNOUNCERS_NOTICE'] = 'Этот список содержит анонсы торрент-файла'; $lang['BT_UNREG_FROM_TRACKER'] = 'Разрегистрировать торрент'; $lang['BT_UNREGISTERED'] = 'Торрент разрегистрирован'; $lang['BT_UNREGISTERED_ALREADY'] = 'Торрент уже разрегистрирован'; @@ -1405,7 +1405,7 @@ $lang['SEEDING'] = 'Сидер'; $lang['LEECHING'] = 'Личер'; $lang['IS_REGISTERED'] = 'Зарегистрирован'; $lang['MAGNET'] = 'Magnet-ссылка'; -$lang['MAGNET_FOR_GUESTS'] = 'Show magnet-link for guests'; +$lang['MAGNET_FOR_GUESTS'] = 'Показывать magnet-ссылку для гостей'; $lang['MAGNET_v2'] = 'Magnet-ссылка (поддерживается BitTorrent v2)'; //torrent status mod @@ -1442,7 +1442,7 @@ $lang['CHANGE_TOR_TYPE'] = 'Тип торрента успешно измене $lang['DEL_TORRENT'] = 'Вы уверены, что хотите удалить торрент?'; $lang['DEL_MOVE_TORRENT'] = 'Вы уверены, что хотите удалить и перенести топик?'; $lang['UNEXECUTED_RELEASE'] = 'У вас есть неоформленный релиз, прежде чем создавать новый - исправьте свой неоформленный!'; -$lang['TOR_STATUS_LOG_ACTION'] = 'New status: %s.
Previous status: %s.'; +$lang['TOR_STATUS_LOG_ACTION'] = 'Новый статус: %s.
Предыдущий статус: %s.'; // tor_comment $lang['TOR_MOD_TITLE'] = 'Изменение статуса раздачи - %s'; diff --git a/library/language/sk/main.php b/library/language/sk/main.php index f478dc34d..5646d56be 100644 --- a/library/language/sk/main.php +++ b/library/language/sk/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/sl/main.php b/library/language/sl/main.php index 98818f158..c6ae0f024 100644 --- a/library/language/sl/main.php +++ b/library/language/sl/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/sq/main.php b/library/language/sq/main.php index 59d24f820..7fa281abe 100644 --- a/library/language/sq/main.php +++ b/library/language/sq/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/sr/main.php b/library/language/sr/main.php index b2efdf294..45f323294 100644 --- a/library/language/sr/main.php +++ b/library/language/sr/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/sv/main.php b/library/language/sv/main.php index b96486f07..777afe675 100644 --- a/library/language/sv/main.php +++ b/library/language/sv/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/tg/main.php b/library/language/tg/main.php index 052b8437a..ee167c599 100644 --- a/library/language/tg/main.php +++ b/library/language/tg/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/th/email/group_added.html b/library/language/th/email/group_added.html index 4f42b92bd..8f3db8a65 100644 --- a/library/language/th/email/group_added.html +++ b/library/language/th/email/group_added.html @@ -11,6 +11,16 @@ You have been added to the "{GROUP_NAME}" group on {SITENAME}. {EMAIL_SIG} +ยินดีด้วย + +คุณต้องถูกเพิ่มไปยัง"{GROUP_NAME}"กลุ่มอยู่ {SITENAME} น +การกระทำนี้เป็นการกระทำของกลุ่ม moderator หรือเว็บไซต์ผู้ดูแลระบบติดต่อพวกเขาเพื่อรายละเอียดที่มากกว่านี้ + +คุณสามารถมุมมองของกลุ่มข้อมูลได้ที่นี่: +{U_GROUP} + +{EMAIL_SIG} + คุณสามารถดูข้อมูลกลุ่มของคุณได้ที่นี่: {U_GROUP} diff --git a/library/language/th/email/group_approved.html b/library/language/th/email/group_approved.html index adeaf632e..9e2c245a8 100644 --- a/library/language/th/email/group_approved.html +++ b/library/language/th/email/group_approved.html @@ -6,3 +6,7 @@ Your request to join the "{GROUP_NAME}" group on {SITENAME} has been approved. {U_GROUP} {EMAIL_SIG} + +{U_GROUP} + +{EMAIL_SIG} diff --git a/library/language/th/email/profile_send_email.html b/library/language/th/email/profile_send_email.html index 04e46307f..2b49f7458 100644 --- a/library/language/th/email/profile_send_email.html +++ b/library/language/th/email/profile_send_email.html @@ -17,3 +17,8 @@ The following is an email sent to you by {FROM_USERNAME} via your account on {SI ~~~~~~~~~~~~~~~~~~~~~~~~~~~ {MESSAGE} + +ข้อความที่ส่งถึงคุณดังต่อไปนี้ +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +{MESSAGE} diff --git a/library/language/th/email/topic_notify.html b/library/language/th/email/topic_notify.html index 956c0afc4..6e198bebf 100644 --- a/library/language/th/email/topic_notify.html +++ b/library/language/th/email/topic_notify.html @@ -2,6 +2,8 @@ Hello, {USERNAME}! You are receiving this email because you are watching the topic, "{TOPIC_TITLE}" at {SITENAME}. หัวข้อนี้ได้รับการตอบกลับตั้งแต่การเยี่ยมชมครั้งล่าสุดของคุณ คุณสามารถใช้ลิงก์ต่อไปนี้เพื่อดูการตอบกลับได้ จะไม่มีการส่งการแจ้งเตือนอีกต่อไปจนกว่าคุณจะไปที่หัวข้อ +หัวข้อนี้ได้รับการตอบกลับตั้งแต่การเยี่ยมชมครั้งล่าสุดของคุณ คุณสามารถใช้ลิงก์ต่อไปนี้เพื่อดูการตอบกลับได้ จะไม่มีการส่งการแจ้งเตือนอีกต่อไปจนกว่าคุณจะไปที่หัวข้อ + {U_TOPIC} หากคุณไม่ต้องการดูหัวข้อนี้อีกต่อไป คุณสามารถคลิกลิงก์ "หยุดดูหัวข้อนี้" ที่ด้านล่างของหัวข้อด้านบน หรือคลิกลิงก์ต่อไปนี้: diff --git a/library/language/th/email/user_activate_passwd.html b/library/language/th/email/user_activate_passwd.html index 45a167d2e..c6bda1919 100644 --- a/library/language/th/email/user_activate_passwd.html +++ b/library/language/th/email/user_activate_passwd.html @@ -4,6 +4,10 @@ You are receiving this email because you have (or someone pretending to be you h หากต้องการใช้รหัสผ่านใหม่ คุณต้องเปิดใช้งาน โดยคลิกลิงก์ด้านล่าง +หากคุณไม่ได้ขออีเมลนี้ โปรดเพิกเฉยต่ออีเมลนี้ หากคุณยังคงได้รับอีเมลนี้ โปรดติดต่อผู้ดูแลบอร์ด + +หากต้องการใช้รหัสผ่านใหม่ คุณต้องเปิดใช้งาน โดยคลิกลิงก์ด้านล่าง + {U_ACTIVATE} If successful you will be able to login using the following password: @@ -13,3 +17,5 @@ Password: {PASSWORD} You can of course change this password yourself via the profile page. หากคุณมีปัญหาใด ๆ โปรดติดต่อผู้ดูแลบอร์ด {EMAIL_SIG} + +{EMAIL_SIG} diff --git a/library/language/th/email/user_welcome.html b/library/language/th/email/user_welcome.html index 39fc972d5..a753af67a 100644 --- a/library/language/th/email/user_welcome.html +++ b/library/language/th/email/user_welcome.html @@ -11,4 +11,6 @@ Please do not forget your password as it has been encrypted in our database, and ขอบคุณสำหรับการลงทะเบียน. +ขอบคุณสำหรับการลงทะเบียน. + {EMAIL_SIG} diff --git a/library/language/th/email/user_welcome_inactive.html b/library/language/th/email/user_welcome_inactive.html index 01f6286f8..61c6ea852 100644 --- a/library/language/th/email/user_welcome_inactive.html +++ b/library/language/th/email/user_welcome_inactive.html @@ -7,6 +7,13 @@ Please keep this email for your records. ข้อมูลบัญชีขอ รหัสผ่าน: {PASSWORD} ----- ----------------------- +บัญชีของคุณไม่ได้ใช้งานอยู่ในขณะนี้ ข้อมูลบัญชีของคุณมีดังนี้: + +---------------------------- +ชื่อผู้ใช้: {USERNAME} +รหัสผ่าน: {PASSWORD} +----- ----------------------- + บัญชีของคุณไม่ได้ใช้งานอยู่ในขณะนี้ You cannot use it until you visit the following link: {U_ACTIVATE} @@ -15,4 +22,6 @@ Please do not forget your password as it has been encrypted in our database, and ขอบคุณสำหรับการลงทะเบียน. +ขอบคุณสำหรับการลงทะเบียน. + {EMAIL_SIG} diff --git a/library/language/th/html/copyright_holders.html b/library/language/th/html/copyright_holders.html index afab1c308..70655099f 100644 --- a/library/language/th/html/copyright_holders.html +++ b/library/language/th/html/copyright_holders.html @@ -28,8 +28,8 @@

เป็นเราเก็บที่ถูกต้องจะตีพิมพ์บนเว็บไซต์ของข้อมูลส่งมาถึงเราโดยจดหมาย

-

บี)เราไม่สามารถควบคุมการกระทำของผู้ใช้ที่อาจจะส่งไปทางไปรษณีย์ส่วนเชื่อมโยงกับข้อมูลซึ่งเป็นวัตถุของคุณสงวนลิขสิทธิ์. ข้อมูลใด ๆ ในฟอรัมจะถูกวางโดยอัตโนมัติ โดยไม่มีการควบคุมใด ๆ จากไตรมาสใด ๆ ซึ่งสอดคล้องกับแนวปฏิบัติสากลที่ยอมรับกันทั่วไปในการวางข้อมูลบนอินเทอร์เน็ต อย่างไรก็ตาม ไม่ว่าในกรณีใด เราจะพิจารณาข้อสงสัยทั้งหมดของคุณเกี่ยวกับการอ้างอิงถึงข้อมูลที่ละเมิดสิทธิ์ของคุณ

+

บี)เราไม่สามารถควบคุมการกระทำของผู้ใช้ที่อาจจะส่งไปทางไปรษณีย์ส่วนเชื่อมโยงกับข้อมูลซึ่งเป็นวัตถุของคุณสงวนลิขสิทธิ์. ข้อมูลใด ๆ ในฟอรัมจะถูกวางโดยอัตโนมัติ โดยไม่มีการควบคุมใด ๆ จากไตรมาสใด ๆ ซึ่งสอดคล้องกับแนวปฏิบัติสากลที่ยอมรับกันทั่วไปในการวางข้อมูลบนอินเทอร์เน็ต อย่างไรก็ตาม ไม่ว่าในกรณีใด เราจะพิจารณาข้อสงสัยทั้งหมดของคุณเกี่ยวกับการอ้างอิงถึงข้อมูลที่ละเมิดสิทธิ์ของคุณ อย่างไรก็ตาม ไม่ว่าในกรณีใด เราจะพิจารณาข้อสงสัยทั้งหมดของคุณเกี่ยวกับการอ้างอิงถึงข้อมูลที่ละเมิดสิทธิ์ของคุณ

-

c)ตามกฎหมายในสงวนลิขสิทธิ์และเกี่ยวข้องกันสิทธิของผู้อ้างอิงถึงจะมีข้อมูล(ข้อมูลข้อความ)โดยตัวมันเองไม่ใช่เรื่องต้องกฏหมายสงวนลิขสิทธิ์(ถึงแม้ว่ามันอาจจะละเมิด"ข้อตกลงเกี่ยวกับการใช้งานของเว็บไซต์ของ")ได้ ดังนั้น,มันไม่จำเป็นต้องส่งจดหมายที่บรรจุภัยคุกคามหรือข้อเรียกร้องอย่างที่ไม่มีเหตุผลจริงๆนะ ดังนั้นจึงไม่จำเป็นต้องส่งจดหมายที่มีการข่มขู่หรือเรียกร้องเนื่องจากไม่มีเหตุผลที่แท้จริง

+

c)ตามกฎหมายในสงวนลิขสิทธิ์และเกี่ยวข้องกันสิทธิของผู้อ้างอิงถึงจะมีข้อมูล(ข้อมูลข้อความ)โดยตัวมันเองไม่ใช่เรื่องต้องกฏหมายสงวนลิขสิทธิ์(ถึงแม้ว่ามันอาจจะละเมิด"ข้อตกลงเกี่ยวกับการใช้งานของเว็บไซต์ของ")ได้ ดังนั้น,มันไม่จำเป็นต้องส่งจดหมายที่บรรจุภัยคุกคามหรือข้อเรียกร้องอย่างที่ไม่มีเหตุผลจริงๆนะ ดังนั้นจึงไม่จำเป็นต้องส่งจดหมายที่มีการข่มขู่หรือเรียกร้องเนื่องจากไม่มีเหตุผลที่แท้จริง ดังนั้นจึงไม่จำเป็นต้องส่งจดหมายที่มีการข่มขู่หรือเรียกร้องเนื่องจากไม่มีเหตุผลที่แท้จริง

diff --git a/library/language/th/html/user_agreement.html b/library/language/th/html/user_agreement.html index 047027113..9b92b6ade 100644 --- a/library/language/th/html/user_agreement.html +++ b/library/language/th/html/user_agreement.html @@ -18,7 +18,7 @@

ผู้ใช้ expressly เห็นด้วยว่าจะใช้ทรัพยากรของตัวเองต้องมาเสี่ยงไปด้วย

-

ของผู้ใช้จะรู้และเห็นด้วยนั่นข้อตกลงกับวัตถุดิบบนทรัพยากรและข้อมูลถูกสร้างโดยคนที่สามงานปาร์ตี้แล้วเก็บไว้พวกนั้นบนอินเตอร์เน็ตพวกเขาฝ่ายไอทีเปิดดูคอมพิวเตอร์และ(หรือ)เครื่องแม่ข่ายได้ เนื้อหาและความปลอดภัยของพวกวัตถุไม่สามารถควบคุมโดยทรัพยากรผู้ดูแลระบบดังนั้นอย่างหลัไม่ผิดชอบแน่นอน: เนื้อหาและความปลอดภัยของเนื้อหาเหล่านี้ไม่สามารถควบคุมได้โดยการบริหารทรัพยากร ดังนั้นสิ่งหลังจะไม่รับผิดชอบ:

+

ของผู้ใช้จะรู้และเห็นด้วยนั่นข้อตกลงกับวัตถุดิบบนทรัพยากรและข้อมูลถูกสร้างโดยคนที่สามงานปาร์ตี้แล้วเก็บไว้พวกนั้นบนอินเตอร์เน็ตพวกเขาฝ่ายไอทีเปิดดูคอมพิวเตอร์และ(หรือ)เครื่องแม่ข่ายได้ เนื้อหาและความปลอดภัยของพวกวัตถุไม่สามารถควบคุมโดยทรัพยากรผู้ดูแลระบบดังนั้นอย่างหลัไม่ผิดชอบแน่นอน: ของผู้ใช้จะรู้และเห็นด้วยนั่นข้อตกลงกับวัตถุดิบบนทรัพยากรและข้อมูลถูกสร้างโดยคนที่สามงานปาร์ตี้แล้วเก็บไว้พวกนั้นบนอินเตอร์เน็ตพวกเขาฝ่ายไอทีเปิดดูคอมพิวเตอร์และ(หรือ)เครื่องแม่ข่ายได้ เนื้อหาและความปลอดภัยของพวกวัตถุไม่สามารถควบคุมโดยทรัพยากรผู้ดูแลระบบดังนั้นอย่างหลัไม่ผิดชอบแน่นอน: เนื้อหาและความปลอดภัยของเนื้อหาเหล่านี้ไม่สามารถควบคุมได้โดยการบริหารทรัพยากร ดังนั้นสิ่งหลังจะไม่รับผิดชอบ:

    -สำหรับเนื้อหาของวัสดุที่ได้รับโดยผู้ใช้จากการใช้ข้อมูลทรัพยากรและพวกเขาเป็นไปได้ inconsistency กปรับใช้จะกับกฎหรือน่ารังเกียจ;

    -สำหรับการกระทำของโปรแกรมใช้หรือไม่ใช้ข้อมูลที่ได้รับ;

    diff --git a/library/language/th/main.php b/library/language/th/main.php index b97ad618d..58c541013 100644 --- a/library/language/th/main.php +++ b/library/language/th/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/tr/main.php b/library/language/tr/main.php index 2b8cd7a93..7a5357d7b 100644 --- a/library/language/tr/main.php +++ b/library/language/tr/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/uk/main.php b/library/language/uk/main.php index a65aa09ed..4704ffc03 100644 --- a/library/language/uk/main.php +++ b/library/language/uk/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ @@ -277,8 +277,8 @@ $lang['SPOILER_HEAD'] = 'прихований текст'; $lang['SPOILER_CLOSE'] = 'згорнути'; $lang['PLAY_ON_CURPAGE'] = 'Почати відтворення на цій сторінці'; -$lang['EDITED_TIME_TOTAL'] = 'Last edited by %s on %s; edited %d time in total'; // Last edited by me on 12 Oct 2001; edited 1 time in total -$lang['EDITED_TIMES_TOTAL'] = 'Last edited by %s on %s; edited %d times in total'; // Last edited by me on 12 Oct 2001; edited 2 times in total +$lang['EDITED_TIME_TOTAL'] = 'Востаннє змінено %s (%s); всього редагувань: %d'; // Last edited by me on 12 Oct 2001; edited 1 time in total +$lang['EDITED_TIMES_TOTAL'] = 'Востаннє змінено %s (%s); всього редагувань: %d'; // Last edited by me on 12 Oct 2001; edited 2 times in total $lang['LOCK_TOPIC'] = 'Закрити тему'; $lang['UNLOCK_TOPIC'] = 'Розблокувати тему'; @@ -694,7 +694,7 @@ $lang['ORDER'] = 'Сортувати'; $lang['THANK_TOPIC'] = 'Проголосувати за цю тему'; $lang['THANKS_GRATITUDE'] = 'Ми цінуємо вашу вдячність'; $lang['LAST_LIKES'] = 'Останній голос'; -$lang['LIKE_OWN_POST'] = 'Ви не можете голосувати за свою тему'; +$lang['LIKE_OWN_POST'] = 'Ви не можете проголосувати за власну публікацію.'; $lang['NO_LIKES'] = 'Ще ніхто не проголосував'; $lang['LIKE_ALREADY'] = 'Ви вже проголосували за цю тему'; @@ -990,10 +990,10 @@ $lang['COUNTRY'] = 'Країна'; $lang['SET_OWN_COUNTRY'] = 'Вказати свою країну (вручну)'; $lang['COUNTRIES'] = [ 0 => 'Не вказано', - 'AD' => 'Andorra', - 'AE' => 'United Arab Emirates', - 'AF' => 'Afghanistan', - 'AG' => 'Antigua and Barbuda', + 'AD' => 'Андора', + 'AE' => 'Об\'єднані Арабські Емірати', + 'AF' => 'Афганістан', + 'AG' => 'Антиґуа і Барбуда', 'AI' => 'Anguilla', 'AL' => 'Албанія', 'AM' => 'Вірменія', @@ -1370,12 +1370,12 @@ $lang['BT_REG_FAIL'] = 'Не вдалося зареєструвати торе $lang['BT_REG_FAIL_SAME_HASH'] = 'Інший торрент з таким же info_hash вже зареєстрований'; $lang['BT_V1_ONLY_DISALLOWED'] = 'v1-only torrents have been disabled by the administrator at the moment, allowed: v2 and hybrids'; $lang['BT_V2_ONLY_DISALLOWED'] = 'v2-only torrents have been disabled by the administrator at the moment, allowed: v1 and hybrids'; -$lang['BT_FLIST'] = 'Files list'; +$lang['BT_FLIST'] = 'Список файлів'; $lang['BT_FLIST_LIMIT'] = 'Tracker settings do not allow to process lists with more than %d files. Current number is: %d'; $lang['BT_FLIST_BTMR_HASH'] = 'BTMR Hash'; $lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as Torrent Merkle Root Reader'; $lang['BT_FLIST_CREATION_DATE'] = 'Дата створення'; -$lang['BT_IS_PRIVATE'] = 'Private torrent'; +$lang['BT_IS_PRIVATE'] = 'Приватний торрент'; $lang['BT_FLIST_FILE_PATH'] = 'Path (%s)'; $lang['BT_FLIST_LINK_TITLE'] = 'File hashes | .torrent meta-info'; $lang['BT_FLIST_ANNOUNCERS_LIST'] = 'Announcers list'; diff --git a/library/language/uz/main.php b/library/language/uz/main.php index 3c1635942..73f25d417 100644 --- a/library/language/uz/main.php +++ b/library/language/uz/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/vi/main.php b/library/language/vi/main.php index 3a796a3bb..0ab59c1fc 100644 --- a/library/language/vi/main.php +++ b/library/language/vi/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/zh/email/admin_send_email.html b/library/language/zh/email/admin_send_email.html index ad1d9c9b9..a7563a5b6 100644 --- a/library/language/zh/email/admin_send_email.html +++ b/library/language/zh/email/admin_send_email.html @@ -13,3 +13,8 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {MESSAGE} + +發送給您的消息如下: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +{MESSAGE} diff --git a/library/language/zh/email/group_added.html b/library/language/zh/email/group_added.html index 34652fea9..55a0a63fb 100644 --- a/library/language/zh/email/group_added.html +++ b/library/language/zh/email/group_added.html @@ -1,7 +1,10 @@ Congratulations! +Congratulations! + You have been added to the "{GROUP_NAME}" group on {SITENAME}. 这个动作由小组组长或站点管理员发出,请联系他们以获得更多信息。 +这个动作由小组组长或站点管理员发出,请联系他们以获得更多信息。 您可以在此查看您的组信息︰ {U_GROUP} diff --git a/library/language/zh/email/group_approved.html b/library/language/zh/email/group_approved.html index fc05cf86e..a5f1232c1 100644 --- a/library/language/zh/email/group_approved.html +++ b/library/language/zh/email/group_approved.html @@ -1,7 +1,10 @@ Congratulations! +Congratulations! + Your request to join the "{GROUP_NAME}" group on {SITENAME} has been approved. 点击,在以下链接查看你的小组成员。 +点击,在以下链接查看你的小组成员。 {U_GROUP} diff --git a/library/language/zh/email/group_request.html b/library/language/zh/email/group_request.html index 8d6149423..ee98813f0 100644 --- a/library/language/zh/email/group_request.html +++ b/library/language/zh/email/group_request.html @@ -1,5 +1,8 @@ Dear {GROUP_MODERATOR}. +A user {USER} has requested to join a group you moderator on {SITENAME}. +Dear {GROUP_MODERATOR}. + A user {USER} has requested to join a group you moderator on {SITENAME}. 批准或拒绝这一用户的请求,请访问以下链接: diff --git a/library/language/zh/email/privmsg_notify.html b/library/language/zh/email/privmsg_notify.html index f1c23c742..aa105d645 100644 --- a/library/language/zh/email/privmsg_notify.html +++ b/library/language/zh/email/privmsg_notify.html @@ -1,7 +1,11 @@ Hello, {USERNAME}! +Hello, {USERNAME}! + You have received a new private message to your account on "{SITENAME}" and you have requested that you be notified on this event. 你可以通过点击下面的链接查看你的新消息︰ {U_INBOX} +你可以在你的配置文件中选择不接受新消息通知。 你可以通过点击下面的链接查看你的新消息︰ +{U_INBOX} 你可以在你的配置文件中选择不接受新消息通知。 {EMAIL_SIG} diff --git a/library/language/zh/email/topic_notify.html b/library/language/zh/email/topic_notify.html index 0ba28e4bd..d0517068e 100644 --- a/library/language/zh/email/topic_notify.html +++ b/library/language/zh/email/topic_notify.html @@ -1,6 +1,8 @@ Hello, {USERNAME}! -You are receiving this email because you are watching the topic, "{TOPIC_TITLE}" at {SITENAME}. 自从你最后一次访问之后这个主题有了新回复。 您可以点击下面的链接查看新答复,您访问该主题后将不再给您发送通知。 +Hello, {USERNAME}! + +You are receiving this email because you are watching the topic, "{TOPIC_TITLE}" at {SITENAME}. 自从你最后一次访问之后这个主题有了新回复。 自从你最后一次访问之后这个主题有了新回复。 您可以点击下面的链接查看新答复,您访问该主题后将不再给您发送通知。 {U_TOPIC} 如果你不再想关注该主题,您可以单击"停止关注这个主题",或通过单击下面的链接︰{U_STOP_WATCHING_TOPIC} diff --git a/library/language/zh/email/user_activate.html b/library/language/zh/email/user_activate.html index 9d3af5747..0471ee86e 100644 --- a/library/language/zh/email/user_activate.html +++ b/library/language/zh/email/user_activate.html @@ -1,4 +1,6 @@ Hello, {USERNAME}! -Your account on "{SITENAME}" has been deactivated, most likely due to changes made to your profile. 您必须点击以下的链接来重激活你的账户。 {U_ACTIVATE} +Hello, {USERNAME}! + +Your account on "{SITENAME}" has been deactivated, most likely due to changes made to your profile. 您必须点击以下的链接来重激活你的账户。 您必须点击以下的链接来重激活你的账户。 {U_ACTIVATE} {EMAIL_SIG} diff --git a/library/language/zh/email/user_activate_passwd.html b/library/language/zh/email/user_activate_passwd.html index d6665eef3..4a73380d0 100644 --- a/library/language/zh/email/user_activate_passwd.html +++ b/library/language/zh/email/user_activate_passwd.html @@ -1,5 +1,7 @@ Hello, {USERNAME}! +Hello, {USERNAME}! + You are receiving this email because you have (or someone pretending to be you has) requested a new password be sent for your account on {SITENAME}. 如果你没有发出过类似请求,请无视此电邮。 如果你持续不断地收到类似的电邮,请联系网站管理员。 但要使用新的密码,你需要激活它。 如果需要,请点击下面的链接。 @@ -10,6 +12,6 @@ If successful you will be able to login using the following password: Password: {PASSWORD} -You can of course change this password yourself via the profile page. 如果您有任何困難,請聯繫董事會管理員。 +You can of course change this password yourself via the profile page. 如果您有任何困難,請聯繫董事會管理員。 如果您有任何困難,請聯繫董事會管理員。 {EMAIL_SIG} diff --git a/library/language/zh/email/user_welcome.html b/library/language/zh/email/user_welcome.html index ec44326a1..a0933be6e 100644 --- a/library/language/zh/email/user_welcome.html +++ b/library/language/zh/email/user_welcome.html @@ -7,6 +7,13 @@ Username: {USERNAME} Password: {PASSWORD} ---------------------------- +Please do not forget your password as it has been encrypted in our database, and we cannot retrieve it for you. 然而,应该你忘了你的密码你可以请求一个新的之一,它会被激活,以同样的方式为这个帐户。 Your account information is as follows: + +---------------------------- +Username: {USERNAME} +Password: {PASSWORD} +---------------------------- + Please do not forget your password as it has been encrypted in our database, and we cannot retrieve it for you. 然而,应该你忘了你的密码你可以请求一个新的之一,它会被激活,以同样的方式为这个帐户。 感谢您的注册。 diff --git a/library/language/zh/email/user_welcome_inactive.html b/library/language/zh/email/user_welcome_inactive.html index 3d50828ab..b8dc8d504 100644 --- a/library/language/zh/email/user_welcome_inactive.html +++ b/library/language/zh/email/user_welcome_inactive.html @@ -7,11 +7,18 @@ Please keep this email for your records. 您的账户信息如下: 密码:{PASSWORD} ---------------------------- +您的账户目前的不活动状态。 您的账户信息如下: + +---------------------------- +用户名:{USERNAME} +密码:{PASSWORD} +---------------------------- + 您的账户目前的不活动状态。 You cannot use it until you visit the following link: {U_ACTIVATE} -Please do not forget your password as it has been encrypted in our database, and we cannot retrieve it for you. 然而,应该你忘了你的密码你可以请求一个新的之一,它会被激活,以同样的方式为这个帐户。 +Please do not forget your password as it has been encrypted in our database, and we cannot retrieve it for you. 然而,应该你忘了你的密码你可以请求一个新的之一,它会被激活,以同样的方式为这个帐户。 然而,应该你忘了你的密码你可以请求一个新的之一,它会被激活,以同样的方式为这个帐户。 谢谢你的注册。 diff --git a/library/language/zh/html/copyright_holders.html b/library/language/zh/html/copyright_holders.html index ff292d018..4bda532fa 100644 --- a/library/language/zh/html/copyright_holders.html +++ b/library/language/zh/html/copyright_holders.html @@ -7,7 +7,7 @@

    这要求你们给我们送来一封信(电子形式) 这向我们表示以下信息:

    -

    1. 1. 证明文件的权利,以保护的材料通过版权所有:

    +

    1. 1. 1. 证明文件的权利,以保护的材料通过版权所有:

    -扫描的文件的密封,或

    -电子邮件是从一个官方电子邮件域的公司的拥有人,或

    -其他的联系人信息的唯一标识,你作为所有者的材料。

    @@ -16,7 +16,7 @@

    在这你可以指定在哪里和在什么条件下可以获得信息、参考文献,这已被删除,以及联系信息,使用户可以得到你所需的所有信息,关于这种材料。

    -

    3. 3. 直接页面的链接,包含参考文献数据,必须清除。

    +

    3. 3. 3. 直接页面的链接,包含参考文献数据,必须清除。

    链接应该是视图 https://url.to/link 或类似的东西。

    diff --git a/library/language/zh/main.php b/library/language/zh/main.php index 89ecac5f2..8a4ec69cb 100644 --- a/library/language/zh/main.php +++ b/library/language/zh/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ From 8a3b12c1192678552a3186c1f58df9b4d7e5ba1b Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sat, 17 May 2025 08:26:34 +0300 Subject: [PATCH 106/216] crowdin: New translations (#1906) * crowdin: New translations * Update main.php --- library/language/af/main.php | 2 +- library/language/ar/main.php | 2 +- library/language/az/main.php | 2 +- library/language/be/main.php | 2 +- library/language/bg/main.php | 2 +- library/language/bs/main.php | 2 +- library/language/ca/main.php | 2 +- library/language/cs/main.php | 2 +- library/language/da/main.php | 2 +- library/language/de/email/user_welcome.html | 7 +++++-- library/language/de/main.php | 2 +- library/language/el/main.php | 2 +- library/language/en/main.php | 2 +- library/language/es/email/group_added.html | 2 -- library/language/es/email/group_approved.html | 2 -- library/language/es/email/privmsg_notify.html | 2 -- .../language/es/email/profile_send_email.html | 2 -- library/language/es/email/topic_notify.html | 2 -- library/language/es/email/user_activate.html | 2 -- .../es/email/user_activate_passwd.html | 2 -- .../es/email/user_welcome_inactive.html | 4 +++- library/language/es/main.php | 2 +- library/language/et/main.php | 2 +- library/language/fi/main.php | 2 +- library/language/fr/main.php | 2 +- library/language/he/main.php | 2 +- library/language/hi/main.php | 2 +- library/language/hr/main.php | 2 +- library/language/hu/main.php | 2 +- library/language/hy/main.php | 2 +- library/language/id/main.php | 2 +- library/language/it/main.php | 2 +- .../language/ja/email/admin_send_email.html | 5 ----- library/language/ja/email/group_added.html | 4 +--- library/language/ja/email/group_approved.html | 4 ---- library/language/ja/email/privmsg_notify.html | 2 -- .../language/ja/email/profile_send_email.html | 5 ----- .../ja/email/user_activate_passwd.html | 2 -- library/language/ja/main.php | 2 +- library/language/ka/main.php | 2 +- library/language/kk/main.php | 2 +- library/language/ko/main.php | 2 +- library/language/lt/main.php | 2 +- library/language/lv/main.php | 2 +- library/language/nl/main.php | 2 +- library/language/no/main.php | 2 +- library/language/pl/main.php | 2 +- .../language/pt/email/admin_send_email.html | 4 +++- .../pt/email/user_activate_passwd.html | 8 +++++++- library/language/pt/email/user_welcome.html | 12 ++++++++--- .../pt/email/user_welcome_inactive.html | 8 ++++++-- library/language/pt/main.php | 2 +- library/language/ro/main.php | 2 +- library/language/ru/main.php | 2 +- library/language/sk/main.php | 2 +- library/language/sl/main.php | 2 +- library/language/sq/main.php | 2 +- library/language/sr/main.php | 2 +- library/language/sv/main.php | 2 +- library/language/tg/main.php | 2 +- library/language/th/email/group_added.html | 10 ---------- library/language/th/email/group_approved.html | 4 ---- .../language/th/email/profile_send_email.html | 5 ----- library/language/th/email/topic_notify.html | 2 -- .../th/email/user_activate_passwd.html | 6 ------ library/language/th/email/user_welcome.html | 2 -- .../th/email/user_welcome_inactive.html | 9 --------- .../language/th/html/copyright_holders.html | 4 ++-- library/language/th/html/user_agreement.html | 2 +- library/language/th/main.php | 2 +- library/language/tr/main.php | 2 +- library/language/uk/main.php | 20 +++++++++---------- library/language/uz/main.php | 2 +- library/language/vi/main.php | 2 +- .../language/zh/email/admin_send_email.html | 5 ----- library/language/zh/email/group_added.html | 3 --- library/language/zh/email/group_approved.html | 3 --- library/language/zh/email/group_request.html | 3 --- library/language/zh/email/privmsg_notify.html | 4 ---- library/language/zh/email/topic_notify.html | 4 +--- library/language/zh/email/user_activate.html | 4 +--- .../zh/email/user_activate_passwd.html | 4 +--- library/language/zh/email/user_welcome.html | 7 ------- .../zh/email/user_welcome_inactive.html | 9 +-------- .../language/zh/html/copyright_holders.html | 4 ++-- library/language/zh/main.php | 2 +- 86 files changed, 99 insertions(+), 186 deletions(-) diff --git a/library/language/af/main.php b/library/language/af/main.php index 04e872d2a..eddfd2b6c 100644 --- a/library/language/af/main.php +++ b/library/language/af/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/ar/main.php b/library/language/ar/main.php index 04a347dc3..e1420e0fc 100644 --- a/library/language/ar/main.php +++ b/library/language/ar/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/az/main.php b/library/language/az/main.php index b674946a7..af012571a 100644 --- a/library/language/az/main.php +++ b/library/language/az/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/be/main.php b/library/language/be/main.php index 220e62628..2feb55022 100644 --- a/library/language/be/main.php +++ b/library/language/be/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/bg/main.php b/library/language/bg/main.php index 428c9fe75..096b12821 100644 --- a/library/language/bg/main.php +++ b/library/language/bg/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/bs/main.php b/library/language/bs/main.php index 700ce50c7..28f6eccd8 100644 --- a/library/language/bs/main.php +++ b/library/language/bs/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/ca/main.php b/library/language/ca/main.php index a70d849b0..04dcae417 100644 --- a/library/language/ca/main.php +++ b/library/language/ca/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/cs/main.php b/library/language/cs/main.php index 3c717a42e..464baa6cc 100644 --- a/library/language/cs/main.php +++ b/library/language/cs/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/da/main.php b/library/language/da/main.php index 70b2a0312..1055a88bb 100644 --- a/library/language/da/main.php +++ b/library/language/da/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/de/email/user_welcome.html b/library/language/de/email/user_welcome.html index 78e3dcaa0..e2783b598 100644 --- a/library/language/de/email/user_welcome.html +++ b/library/language/de/email/user_welcome.html @@ -2,9 +2,12 @@ Please keep this email for your records. Your account information is as follows: ----------------------------- Username: {USERNAME} +---------------------------- +Username: {USERNAME} Password: {PASSWORD} ----------------------------- Please do not forget your password as it has been encrypted in our database, and we cannot retrieve it for you. Allerdings sollten Sie Ihr Passwort vergessen können Sie ein neues anfordern, die aktiviert werden, in der gleichen Weise wie das Konto. +---------------------------- + +Please do not forget your password as it has been encrypted in our database, and we cannot retrieve it for you. Allerdings sollten Sie Ihr Passwort vergessen können Sie ein neues anfordern, die aktiviert werden, in der gleichen Weise wie das Konto. Danke für die Registrierung. diff --git a/library/language/de/main.php b/library/language/de/main.php index 64adaaf4e..6f5084035 100644 --- a/library/language/de/main.php +++ b/library/language/de/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/el/main.php b/library/language/el/main.php index 2984491cf..9f820abb7 100644 --- a/library/language/el/main.php +++ b/library/language/el/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/en/main.php b/library/language/en/main.php index 77ba706dd..09795fa95 100644 --- a/library/language/en/main.php +++ b/library/language/en/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/es/email/group_added.html b/library/language/es/email/group_added.html index 3e2cb22dc..b7290a7a3 100644 --- a/library/language/es/email/group_added.html +++ b/library/language/es/email/group_added.html @@ -1,7 +1,5 @@ Congratulations! -Congratulations! - You have been added to the "{GROUP_NAME}" group on {SITENAME}. Esta acción fue realizada por el grupo de moderador o el administrador del sitio, póngase en contacto con ellos para obtener más información. diff --git a/library/language/es/email/group_approved.html b/library/language/es/email/group_approved.html index 4c36bd502..da7d50586 100644 --- a/library/language/es/email/group_approved.html +++ b/library/language/es/email/group_approved.html @@ -1,7 +1,5 @@ Congratulations! -Congratulations! - Your request to join the "{GROUP_NAME}" group on {SITENAME} has been approved. Haga clic en el siguiente enlace para ver a su grupo de pertenencia. diff --git a/library/language/es/email/privmsg_notify.html b/library/language/es/email/privmsg_notify.html index db8c6ebf5..ca9df3d12 100644 --- a/library/language/es/email/privmsg_notify.html +++ b/library/language/es/email/privmsg_notify.html @@ -1,7 +1,5 @@ Hello, {USERNAME}! -Hello, {USERNAME}! - You have received a new private message to your account on "{SITENAME}" and you have requested that you be notified on this event. Usted puede ver su nuevo mensaje haciendo clic en el siguiente enlace: {U_INBOX} Recuerde que usted siempre puede optar por no ser notificado de nuevos mensajes por el cambio de la configuración apropiada de su perfil. diff --git a/library/language/es/email/profile_send_email.html b/library/language/es/email/profile_send_email.html index 62640a872..f661204c2 100644 --- a/library/language/es/email/profile_send_email.html +++ b/library/language/es/email/profile_send_email.html @@ -1,7 +1,5 @@ Hello, {TO_USERNAME}! -Hello, {TO_USERNAME}! - The following is an email sent to you by {FROM_USERNAME} via your account on {SITENAME}. Si este mensaje es spam, contiene abusivo o de otros comentarios que considere ofensivos por favor póngase en contacto con el webmaster de la junta en la siguiente dirección: {BOARD_EMAIL} Incluir este correo electrónico completa (en particular los encabezados). Por favor, tenga en cuenta que la dirección de respuesta a este correo electrónico ha sido configurado para que de {FROM_USERNAME}. diff --git a/library/language/es/email/topic_notify.html b/library/language/es/email/topic_notify.html index f260a3920..255176f16 100644 --- a/library/language/es/email/topic_notify.html +++ b/library/language/es/email/topic_notify.html @@ -1,7 +1,5 @@ Hello, {USERNAME}! -Hello, {USERNAME}! - You are receiving this email because you are watching the topic, "{TOPIC_TITLE}" at {SITENAME}. Este tema ha recibido una respuesta desde su última visita. Puede utilizar el siguiente enlace para ver las respuestas, no más notificaciones se enviarán hasta que visite el tema. {U_TOPIC} diff --git a/library/language/es/email/user_activate.html b/library/language/es/email/user_activate.html index c247b526e..4b6ba039b 100644 --- a/library/language/es/email/user_activate.html +++ b/library/language/es/email/user_activate.html @@ -1,7 +1,5 @@ Hello, {USERNAME}! -Hello, {USERNAME}! - Your account on "{SITENAME}" has been deactivated, most likely due to changes made to your profile. Con el fin de reactivar su cuenta, usted debe hacer clic en el enlace de abajo: {U_ACTIVATE} {EMAIL_SIG} diff --git a/library/language/es/email/user_activate_passwd.html b/library/language/es/email/user_activate_passwd.html index 154a11c26..47b3dd203 100644 --- a/library/language/es/email/user_activate_passwd.html +++ b/library/language/es/email/user_activate_passwd.html @@ -1,7 +1,5 @@ Hello, {USERNAME}! -Hello, {USERNAME}! - You are receiving this email because you have (or someone pretending to be you has) requested a new password be sent for your account on {SITENAME}. Si usted no hizo la solicitud a este correo electrónico, por favor ignore, si seguir recibiendo póngase en contacto con el administrador del foro. Para utilizar la nueva contraseña que usted necesita para activarlo. Para ello haga clic en el enlace que se proporciona a continuación. diff --git a/library/language/es/email/user_welcome_inactive.html b/library/language/es/email/user_welcome_inactive.html index e6e2914c3..5f65662ad 100644 --- a/library/language/es/email/user_welcome_inactive.html +++ b/library/language/es/email/user_welcome_inactive.html @@ -7,7 +7,9 @@ Nombre de usuario: {USERNAME} Contraseña: {PASSWORD} ---------------------------- -Su cuenta está inactiva. You cannot use it until you visit the following link: {U_ACTIVATE} +Su cuenta está inactiva. You cannot use it until you visit the following link: + +{U_ACTIVATE} Please do not forget your password as it has been encrypted in our database, and we cannot retrieve it for you. Sin embargo, si usted olvida su contraseña, puede solicitar una nueva, que será activado en la misma forma como esta cuenta. diff --git a/library/language/es/main.php b/library/language/es/main.php index d0b2fcb40..520c56faf 100644 --- a/library/language/es/main.php +++ b/library/language/es/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/et/main.php b/library/language/et/main.php index f7ed4bb63..5316a7653 100644 --- a/library/language/et/main.php +++ b/library/language/et/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/fi/main.php b/library/language/fi/main.php index 68e8b7c05..0e31ef204 100644 --- a/library/language/fi/main.php +++ b/library/language/fi/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/fr/main.php b/library/language/fr/main.php index 3376cd28c..ab5b3dfde 100644 --- a/library/language/fr/main.php +++ b/library/language/fr/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/he/main.php b/library/language/he/main.php index b64b9b9a6..cc5cf4325 100644 --- a/library/language/he/main.php +++ b/library/language/he/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/hi/main.php b/library/language/hi/main.php index ffe75a194..c3d366011 100644 --- a/library/language/hi/main.php +++ b/library/language/hi/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/hr/main.php b/library/language/hr/main.php index dfb8d56c4..dfa5ee321 100644 --- a/library/language/hr/main.php +++ b/library/language/hr/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/hu/main.php b/library/language/hu/main.php index bd3e86800..57ae81cf3 100644 --- a/library/language/hu/main.php +++ b/library/language/hu/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/hy/main.php b/library/language/hy/main.php index f15cb1d3a..17f3d9bf7 100644 --- a/library/language/hy/main.php +++ b/library/language/hy/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/id/main.php b/library/language/id/main.php index 0c636c04b..c7c48eca8 100644 --- a/library/language/id/main.php +++ b/library/language/id/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/it/main.php b/library/language/it/main.php index bcf36f2df..d169c2c6f 100644 --- a/library/language/it/main.php +++ b/library/language/it/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/ja/email/admin_send_email.html b/library/language/ja/email/admin_send_email.html index 4d286a390..a1dd40faf 100644 --- a/library/language/ja/email/admin_send_email.html +++ b/library/language/ja/email/admin_send_email.html @@ -13,8 +13,3 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {MESSAGE} - -メッセージ送信者: -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -{MESSAGE} diff --git a/library/language/ja/email/group_added.html b/library/language/ja/email/group_added.html index 2cee84bf4..f9e6e98bb 100644 --- a/library/language/ja/email/group_added.html +++ b/library/language/ja/email/group_added.html @@ -1,9 +1,7 @@ Congratulations! You have been added to the "{GROUP_NAME}" group on {SITENAME}. -このアクションは、グループモデレータまたはサイト管理者によって行われました。 - -詳細については、それらに連絡してください。 +このアクションは、グループモデレータまたはサイト管理者によって行われました。詳細については、それらに連絡してください。 ここであなたのグループ情報を表示できます: {U_GROUP} diff --git a/library/language/ja/email/group_approved.html b/library/language/ja/email/group_approved.html index f8f02f053..c1bfea6a1 100644 --- a/library/language/ja/email/group_approved.html +++ b/library/language/ja/email/group_approved.html @@ -6,7 +6,3 @@ Your request to join the "{GROUP_NAME}" group on {SITENAME} has been approved. {U_GROUP} {EMAIL_SIG} - -{U_GROUP} - -{EMAIL_SIG} diff --git a/library/language/ja/email/privmsg_notify.html b/library/language/ja/email/privmsg_notify.html index 9f43b709e..47527d447 100644 --- a/library/language/ja/email/privmsg_notify.html +++ b/library/language/ja/email/privmsg_notify.html @@ -9,5 +9,3 @@ You have received a new private message to your account on "{SITENAME}" and you {EMAIL_SIG} {EMAIL_SIG} - -{EMAIL_SIG} diff --git a/library/language/ja/email/profile_send_email.html b/library/language/ja/email/profile_send_email.html index 461cb798f..b8a108369 100644 --- a/library/language/ja/email/profile_send_email.html +++ b/library/language/ja/email/profile_send_email.html @@ -15,8 +15,3 @@ The following is an email sent to you by {FROM_USERNAME} via your account on {SI ~~~~~~~~~~~~~~~~~~~~~~~~~ {MESSAGE} - -次のメッセージを送信しました -~~~~~~~~~~~~~~~~~~~~~~~~~ - -{MESSAGE} diff --git a/library/language/ja/email/user_activate_passwd.html b/library/language/ja/email/user_activate_passwd.html index b577d3711..a2931962e 100644 --- a/library/language/ja/email/user_activate_passwd.html +++ b/library/language/ja/email/user_activate_passwd.html @@ -4,8 +4,6 @@ You are receiving this email because you have (or someone pretending to be you h 新しいパスワードを使用するには、それを有効にする必要があります。 これを行うには、下記のリンクをクリックしてください。 -これを行うには、下記のリンクをクリックしてください。 - {U_ACTIVATE} If successful you will be able to login using the following password: diff --git a/library/language/ja/main.php b/library/language/ja/main.php index e0414e0e3..ee9f50f4e 100644 --- a/library/language/ja/main.php +++ b/library/language/ja/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/ka/main.php b/library/language/ka/main.php index 92e81846c..8f6138e1e 100644 --- a/library/language/ka/main.php +++ b/library/language/ka/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/kk/main.php b/library/language/kk/main.php index e09ad1a44..0dd7e4042 100644 --- a/library/language/kk/main.php +++ b/library/language/kk/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/ko/main.php b/library/language/ko/main.php index 565dc1002..c5fd4262e 100644 --- a/library/language/ko/main.php +++ b/library/language/ko/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/lt/main.php b/library/language/lt/main.php index c16742c95..a985834cb 100644 --- a/library/language/lt/main.php +++ b/library/language/lt/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/lv/main.php b/library/language/lv/main.php index 1f5d16194..9d434357e 100644 --- a/library/language/lv/main.php +++ b/library/language/lv/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/nl/main.php b/library/language/nl/main.php index 336975e30..b6d5a90fe 100644 --- a/library/language/nl/main.php +++ b/library/language/nl/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/no/main.php b/library/language/no/main.php index 8452b967e..9aabb2604 100644 --- a/library/language/no/main.php +++ b/library/language/no/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/pl/main.php b/library/language/pl/main.php index 93b44657f..ab61430ad 100644 --- a/library/language/pl/main.php +++ b/library/language/pl/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/pt/email/admin_send_email.html b/library/language/pt/email/admin_send_email.html index cdb72e2ff..8e91adde8 100644 --- a/library/language/pt/email/admin_send_email.html +++ b/library/language/pt/email/admin_send_email.html @@ -1,6 +1,8 @@ O seguinte é um e-mail enviado a você por um administrador de "{SITENAME}". Se esta mensagem for spam, contiver comentários abusivos ou outros comentários que você considere ofensivos, entre em contato com o administrador do fórum no seguinte endereço: -{BOARD_EMAIL} Inclua este e-mail completo (principalmente os cabeçalhos). +{BOARD_EMAIL} + +Inclua este e-mail completo (principalmente os cabeçalhos). Mensagem enviada seguinte: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/library/language/pt/email/user_activate_passwd.html b/library/language/pt/email/user_activate_passwd.html index 46bd80973..d2d3232bb 100644 --- a/library/language/pt/email/user_activate_passwd.html +++ b/library/language/pt/email/user_activate_passwd.html @@ -4,6 +4,12 @@ You are receiving this email because you have (or someone pretending to be you h Para usar a nova senha, você precisa ativá-lo. Para fazer isso clique no link fornecido abaixo. -{U_ACTIVATE} If successful you will be able to login using the following password: Password: {PASSWORD} You can of course change this password yourself via the profile page. Se você tiver qualquer dificuldade, por favor, contate o administrador do fórum. +{U_ACTIVATE} + +If successful you will be able to login using the following password: + +Password: {PASSWORD} + +You can of course change this password yourself via the profile page. Se você tiver qualquer dificuldade, por favor, contate o administrador do fórum. {EMAIL_SIG} diff --git a/library/language/pt/email/user_welcome.html b/library/language/pt/email/user_welcome.html index bf4357ef5..1ca45283a 100644 --- a/library/language/pt/email/user_welcome.html +++ b/library/language/pt/email/user_welcome.html @@ -1,7 +1,13 @@ -{WELCOME_MSG} Please keep this email for your records. Your account information is as follows: +{WELCOME_MSG} ----------------------------- Username: {USERNAME} Password: {PASSWORD} ----------------------------- Please do not forget your password as it has been encrypted in our database, and we cannot retrieve it for you. No entanto, caso você esqueça sua senha, você pode solicitar uma nova, que será ativada da mesma maneira como esta conta. +Please keep this email for your records. Your account information is as follows: + +---------------------------- +Username: {USERNAME} +Password: {PASSWORD} +---------------------------- + +Please do not forget your password as it has been encrypted in our database, and we cannot retrieve it for you. No entanto, caso você esqueça sua senha, você pode solicitar uma nova, que será ativada da mesma maneira como esta conta. Obrigado por se registar. diff --git a/library/language/pt/email/user_welcome_inactive.html b/library/language/pt/email/user_welcome_inactive.html index ac8650e8e..78ca98f6f 100644 --- a/library/language/pt/email/user_welcome_inactive.html +++ b/library/language/pt/email/user_welcome_inactive.html @@ -1,9 +1,13 @@ -{WELCOME_MSG} Please keep this email for your records. As informações de sua conta, é como segue: +{WELCOME_MSG} + +Please keep this email for your records. As informações de sua conta, é como segue: ---------------------------- Nome de usuário: {USERNAME} Senha: {PASSWORD} ---------------------------- Sua conta está inativa no momento. You cannot use it until you visit the following link: -{U_ACTIVATE} Please do not forget your password as it has been encrypted in our database, and we cannot retrieve it for you. No entanto, caso você esqueça sua senha, você pode solicitar uma nova, que será ativada da mesma maneira como esta conta. +{U_ACTIVATE} + +Please do not forget your password as it has been encrypted in our database, and we cannot retrieve it for you. No entanto, caso você esqueça sua senha, você pode solicitar uma nova, que será ativada da mesma maneira como esta conta. Obrigado por se registar. diff --git a/library/language/pt/main.php b/library/language/pt/main.php index 970482462..47a7a2bab 100644 --- a/library/language/pt/main.php +++ b/library/language/pt/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/ro/main.php b/library/language/ro/main.php index 42435c193..a5680858b 100644 --- a/library/language/ro/main.php +++ b/library/language/ro/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/ru/main.php b/library/language/ru/main.php index 3a769bd49..e0f90dd57 100644 --- a/library/language/ru/main.php +++ b/library/language/ru/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/sk/main.php b/library/language/sk/main.php index 5646d56be..f478dc34d 100644 --- a/library/language/sk/main.php +++ b/library/language/sk/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/sl/main.php b/library/language/sl/main.php index c6ae0f024..98818f158 100644 --- a/library/language/sl/main.php +++ b/library/language/sl/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/sq/main.php b/library/language/sq/main.php index 7fa281abe..59d24f820 100644 --- a/library/language/sq/main.php +++ b/library/language/sq/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/sr/main.php b/library/language/sr/main.php index 45f323294..b2efdf294 100644 --- a/library/language/sr/main.php +++ b/library/language/sr/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/sv/main.php b/library/language/sv/main.php index 777afe675..b96486f07 100644 --- a/library/language/sv/main.php +++ b/library/language/sv/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/tg/main.php b/library/language/tg/main.php index ee167c599..052b8437a 100644 --- a/library/language/tg/main.php +++ b/library/language/tg/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/th/email/group_added.html b/library/language/th/email/group_added.html index 8f3db8a65..4f42b92bd 100644 --- a/library/language/th/email/group_added.html +++ b/library/language/th/email/group_added.html @@ -11,16 +11,6 @@ You have been added to the "{GROUP_NAME}" group on {SITENAME}. {EMAIL_SIG} -ยินดีด้วย - -คุณต้องถูกเพิ่มไปยัง"{GROUP_NAME}"กลุ่มอยู่ {SITENAME} น -การกระทำนี้เป็นการกระทำของกลุ่ม moderator หรือเว็บไซต์ผู้ดูแลระบบติดต่อพวกเขาเพื่อรายละเอียดที่มากกว่านี้ - -คุณสามารถมุมมองของกลุ่มข้อมูลได้ที่นี่: -{U_GROUP} - -{EMAIL_SIG} - คุณสามารถดูข้อมูลกลุ่มของคุณได้ที่นี่: {U_GROUP} diff --git a/library/language/th/email/group_approved.html b/library/language/th/email/group_approved.html index 9e2c245a8..adeaf632e 100644 --- a/library/language/th/email/group_approved.html +++ b/library/language/th/email/group_approved.html @@ -6,7 +6,3 @@ Your request to join the "{GROUP_NAME}" group on {SITENAME} has been approved. {U_GROUP} {EMAIL_SIG} - -{U_GROUP} - -{EMAIL_SIG} diff --git a/library/language/th/email/profile_send_email.html b/library/language/th/email/profile_send_email.html index 2b49f7458..04e46307f 100644 --- a/library/language/th/email/profile_send_email.html +++ b/library/language/th/email/profile_send_email.html @@ -17,8 +17,3 @@ The following is an email sent to you by {FROM_USERNAME} via your account on {SI ~~~~~~~~~~~~~~~~~~~~~~~~~~~ {MESSAGE} - -ข้อความที่ส่งถึงคุณดังต่อไปนี้ -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -{MESSAGE} diff --git a/library/language/th/email/topic_notify.html b/library/language/th/email/topic_notify.html index 6e198bebf..956c0afc4 100644 --- a/library/language/th/email/topic_notify.html +++ b/library/language/th/email/topic_notify.html @@ -2,8 +2,6 @@ Hello, {USERNAME}! You are receiving this email because you are watching the topic, "{TOPIC_TITLE}" at {SITENAME}. หัวข้อนี้ได้รับการตอบกลับตั้งแต่การเยี่ยมชมครั้งล่าสุดของคุณ คุณสามารถใช้ลิงก์ต่อไปนี้เพื่อดูการตอบกลับได้ จะไม่มีการส่งการแจ้งเตือนอีกต่อไปจนกว่าคุณจะไปที่หัวข้อ -หัวข้อนี้ได้รับการตอบกลับตั้งแต่การเยี่ยมชมครั้งล่าสุดของคุณ คุณสามารถใช้ลิงก์ต่อไปนี้เพื่อดูการตอบกลับได้ จะไม่มีการส่งการแจ้งเตือนอีกต่อไปจนกว่าคุณจะไปที่หัวข้อ - {U_TOPIC} หากคุณไม่ต้องการดูหัวข้อนี้อีกต่อไป คุณสามารถคลิกลิงก์ "หยุดดูหัวข้อนี้" ที่ด้านล่างของหัวข้อด้านบน หรือคลิกลิงก์ต่อไปนี้: diff --git a/library/language/th/email/user_activate_passwd.html b/library/language/th/email/user_activate_passwd.html index c6bda1919..45a167d2e 100644 --- a/library/language/th/email/user_activate_passwd.html +++ b/library/language/th/email/user_activate_passwd.html @@ -4,10 +4,6 @@ You are receiving this email because you have (or someone pretending to be you h หากต้องการใช้รหัสผ่านใหม่ คุณต้องเปิดใช้งาน โดยคลิกลิงก์ด้านล่าง -หากคุณไม่ได้ขออีเมลนี้ โปรดเพิกเฉยต่ออีเมลนี้ หากคุณยังคงได้รับอีเมลนี้ โปรดติดต่อผู้ดูแลบอร์ด - -หากต้องการใช้รหัสผ่านใหม่ คุณต้องเปิดใช้งาน โดยคลิกลิงก์ด้านล่าง - {U_ACTIVATE} If successful you will be able to login using the following password: @@ -17,5 +13,3 @@ Password: {PASSWORD} You can of course change this password yourself via the profile page. หากคุณมีปัญหาใด ๆ โปรดติดต่อผู้ดูแลบอร์ด {EMAIL_SIG} - -{EMAIL_SIG} diff --git a/library/language/th/email/user_welcome.html b/library/language/th/email/user_welcome.html index a753af67a..39fc972d5 100644 --- a/library/language/th/email/user_welcome.html +++ b/library/language/th/email/user_welcome.html @@ -11,6 +11,4 @@ Please do not forget your password as it has been encrypted in our database, and ขอบคุณสำหรับการลงทะเบียน. -ขอบคุณสำหรับการลงทะเบียน. - {EMAIL_SIG} diff --git a/library/language/th/email/user_welcome_inactive.html b/library/language/th/email/user_welcome_inactive.html index 61c6ea852..01f6286f8 100644 --- a/library/language/th/email/user_welcome_inactive.html +++ b/library/language/th/email/user_welcome_inactive.html @@ -7,13 +7,6 @@ Please keep this email for your records. ข้อมูลบัญชีขอ รหัสผ่าน: {PASSWORD} ----- ----------------------- -บัญชีของคุณไม่ได้ใช้งานอยู่ในขณะนี้ ข้อมูลบัญชีของคุณมีดังนี้: - ----------------------------- -ชื่อผู้ใช้: {USERNAME} -รหัสผ่าน: {PASSWORD} ------ ----------------------- - บัญชีของคุณไม่ได้ใช้งานอยู่ในขณะนี้ You cannot use it until you visit the following link: {U_ACTIVATE} @@ -22,6 +15,4 @@ Please do not forget your password as it has been encrypted in our database, and ขอบคุณสำหรับการลงทะเบียน. -ขอบคุณสำหรับการลงทะเบียน. - {EMAIL_SIG} diff --git a/library/language/th/html/copyright_holders.html b/library/language/th/html/copyright_holders.html index 70655099f..afab1c308 100644 --- a/library/language/th/html/copyright_holders.html +++ b/library/language/th/html/copyright_holders.html @@ -28,8 +28,8 @@

    เป็นเราเก็บที่ถูกต้องจะตีพิมพ์บนเว็บไซต์ของข้อมูลส่งมาถึงเราโดยจดหมาย

    -

    บี)เราไม่สามารถควบคุมการกระทำของผู้ใช้ที่อาจจะส่งไปทางไปรษณีย์ส่วนเชื่อมโยงกับข้อมูลซึ่งเป็นวัตถุของคุณสงวนลิขสิทธิ์. ข้อมูลใด ๆ ในฟอรัมจะถูกวางโดยอัตโนมัติ โดยไม่มีการควบคุมใด ๆ จากไตรมาสใด ๆ ซึ่งสอดคล้องกับแนวปฏิบัติสากลที่ยอมรับกันทั่วไปในการวางข้อมูลบนอินเทอร์เน็ต อย่างไรก็ตาม ไม่ว่าในกรณีใด เราจะพิจารณาข้อสงสัยทั้งหมดของคุณเกี่ยวกับการอ้างอิงถึงข้อมูลที่ละเมิดสิทธิ์ของคุณ อย่างไรก็ตาม ไม่ว่าในกรณีใด เราจะพิจารณาข้อสงสัยทั้งหมดของคุณเกี่ยวกับการอ้างอิงถึงข้อมูลที่ละเมิดสิทธิ์ของคุณ

    +

    บี)เราไม่สามารถควบคุมการกระทำของผู้ใช้ที่อาจจะส่งไปทางไปรษณีย์ส่วนเชื่อมโยงกับข้อมูลซึ่งเป็นวัตถุของคุณสงวนลิขสิทธิ์. ข้อมูลใด ๆ ในฟอรัมจะถูกวางโดยอัตโนมัติ โดยไม่มีการควบคุมใด ๆ จากไตรมาสใด ๆ ซึ่งสอดคล้องกับแนวปฏิบัติสากลที่ยอมรับกันทั่วไปในการวางข้อมูลบนอินเทอร์เน็ต อย่างไรก็ตาม ไม่ว่าในกรณีใด เราจะพิจารณาข้อสงสัยทั้งหมดของคุณเกี่ยวกับการอ้างอิงถึงข้อมูลที่ละเมิดสิทธิ์ของคุณ

    -

    c)ตามกฎหมายในสงวนลิขสิทธิ์และเกี่ยวข้องกันสิทธิของผู้อ้างอิงถึงจะมีข้อมูล(ข้อมูลข้อความ)โดยตัวมันเองไม่ใช่เรื่องต้องกฏหมายสงวนลิขสิทธิ์(ถึงแม้ว่ามันอาจจะละเมิด"ข้อตกลงเกี่ยวกับการใช้งานของเว็บไซต์ของ")ได้ ดังนั้น,มันไม่จำเป็นต้องส่งจดหมายที่บรรจุภัยคุกคามหรือข้อเรียกร้องอย่างที่ไม่มีเหตุผลจริงๆนะ ดังนั้นจึงไม่จำเป็นต้องส่งจดหมายที่มีการข่มขู่หรือเรียกร้องเนื่องจากไม่มีเหตุผลที่แท้จริง ดังนั้นจึงไม่จำเป็นต้องส่งจดหมายที่มีการข่มขู่หรือเรียกร้องเนื่องจากไม่มีเหตุผลที่แท้จริง

    +

    c)ตามกฎหมายในสงวนลิขสิทธิ์และเกี่ยวข้องกันสิทธิของผู้อ้างอิงถึงจะมีข้อมูล(ข้อมูลข้อความ)โดยตัวมันเองไม่ใช่เรื่องต้องกฏหมายสงวนลิขสิทธิ์(ถึงแม้ว่ามันอาจจะละเมิด"ข้อตกลงเกี่ยวกับการใช้งานของเว็บไซต์ของ")ได้ ดังนั้น,มันไม่จำเป็นต้องส่งจดหมายที่บรรจุภัยคุกคามหรือข้อเรียกร้องอย่างที่ไม่มีเหตุผลจริงๆนะ ดังนั้นจึงไม่จำเป็นต้องส่งจดหมายที่มีการข่มขู่หรือเรียกร้องเนื่องจากไม่มีเหตุผลที่แท้จริง

    diff --git a/library/language/th/html/user_agreement.html b/library/language/th/html/user_agreement.html index 9b92b6ade..047027113 100644 --- a/library/language/th/html/user_agreement.html +++ b/library/language/th/html/user_agreement.html @@ -18,7 +18,7 @@

    ผู้ใช้ expressly เห็นด้วยว่าจะใช้ทรัพยากรของตัวเองต้องมาเสี่ยงไปด้วย

    -

    ของผู้ใช้จะรู้และเห็นด้วยนั่นข้อตกลงกับวัตถุดิบบนทรัพยากรและข้อมูลถูกสร้างโดยคนที่สามงานปาร์ตี้แล้วเก็บไว้พวกนั้นบนอินเตอร์เน็ตพวกเขาฝ่ายไอทีเปิดดูคอมพิวเตอร์และ(หรือ)เครื่องแม่ข่ายได้ เนื้อหาและความปลอดภัยของพวกวัตถุไม่สามารถควบคุมโดยทรัพยากรผู้ดูแลระบบดังนั้นอย่างหลัไม่ผิดชอบแน่นอน: ของผู้ใช้จะรู้และเห็นด้วยนั่นข้อตกลงกับวัตถุดิบบนทรัพยากรและข้อมูลถูกสร้างโดยคนที่สามงานปาร์ตี้แล้วเก็บไว้พวกนั้นบนอินเตอร์เน็ตพวกเขาฝ่ายไอทีเปิดดูคอมพิวเตอร์และ(หรือ)เครื่องแม่ข่ายได้ เนื้อหาและความปลอดภัยของพวกวัตถุไม่สามารถควบคุมโดยทรัพยากรผู้ดูแลระบบดังนั้นอย่างหลัไม่ผิดชอบแน่นอน: เนื้อหาและความปลอดภัยของเนื้อหาเหล่านี้ไม่สามารถควบคุมได้โดยการบริหารทรัพยากร ดังนั้นสิ่งหลังจะไม่รับผิดชอบ:

    +

    ของผู้ใช้จะรู้และเห็นด้วยนั่นข้อตกลงกับวัตถุดิบบนทรัพยากรและข้อมูลถูกสร้างโดยคนที่สามงานปาร์ตี้แล้วเก็บไว้พวกนั้นบนอินเตอร์เน็ตพวกเขาฝ่ายไอทีเปิดดูคอมพิวเตอร์และ(หรือ)เครื่องแม่ข่ายได้ เนื้อหาและความปลอดภัยของพวกวัตถุไม่สามารถควบคุมโดยทรัพยากรผู้ดูแลระบบดังนั้นอย่างหลัไม่ผิดชอบแน่นอน: เนื้อหาและความปลอดภัยของเนื้อหาเหล่านี้ไม่สามารถควบคุมได้โดยการบริหารทรัพยากร ดังนั้นสิ่งหลังจะไม่รับผิดชอบ:

      -สำหรับเนื้อหาของวัสดุที่ได้รับโดยผู้ใช้จากการใช้ข้อมูลทรัพยากรและพวกเขาเป็นไปได้ inconsistency กปรับใช้จะกับกฎหรือน่ารังเกียจ;

      -สำหรับการกระทำของโปรแกรมใช้หรือไม่ใช้ข้อมูลที่ได้รับ;

      diff --git a/library/language/th/main.php b/library/language/th/main.php index 58c541013..b97ad618d 100644 --- a/library/language/th/main.php +++ b/library/language/th/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/tr/main.php b/library/language/tr/main.php index 7a5357d7b..2b8cd7a93 100644 --- a/library/language/tr/main.php +++ b/library/language/tr/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/uk/main.php b/library/language/uk/main.php index 4704ffc03..a65aa09ed 100644 --- a/library/language/uk/main.php +++ b/library/language/uk/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ @@ -277,8 +277,8 @@ $lang['SPOILER_HEAD'] = 'прихований текст'; $lang['SPOILER_CLOSE'] = 'згорнути'; $lang['PLAY_ON_CURPAGE'] = 'Почати відтворення на цій сторінці'; -$lang['EDITED_TIME_TOTAL'] = 'Востаннє змінено %s (%s); всього редагувань: %d'; // Last edited by me on 12 Oct 2001; edited 1 time in total -$lang['EDITED_TIMES_TOTAL'] = 'Востаннє змінено %s (%s); всього редагувань: %d'; // Last edited by me on 12 Oct 2001; edited 2 times in total +$lang['EDITED_TIME_TOTAL'] = 'Last edited by %s on %s; edited %d time in total'; // Last edited by me on 12 Oct 2001; edited 1 time in total +$lang['EDITED_TIMES_TOTAL'] = 'Last edited by %s on %s; edited %d times in total'; // Last edited by me on 12 Oct 2001; edited 2 times in total $lang['LOCK_TOPIC'] = 'Закрити тему'; $lang['UNLOCK_TOPIC'] = 'Розблокувати тему'; @@ -694,7 +694,7 @@ $lang['ORDER'] = 'Сортувати'; $lang['THANK_TOPIC'] = 'Проголосувати за цю тему'; $lang['THANKS_GRATITUDE'] = 'Ми цінуємо вашу вдячність'; $lang['LAST_LIKES'] = 'Останній голос'; -$lang['LIKE_OWN_POST'] = 'Ви не можете проголосувати за власну публікацію.'; +$lang['LIKE_OWN_POST'] = 'Ви не можете голосувати за свою тему'; $lang['NO_LIKES'] = 'Ще ніхто не проголосував'; $lang['LIKE_ALREADY'] = 'Ви вже проголосували за цю тему'; @@ -990,10 +990,10 @@ $lang['COUNTRY'] = 'Країна'; $lang['SET_OWN_COUNTRY'] = 'Вказати свою країну (вручну)'; $lang['COUNTRIES'] = [ 0 => 'Не вказано', - 'AD' => 'Андора', - 'AE' => 'Об\'єднані Арабські Емірати', - 'AF' => 'Афганістан', - 'AG' => 'Антиґуа і Барбуда', + 'AD' => 'Andorra', + 'AE' => 'United Arab Emirates', + 'AF' => 'Afghanistan', + 'AG' => 'Antigua and Barbuda', 'AI' => 'Anguilla', 'AL' => 'Албанія', 'AM' => 'Вірменія', @@ -1370,12 +1370,12 @@ $lang['BT_REG_FAIL'] = 'Не вдалося зареєструвати торе $lang['BT_REG_FAIL_SAME_HASH'] = 'Інший торрент з таким же info_hash вже зареєстрований'; $lang['BT_V1_ONLY_DISALLOWED'] = 'v1-only torrents have been disabled by the administrator at the moment, allowed: v2 and hybrids'; $lang['BT_V2_ONLY_DISALLOWED'] = 'v2-only torrents have been disabled by the administrator at the moment, allowed: v1 and hybrids'; -$lang['BT_FLIST'] = 'Список файлів'; +$lang['BT_FLIST'] = 'Files list'; $lang['BT_FLIST_LIMIT'] = 'Tracker settings do not allow to process lists with more than %d files. Current number is: %d'; $lang['BT_FLIST_BTMR_HASH'] = 'BTMR Hash'; $lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as Torrent Merkle Root Reader'; $lang['BT_FLIST_CREATION_DATE'] = 'Дата створення'; -$lang['BT_IS_PRIVATE'] = 'Приватний торрент'; +$lang['BT_IS_PRIVATE'] = 'Private torrent'; $lang['BT_FLIST_FILE_PATH'] = 'Path (%s)'; $lang['BT_FLIST_LINK_TITLE'] = 'File hashes | .torrent meta-info'; $lang['BT_FLIST_ANNOUNCERS_LIST'] = 'Announcers list'; diff --git a/library/language/uz/main.php b/library/language/uz/main.php index 73f25d417..3c1635942 100644 --- a/library/language/uz/main.php +++ b/library/language/uz/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/vi/main.php b/library/language/vi/main.php index 0ab59c1fc..3a796a3bb 100644 --- a/library/language/vi/main.php +++ b/library/language/vi/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ diff --git a/library/language/zh/email/admin_send_email.html b/library/language/zh/email/admin_send_email.html index a7563a5b6..ad1d9c9b9 100644 --- a/library/language/zh/email/admin_send_email.html +++ b/library/language/zh/email/admin_send_email.html @@ -13,8 +13,3 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {MESSAGE} - -發送給您的消息如下: -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -{MESSAGE} diff --git a/library/language/zh/email/group_added.html b/library/language/zh/email/group_added.html index 55a0a63fb..34652fea9 100644 --- a/library/language/zh/email/group_added.html +++ b/library/language/zh/email/group_added.html @@ -1,10 +1,7 @@ Congratulations! -Congratulations! - You have been added to the "{GROUP_NAME}" group on {SITENAME}. 这个动作由小组组长或站点管理员发出,请联系他们以获得更多信息。 -这个动作由小组组长或站点管理员发出,请联系他们以获得更多信息。 您可以在此查看您的组信息︰ {U_GROUP} diff --git a/library/language/zh/email/group_approved.html b/library/language/zh/email/group_approved.html index a5f1232c1..fc05cf86e 100644 --- a/library/language/zh/email/group_approved.html +++ b/library/language/zh/email/group_approved.html @@ -1,10 +1,7 @@ Congratulations! -Congratulations! - Your request to join the "{GROUP_NAME}" group on {SITENAME} has been approved. 点击,在以下链接查看你的小组成员。 -点击,在以下链接查看你的小组成员。 {U_GROUP} diff --git a/library/language/zh/email/group_request.html b/library/language/zh/email/group_request.html index ee98813f0..8d6149423 100644 --- a/library/language/zh/email/group_request.html +++ b/library/language/zh/email/group_request.html @@ -1,8 +1,5 @@ Dear {GROUP_MODERATOR}. -A user {USER} has requested to join a group you moderator on {SITENAME}. -Dear {GROUP_MODERATOR}. - A user {USER} has requested to join a group you moderator on {SITENAME}. 批准或拒绝这一用户的请求,请访问以下链接: diff --git a/library/language/zh/email/privmsg_notify.html b/library/language/zh/email/privmsg_notify.html index aa105d645..f1c23c742 100644 --- a/library/language/zh/email/privmsg_notify.html +++ b/library/language/zh/email/privmsg_notify.html @@ -1,11 +1,7 @@ Hello, {USERNAME}! -Hello, {USERNAME}! - You have received a new private message to your account on "{SITENAME}" and you have requested that you be notified on this event. 你可以通过点击下面的链接查看你的新消息︰ {U_INBOX} -你可以在你的配置文件中选择不接受新消息通知。 你可以通过点击下面的链接查看你的新消息︰ -{U_INBOX} 你可以在你的配置文件中选择不接受新消息通知。 {EMAIL_SIG} diff --git a/library/language/zh/email/topic_notify.html b/library/language/zh/email/topic_notify.html index d0517068e..0ba28e4bd 100644 --- a/library/language/zh/email/topic_notify.html +++ b/library/language/zh/email/topic_notify.html @@ -1,8 +1,6 @@ Hello, {USERNAME}! -Hello, {USERNAME}! - -You are receiving this email because you are watching the topic, "{TOPIC_TITLE}" at {SITENAME}. 自从你最后一次访问之后这个主题有了新回复。 自从你最后一次访问之后这个主题有了新回复。 您可以点击下面的链接查看新答复,您访问该主题后将不再给您发送通知。 +You are receiving this email because you are watching the topic, "{TOPIC_TITLE}" at {SITENAME}. 自从你最后一次访问之后这个主题有了新回复。 您可以点击下面的链接查看新答复,您访问该主题后将不再给您发送通知。 {U_TOPIC} 如果你不再想关注该主题,您可以单击"停止关注这个主题",或通过单击下面的链接︰{U_STOP_WATCHING_TOPIC} diff --git a/library/language/zh/email/user_activate.html b/library/language/zh/email/user_activate.html index 0471ee86e..9d3af5747 100644 --- a/library/language/zh/email/user_activate.html +++ b/library/language/zh/email/user_activate.html @@ -1,6 +1,4 @@ Hello, {USERNAME}! -Hello, {USERNAME}! - -Your account on "{SITENAME}" has been deactivated, most likely due to changes made to your profile. 您必须点击以下的链接来重激活你的账户。 您必须点击以下的链接来重激活你的账户。 {U_ACTIVATE} +Your account on "{SITENAME}" has been deactivated, most likely due to changes made to your profile. 您必须点击以下的链接来重激活你的账户。 {U_ACTIVATE} {EMAIL_SIG} diff --git a/library/language/zh/email/user_activate_passwd.html b/library/language/zh/email/user_activate_passwd.html index 4a73380d0..d6665eef3 100644 --- a/library/language/zh/email/user_activate_passwd.html +++ b/library/language/zh/email/user_activate_passwd.html @@ -1,7 +1,5 @@ Hello, {USERNAME}! -Hello, {USERNAME}! - You are receiving this email because you have (or someone pretending to be you has) requested a new password be sent for your account on {SITENAME}. 如果你没有发出过类似请求,请无视此电邮。 如果你持续不断地收到类似的电邮,请联系网站管理员。 但要使用新的密码,你需要激活它。 如果需要,请点击下面的链接。 @@ -12,6 +10,6 @@ If successful you will be able to login using the following password: Password: {PASSWORD} -You can of course change this password yourself via the profile page. 如果您有任何困難,請聯繫董事會管理員。 如果您有任何困難,請聯繫董事會管理員。 +You can of course change this password yourself via the profile page. 如果您有任何困難,請聯繫董事會管理員。 {EMAIL_SIG} diff --git a/library/language/zh/email/user_welcome.html b/library/language/zh/email/user_welcome.html index a0933be6e..ec44326a1 100644 --- a/library/language/zh/email/user_welcome.html +++ b/library/language/zh/email/user_welcome.html @@ -7,13 +7,6 @@ Username: {USERNAME} Password: {PASSWORD} ---------------------------- -Please do not forget your password as it has been encrypted in our database, and we cannot retrieve it for you. 然而,应该你忘了你的密码你可以请求一个新的之一,它会被激活,以同样的方式为这个帐户。 Your account information is as follows: - ----------------------------- -Username: {USERNAME} -Password: {PASSWORD} ----------------------------- - Please do not forget your password as it has been encrypted in our database, and we cannot retrieve it for you. 然而,应该你忘了你的密码你可以请求一个新的之一,它会被激活,以同样的方式为这个帐户。 感谢您的注册。 diff --git a/library/language/zh/email/user_welcome_inactive.html b/library/language/zh/email/user_welcome_inactive.html index b8dc8d504..3d50828ab 100644 --- a/library/language/zh/email/user_welcome_inactive.html +++ b/library/language/zh/email/user_welcome_inactive.html @@ -7,18 +7,11 @@ Please keep this email for your records. 您的账户信息如下: 密码:{PASSWORD} ---------------------------- -您的账户目前的不活动状态。 您的账户信息如下: - ----------------------------- -用户名:{USERNAME} -密码:{PASSWORD} ----------------------------- - 您的账户目前的不活动状态。 You cannot use it until you visit the following link: {U_ACTIVATE} -Please do not forget your password as it has been encrypted in our database, and we cannot retrieve it for you. 然而,应该你忘了你的密码你可以请求一个新的之一,它会被激活,以同样的方式为这个帐户。 然而,应该你忘了你的密码你可以请求一个新的之一,它会被激活,以同样的方式为这个帐户。 +Please do not forget your password as it has been encrypted in our database, and we cannot retrieve it for you. 然而,应该你忘了你的密码你可以请求一个新的之一,它会被激活,以同样的方式为这个帐户。 谢谢你的注册。 diff --git a/library/language/zh/html/copyright_holders.html b/library/language/zh/html/copyright_holders.html index 4bda532fa..ff292d018 100644 --- a/library/language/zh/html/copyright_holders.html +++ b/library/language/zh/html/copyright_holders.html @@ -7,7 +7,7 @@

      这要求你们给我们送来一封信(电子形式) 这向我们表示以下信息:

      -

      1. 1. 1. 证明文件的权利,以保护的材料通过版权所有:

      +

      1. 1. 证明文件的权利,以保护的材料通过版权所有:

      -扫描的文件的密封,或

      -电子邮件是从一个官方电子邮件域的公司的拥有人,或

      -其他的联系人信息的唯一标识,你作为所有者的材料。

      @@ -16,7 +16,7 @@

      在这你可以指定在哪里和在什么条件下可以获得信息、参考文献,这已被删除,以及联系信息,使用户可以得到你所需的所有信息,关于这种材料。

      -

      3. 3. 3. 直接页面的链接,包含参考文献数据,必须清除。

      +

      3. 3. 直接页面的链接,包含参考文献数据,必须清除。

      链接应该是视图 https://url.to/link 或类似的东西。

      diff --git a/library/language/zh/main.php b/library/language/zh/main.php index 8a4ec69cb..89ecac5f2 100644 --- a/library/language/zh/main.php +++ b/library/language/zh/main.php @@ -2,7 +2,7 @@ /** * TorrentPier – Bull-powered BitTorrent tracker engine * - * @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com) + * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ From 6d0499dd0229d454d3af00f10151adc26a9e96a7 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sat, 17 May 2025 17:22:20 +0300 Subject: [PATCH 107/216] crowdin: Updated translations (#1908) --- library/language/source/main.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/library/language/source/main.php b/library/language/source/main.php index 09451df9b..65fd05fd1 100644 --- a/library/language/source/main.php +++ b/library/language/source/main.php @@ -1879,9 +1879,6 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'stopped'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'shows data only for the current session'; -$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; -$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; -$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin first post'; From 897edfc371087427c574776472cbbf3f1f933273 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sat, 17 May 2025 17:24:01 +0300 Subject: [PATCH 108/216] crowdin: Updated translations (#1909) --- library/language/source/main.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/library/language/source/main.php b/library/language/source/main.php index 65fd05fd1..09451df9b 100644 --- a/library/language/source/main.php +++ b/library/language/source/main.php @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'stopped'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'shows data only for the current session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin first post'; From 999ae1eff9f3a4c951fc48efbf94c0cea2a5f8d2 Mon Sep 17 00:00:00 2001 From: Yury Pikhtarev Date: Sat, 17 May 2025 16:37:09 +0200 Subject: [PATCH 109/216] crowdin: New Crowdin updates (#1907) * New translations main.php (Russian) * New translations main.php (Azerbaijani) * New translations main.php (Romanian) * New translations main.php (French) * New translations main.php (Spanish) * New translations main.php (Afrikaans) * New translations main.php (Arabic) * New translations main.php (Belarusian) * New translations main.php (Bulgarian) * New translations main.php (Catalan) * New translations main.php (Czech) * New translations main.php (Danish) * New translations main.php (German) * New translations main.php (Greek) * New translations main.php (Finnish) * New translations main.php (Hebrew) * New translations main.php (Hungarian) * New translations main.php (Armenian) * New translations main.php (Italian) * New translations main.php (Japanese) * New translations main.php (Georgian) * New translations main.php (Korean) * New translations main.php (Lithuanian) * New translations main.php (Dutch) * New translations main.php (Norwegian) * New translations main.php (Polish) * New translations main.php (Russian) * New translations main.php (Slovak) * New translations main.php (Slovenian) * New translations main.php (Albanian) * New translations main.php (Serbian (Cyrillic)) * New translations main.php (Swedish) * New translations main.php (Turkish) * New translations main.php (Ukrainian) * New translations main.php (Chinese Traditional) * New translations main.php (English) * New translations main.php (Vietnamese) * New translations main.php (Portuguese, Brazilian) * New translations main.php (Indonesian) * New translations main.php (Thai) * New translations main.php (Croatian) * New translations main.php (Kazakh) * New translations main.php (Estonian) * New translations main.php (Latvian) * New translations main.php (Azerbaijani) * New translations main.php (Hindi) * New translations main.php (Bosnian) * New translations main.php (Uzbek) * New translations main.php (Tajik) --- library/language/af/main.php | 20 ++++++------------- library/language/ar/main.php | 20 ++++++------------- library/language/az/main.php | 28 ++++++++++---------------- library/language/be/main.php | 20 ++++++------------- library/language/bg/main.php | 20 ++++++------------- library/language/bs/main.php | 20 ++++++------------- library/language/ca/main.php | 20 ++++++------------- library/language/cs/main.php | 20 ++++++------------- library/language/da/main.php | 20 ++++++------------- library/language/de/main.php | 20 ++++++------------- library/language/el/main.php | 20 ++++++------------- library/language/en/main.php | 20 ++++++------------- library/language/es/main.php | 20 ++++++------------- library/language/et/main.php | 20 ++++++------------- library/language/fi/main.php | 20 ++++++------------- library/language/fr/main.php | 20 ++++++------------- library/language/he/main.php | 20 ++++++------------- library/language/hi/main.php | 20 ++++++------------- library/language/hr/main.php | 20 ++++++------------- library/language/hu/main.php | 20 ++++++------------- library/language/hy/main.php | 20 ++++++------------- library/language/id/main.php | 20 ++++++------------- library/language/it/main.php | 20 ++++++------------- library/language/ja/main.php | 20 ++++++------------- library/language/ka/main.php | 20 ++++++------------- library/language/kk/main.php | 20 ++++++------------- library/language/ko/main.php | 20 ++++++------------- library/language/lt/main.php | 20 ++++++------------- library/language/lv/main.php | 20 ++++++------------- library/language/nl/main.php | 20 ++++++------------- library/language/no/main.php | 20 ++++++------------- library/language/pl/main.php | 20 ++++++------------- library/language/pt/main.php | 20 ++++++------------- library/language/ro/main.php | 20 ++++++------------- library/language/ru/main.php | 22 +++++++-------------- library/language/sk/main.php | 20 ++++++------------- library/language/sl/main.php | 20 ++++++------------- library/language/sq/main.php | 20 ++++++------------- library/language/sr/main.php | 20 ++++++------------- library/language/sv/main.php | 20 ++++++------------- library/language/tg/main.php | 20 ++++++------------- library/language/th/main.php | 20 ++++++------------- library/language/tr/main.php | 20 ++++++------------- library/language/uk/main.php | 38 ++++++++++++++---------------------- library/language/uz/main.php | 20 ++++++------------- library/language/vi/main.php | 20 ++++++------------- library/language/zh/main.php | 20 ++++++------------- 47 files changed, 296 insertions(+), 672 deletions(-) diff --git a/library/language/af/main.php b/library/language/af/main.php index eddfd2b6c..a74fe8d01 100644 --- a/library/language/af/main.php +++ b/library/language/af/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Hierdie opsie slegs vir super administrateurs'; $lang['LOGS'] = 'Onderwerpgeskiedenis'; $lang['FORUM_LOGS'] = 'Geskiedenis Forum'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Ontwerper'; $lang['LAST_IP'] = 'Laaste IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'gestop'; $lang['DL_UPD'] = 'UPD:'; $lang['DL_INFO'] = 'Wys data alleen vir die huidige sessie'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Plak eerste plasing'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'Die naam wat u ingevoer het, kan nie toegelaat wo $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Klik %sHere%s om terug te keer na Administrasie van gebruikersnaam'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Weergawe-inligting'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Bestuur sitemap'; $lang['SITEMAP_CREATED'] = 'Sitemap geskep'; $lang['SITEMAP_AVAILABLE'] = 'En is beskikbaar by'; $lang['SITEMAP_NOT_CREATED'] = 'Sitemap is nog nie geskep nie'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Kennisgewing van die soekenjin'; -$lang['SITEMAP_SENT'] = 'Stuur voltooi'; -$lang['SITEMAP_ERROR'] = 'Stuur fout'; $lang['SITEMAP_OPTIONS'] = 'opsies'; $lang['SITEMAP_CREATE'] = 'Skep / werk die sitemap op'; -$lang['SITEMAP_NOTIFY'] = 'Stel soekenjins in kennis van nuwe weergawe van sitemap'; $lang['SITEMAP_WHAT_NEXT'] = 'Wat om volgende te doen?'; $lang['SITEMAP_GOOGLE_1'] = 'Registreer jou werf by Google Webmaster met jou Google-rekening.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap van die webwerf wat jy geregistreer het.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Maak seker dat jy nie \'n robot is nie'; $lang['CAPTCHA_WRONG'] = 'Jy kon nie bevestig dat jy nie \'n robot is nie'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha nie ten volle gekonfigureer nie

      Indien u die sleutels nie reeds opgewek het nie, kan u dit op https: //www.google.com/recaptcha/admin.
      After u die sleutels genereer, moet u dit by die lêerbiblioteek / config .php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/ar/main.php b/library/language/ar/main.php index e1420e0fc..e91a6ae43 100644 --- a/library/language/ar/main.php +++ b/library/language/ar/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'هذا الخيار فقط لمدراء الس $lang['LOGS'] = 'الموضوع التاريخ'; $lang['FORUM_LOGS'] = 'منتدى التاريخ'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'مصمم'; $lang['LAST_IP'] = 'IP آخر:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'توقفت'; $lang['DL_UPD'] = 'محدث: '; $lang['DL_INFO'] = 'يظهر البيانات only الحالي session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'دبوس المشاركة الأولى'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'الاسم الذي أدخلته لا يمكن أ $lang['CLICK_RETURN_DISALLOWADMIN'] = 'انقر فوق %sHere%s للعودة إلى عدم السماح اسم المستخدم الإدارة'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'معلومات الإصدار'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'إدارة الموقع'; $lang['SITEMAP_CREATED'] = 'إنشاء خريطة الموقع'; $lang['SITEMAP_AVAILABLE'] = 'و هو متوفر في'; $lang['SITEMAP_NOT_CREATED'] = 'خريطة الموقع ليس بعد خلق'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'إخطارا من محرك البحث'; -$lang['SITEMAP_SENT'] = 'إرسال الانتهاء'; -$lang['SITEMAP_ERROR'] = 'إرسال خطأ'; $lang['SITEMAP_OPTIONS'] = 'خيارات'; $lang['SITEMAP_CREATE'] = 'إنشاء / تحديث خريطة الموقع'; -$lang['SITEMAP_NOTIFY'] = 'إعلام محركات البحث عن النسخة الجديدة من الموقع'; $lang['SITEMAP_WHAT_NEXT'] = 'ماذا تفعل بعد ذلك ؟ '; $lang['SITEMAP_GOOGLE_1'] = 'تسجيل موقعك في Google Webmaster باستخدام حساب Google الخاص بك.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap من الموقع المسجلين.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'تحقق من أنك لست روبوت'; $lang['CAPTCHA_WRONG'] = 'أنت لا تستطيع أن تؤكد أنك لست روبوت'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha لم يتم بشكل كامل configured

      if لم تكن قد ولدت المفاتيح ، يمكنك أن تفعل ذلك على https://www.google.com/اختبار recaptcha/admin.
      After توليد مفاتيح تحتاج إلى وضعها في ملف المكتبة/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/az/main.php b/library/language/az/main.php index af012571a..182d1fac0 100644 --- a/library/language/az/main.php +++ b/library/language/az/main.php @@ -25,7 +25,7 @@ $lang['POSTS_SHORT'] = 'Vəzifə'; $lang['POSTED'] = 'Göndərilib'; $lang['USERNAME'] = 'İstifadəçi adı'; $lang['PASSWORD'] = 'Parol'; -$lang['PASSWORD_SHOW_BTN'] = 'Show password'; +$lang['PASSWORD_SHOW_BTN'] = 'Şifrəni göstər'; $lang['EMAIL'] = 'E-poçt'; $lang['PM'] = 'ТЧ'; $lang['AUTHOR'] = 'Müəllif'; @@ -60,10 +60,10 @@ $lang['ENABLED'] = 'Aktiv'; $lang['DISABLED'] = 'Qaralar'; $lang['ERROR'] = 'Səhv'; $lang['SELECT_ACTION'] = 'Seçin fəaliyyət'; -$lang['CLEAR'] = 'Clear'; -$lang['MOVE_TO_TOP'] = 'Move to top'; +$lang['CLEAR'] = 'Təmizlə'; +$lang['MOVE_TO_TOP'] = 'Ən yuxarı daşı'; $lang['UNKNOWN'] = 'Məlum deyil'; -$lang['COPY_TO_CLIPBOARD'] = 'Copy to clipboard'; +$lang['COPY_TO_CLIPBOARD'] = 'Panoya surəti'; $lang['NO_ITEMS'] = 'There seems to be no data here...'; $lang['PLEASE_TRY_AGAIN'] = 'Please try again after few seconds...'; @@ -1607,7 +1607,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Bu variant üçün yalnız super admins'; $lang['LOGS'] = 'Tarixi mövzular'; $lang['FORUM_LOGS'] = 'Forum Tarixi'; -$lang['AUTOCLEAN'] = 'Автоочистка:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Dizayner'; $lang['LAST_IP'] = 'Son İP:'; @@ -1882,6 +1882,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'dayandırdı'; $lang['DL_UPD'] = 'упд: '; $lang['DL_INFO'] = 'məlumatları göstərir only üçün cari session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Çapa ilk post'; @@ -2325,14 +2328,6 @@ $lang['DISALLOWED_ALREADY'] = 'Təqdim adı olunmasından imtina edilə bilməz. $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Basın %sHere%s qaytarmaq qadağan Administrasiyası istifadəçi Adı'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Məlumat Versiyası'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -3001,12 +2996,8 @@ $lang['SITEMAP_ADMIN'] = 'İdarə saytın Xəritəsi'; $lang['SITEMAP_CREATED'] = 'Saytın xəritəsi yaradılmışdır'; $lang['SITEMAP_AVAILABLE'] = 'və mövcud'; $lang['SITEMAP_NOT_CREATED'] = 'Saytın xəritəsi hələ yaradılıb'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Xəbərdarlıq axtarış motorları'; -$lang['SITEMAP_SENT'] = 'göndər dolu'; -$lang['SITEMAP_ERROR'] = 'səhv göndərilməsi'; $lang['SITEMAP_OPTIONS'] = 'Variantlar'; $lang['SITEMAP_CREATE'] = 'Yaradılması və / və saytın yenilənməsi'; -$lang['SITEMAP_NOTIFY'] = 'Məlumat axtarış sisteminin yeni versiyası haqqında sayt'; $lang['SITEMAP_WHAT_NEXT'] = 'Nə etməli?'; $lang['SITEMAP_GOOGLE_1'] = 'Qeydiyyatdan sizin sayta Google Webmaster köməyi ilə haqq-hesab Google.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap siz sayta qeydiyyatdan keçmişdir.'; @@ -3088,7 +3079,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Əmin olun ki, Siz robot deyil'; $lang['CAPTCHA_WRONG'] = 'Ola bilər ki, təsdiq Siz robot deyil'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha olmadan tam configured

      if siz hələ сгенерировал düymələri, bunu edə bilərsiniz azn https://ВСП.google.com/рекапчу/admin.
      After siz генерируете düymələri, lazımdır onları qoymaq fayl Library/onları.PHP.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/be/main.php b/library/language/be/main.php index 2feb55022..e462e615e 100644 --- a/library/language/be/main.php +++ b/library/language/be/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Гэты варыянт толькі для с $lang['LOGS'] = 'Гісторыя тэмы'; $lang['FORUM_LOGS'] = 'Форум Гісторыі'; -$lang['AUTOCLEAN'] = 'Автоочистка:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Дызайнер'; $lang['LAST_IP'] = 'Апошні IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'спыніўся'; $lang['DL_UPD'] = 'упд: '; $lang['DL_INFO'] = 'паказвае дадзеныя only для бягучага session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Замацаваць першы пост'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'Уведзенае імя не можа быць $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Націсніце %sHere%s вярнуць забараніць Адміністрацыі Імя карыстальніка'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Інфармацыя Аб Версіі'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2998,12 +2993,8 @@ $lang['SITEMAP_ADMIN'] = 'Кіраванне Карта сайта'; $lang['SITEMAP_CREATED'] = 'Карта сайта створаны'; $lang['SITEMAP_AVAILABLE'] = 'і даступная на'; $lang['SITEMAP_NOT_CREATED'] = 'Карта сайта яшчэ не створана'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Апавяшчэнне пошукавых сістэм'; -$lang['SITEMAP_SENT'] = 'адпраўце запоўнены'; -$lang['SITEMAP_ERROR'] = 'памылка адпраўкі'; $lang['SITEMAP_OPTIONS'] = 'Варыянты'; $lang['SITEMAP_CREATE'] = 'Стварэнне / абнаўленне сайта'; -$lang['SITEMAP_NOTIFY'] = 'Паведаміць пошукавыя сістэмы аб новай версіі сайта'; $lang['SITEMAP_WHAT_NEXT'] = 'Што рабіць далей?'; $lang['SITEMAP_GOOGLE_1'] = 'Зарэгістраваць свой сайт у Google Webmaster з дапамогай акаўнта Google.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap сайта вы зарэгістраваныя.'; @@ -3085,7 +3076,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Пераканайцеся, што Вы не робат'; $lang['CAPTCHA_WRONG'] = 'Вы не маглі б пацвердзіць, што Вы не робат'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha не будучы цалкам configured

      if вы яшчэ не згенераваў ключы, вы можаце зрабіць гэта на https://ВСП.гугл.ком/рекапчу/admin.
      After вы генерируете ключы, вам трэба пакласці іх у файл Library/конфіг.у PHP.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/bg/main.php b/library/language/bg/main.php index 096b12821..d93bb26b8 100644 --- a/library/language/bg/main.php +++ b/library/language/bg/main.php @@ -1606,7 +1606,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Този вариант само за супе $lang['LOGS'] = 'История на темите'; $lang['FORUM_LOGS'] = 'Форум История'; -$lang['AUTOCLEAN'] = 'Автоочистка:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Дизайнер'; $lang['LAST_IP'] = 'Последният IP:'; @@ -1881,6 +1881,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'спря'; $lang['DL_UPD'] = 'упд: '; $lang['DL_INFO'] = 'показва данните only за текущата session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Фиксирай първия пост'; @@ -2324,14 +2327,6 @@ $lang['DISALLOWED_ALREADY'] = 'Разрешение за ползване (им $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Кликнете %sHere%s върнете се забрани на Администрацията потребителско Име'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Информация За Версията'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -3000,12 +2995,8 @@ $lang['SITEMAP_ADMIN'] = 'Управление на Карта на сайта'; $lang['SITEMAP_CREATED'] = 'Карта на сайта създаден'; $lang['SITEMAP_AVAILABLE'] = 'и е на разположение на'; $lang['SITEMAP_NOT_CREATED'] = 'Карта на сайта все още не е създаден'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Сигнал за търсачки'; -$lang['SITEMAP_SENT'] = 'изпратете склад'; -$lang['SITEMAP_ERROR'] = 'грешка при изпращане'; $lang['SITEMAP_OPTIONS'] = 'Опции'; $lang['SITEMAP_CREATE'] = 'Създаване / обновяване на сайта'; -$lang['SITEMAP_NOTIFY'] = 'Да уведомите търсачките за новата версия на сайта'; $lang['SITEMAP_WHAT_NEXT'] = 'Какво да направя?'; $lang['SITEMAP_GOOGLE_1'] = 'Регистрация на уеб сайт в Google Webmaster с профила си в Google.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap сайт сте регистрирани.'; @@ -3087,7 +3078,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Уверете се, че не Сте робот'; $lang['CAPTCHA_WRONG'] = 'Вие не може да потвърди, че не Сте робот'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha тъй като не е напълно configured

      if все още не сте сгенерировал ключове, вие можете да направите това на https://ОСП.google.com/рекапчу/admin.
      After вие генерируете ключовете, трябва да ги сложите във файл Library/конфигур.в PHP.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/bs/main.php b/library/language/bs/main.php index 28f6eccd8..19baeeda1 100644 --- a/library/language/bs/main.php +++ b/library/language/bs/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Ovo jedina opcija za super colorada'; $lang['LOGS'] = 'Tema istoriju'; $lang['FORUM_LOGS'] = 'Povijest Forum'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Dizajner'; $lang['LAST_IP'] = 'Prošle IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'prestao'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'pokazuje podatke only za trenutni session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin prvi položaj'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'Ime ti je ušao nije mogao biti dozvoljeno. Ni ve $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Klik %sHere%s da se vrati u Disallow korisničko ime Uprave'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Verziju Informacije'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Snaći mapa sajta'; $lang['SITEMAP_CREATED'] = 'Mapa sajta stvorio'; $lang['SITEMAP_AVAILABLE'] = 'i dostupna je na'; $lang['SITEMAP_NOT_CREATED'] = 'Mapa sajta nije još stvorio'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Obavijest o tražilice'; -$lang['SITEMAP_SENT'] = 'pošalji završio'; -$lang['SITEMAP_ERROR'] = 'šaljem greška'; $lang['SITEMAP_OPTIONS'] = 'Opcija'; $lang['SITEMAP_CREATE'] = 'Stvoriti / ažurirati mapa sajta'; -$lang['SITEMAP_NOTIFY'] = 'Obavesti pretraživača o nova verzija mapa sajta'; $lang['SITEMAP_WHAT_NEXT'] = 'Šta sledeće da uradim?'; $lang['SITEMAP_GOOGLE_1'] = 'Registra tvog sajta na Google Webmaster koristeći Google je tvoj račun.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap lokacije ste registrirani.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Provjeri da vi niste robot'; $lang['CAPTCHA_WRONG'] = 'Ti nije mogao potvrditi da vi niste robot'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha ne bude u potpunosti configured

      if već nisi napravio ključeve, možeš ti to na https://www.google.com/recaptcha/admin.
      After si stvaraju ključeve, moraš ih staviti u dosije biblioteci/putanju.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/ca/main.php b/library/language/ca/main.php index 04dcae417..b1d4d0a21 100644 --- a/library/language/ca/main.php +++ b/library/language/ca/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Aquesta opció només per a administradors de s $lang['LOGS'] = 'Tema de la història'; $lang['FORUM_LOGS'] = 'Història Del Fòrum'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Dissenyador'; $lang['LAST_IP'] = 'Última IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'aturar'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'mostra dades only per l\'actual session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin primer post'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'El nom que heu introduït no podia ser rebutjat. $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Feu clic %sHere%s per tornar a Rebutjar el nom d\'Usuari d\'Administració'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Informació De La Versió'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Gestionar mapa'; $lang['SITEMAP_CREATED'] = 'Mapa del web creat'; $lang['SITEMAP_AVAILABLE'] = 'i està disponible en'; $lang['SITEMAP_NOT_CREATED'] = 'Mapa del web encara no està creat'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Notificació del motor de cerca'; -$lang['SITEMAP_SENT'] = 'enviar emplenat'; -$lang['SITEMAP_ERROR'] = 'l\'enviament d\'error'; $lang['SITEMAP_OPTIONS'] = 'Opcions'; $lang['SITEMAP_CREATE'] = 'Crear / actualitzar el mapa del web'; -$lang['SITEMAP_NOTIFY'] = 'Notificar els motors de cerca sobre la nova versió del mapa del web'; $lang['SITEMAP_WHAT_NEXT'] = 'Què fer a continuació?'; $lang['SITEMAP_GOOGLE_1'] = 'Registrar el seu lloc a Google Webmaster utilitzant el teu compte de Google.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap de lloc que heu registrat.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Comprovar que no ets un robot'; $lang['CAPTCHA_WRONG'] = 'No es podia confirmar que no ets un robot'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha no ser totalment configured

      if no ho heu fet ja generar les claus, podeu fer-ho en https://www.google.com/recaptcha/admin.
      After a generar les claus, que cal posar-los a l\'arxiu de la biblioteca/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/cs/main.php b/library/language/cs/main.php index 464baa6cc..aa30b5809 100644 --- a/library/language/cs/main.php +++ b/library/language/cs/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Tato možnost pouze pro super admini'; $lang['LOGS'] = 'Téma historie'; $lang['FORUM_LOGS'] = 'Historie Fóra'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Návrhář'; $lang['LAST_IP'] = 'Poslední IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'zastavil'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'zobrazuje údaje only pro aktuální session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin první příspěvek'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'Název jste zadali, nemůže být zakázáno. To $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Klikněte %sHere%s vrátit Zakázat uživatelské Jméno Podání'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Informace O Verzi'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Správa sitemap'; $lang['SITEMAP_CREATED'] = 'Sitemap vytvořené'; $lang['SITEMAP_AVAILABLE'] = 'a je k dispozici na'; $lang['SITEMAP_NOT_CREATED'] = 'Mapa ještě není vytvořen'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Oznámení vyhledávače'; -$lang['SITEMAP_SENT'] = 'poslat dokončena'; -$lang['SITEMAP_ERROR'] = 'chyba při odesílání'; $lang['SITEMAP_OPTIONS'] = 'Možnosti'; $lang['SITEMAP_CREATE'] = 'Vytvořit / aktualizovat sitemap'; -$lang['SITEMAP_NOTIFY'] = 'Informovat vyhledávače o nové verzi sitemap'; $lang['SITEMAP_WHAT_NEXT'] = 'Co dělat dál?'; $lang['SITEMAP_GOOGLE_1'] = 'Zaregistrujte svůj web na Google Webmaster pomocí svého účtu Google.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap webu jste se zaregistrovali.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Zkontrolujte, že nejste robot'; $lang['CAPTCHA_WRONG'] = 'Můžete potvrdit, že nejste robot'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha není plně configured

      if jste již vygenerované klíče, můžete to udělat na https://www.google.com/recaptcha/admin.
      After generování klíče, musíte dát je v souboru knihovny/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/da/main.php b/library/language/da/main.php index 1055a88bb..e4c7fec6a 100644 --- a/library/language/da/main.php +++ b/library/language/da/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Denne mulighed kun for super admins'; $lang['LOGS'] = 'Emne historie'; $lang['FORUM_LOGS'] = 'Historie Forum'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Designer'; $lang['LAST_IP'] = 'Sidste IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'stoppet'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'viser data only for den aktuelle session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin-kode første indlæg'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'Det navn, du indtastede ikke kunne forbydes. Det $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Klik på %sHere%s for at vende tilbage til at Afvise Brugernavn Administration'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Version Information'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Styre sitemap'; $lang['SITEMAP_CREATED'] = 'Sitemap oprettet'; $lang['SITEMAP_AVAILABLE'] = 'og er tilgængelig på'; $lang['SITEMAP_NOT_CREATED'] = 'Sitemap er endnu ikke oprettet'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Anmeldelse af søgemaskinen'; -$lang['SITEMAP_SENT'] = 'send afsluttet'; -$lang['SITEMAP_ERROR'] = 'afsendelse af fejl'; $lang['SITEMAP_OPTIONS'] = 'Valg'; $lang['SITEMAP_CREATE'] = 'Opret / opdater sitemap'; -$lang['SITEMAP_NOTIFY'] = 'Informere søgemaskiner om den nye version af sitemap'; $lang['SITEMAP_WHAT_NEXT'] = 'Hvad du skal gøre næste?'; $lang['SITEMAP_GOOGLE_1'] = 'Registrer dit websted på Google Webmaster ved hjælp af din Google-konto.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap websted, du har registreret.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Kontroller, at du ikke er en robot'; $lang['CAPTCHA_WRONG'] = 'Du kunne ikke bekræfte at du ikke er en robot'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha ikke er fuldt configured

      if du ikke allerede har genereret de taster, du kan gøre det på https://www.google.com/reference/admin.
      After du kan generere de taster, du har brug for at sætte dem på fil-bibliotek/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/de/main.php b/library/language/de/main.php index 6f5084035..a05081310 100644 --- a/library/language/de/main.php +++ b/library/language/de/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Diese option wird nur für super-admins'; $lang['LOGS'] = 'Thema Geschichte'; $lang['FORUM_LOGS'] = 'Geschichte Forum'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Designer'; $lang['LAST_IP'] = 'Letzte IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'gestoppt'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'zeigt Daten only für die aktuelle session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin ersten post'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'Der name, den Sie eingegeben haben, konnte nicht $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Klicken Sie auf %sHere%s zurück zu Verbieten, Benutzername Verwaltung'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Versionsinformationen'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Verwalten von XML-sitemap'; $lang['SITEMAP_CREATED'] = 'XML-Sitemap erstellt'; $lang['SITEMAP_AVAILABLE'] = 'und ist erhältlich bei'; $lang['SITEMAP_NOT_CREATED'] = 'Sitemap ist noch nicht erstellt'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Benachrichtigung der Suchmaschinen'; -$lang['SITEMAP_SENT'] = 'senden abgeschlossen'; -$lang['SITEMAP_ERROR'] = 'Fehler beim senden'; $lang['SITEMAP_OPTIONS'] = 'Optionen'; $lang['SITEMAP_CREATE'] = 'Erstellen / aktualisieren Sie die sitemap'; -$lang['SITEMAP_NOTIFY'] = 'Benachrichtigen Sie Suchmaschinen über die neue version der sitemap'; $lang['SITEMAP_WHAT_NEXT'] = 'Was als Nächstes zu tun?'; $lang['SITEMAP_GOOGLE_1'] = 'Registrieren Sie Ihre Website bei Google Webmaster mit Ihrem Google-Konto.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap der Website, die Sie registriert.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Überprüfen Sie, dass Sie nicht ein Roboter'; $lang['CAPTCHA_WRONG'] = 'Sie konnte nicht bestätigen, dass Sie nicht ein Roboter'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha nicht vollständig configured

      if Sie nicht bereits generiert die Schlüssel, die Sie tun können, es auf https://www.google.com/recaptcha/admin.
      After generieren Sie die Schlüssel, die Sie benötigen, um Sie auf die Datei library/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/el/main.php b/library/language/el/main.php index 9f820abb7..8f276b9e8 100644 --- a/library/language/el/main.php +++ b/library/language/el/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Αυτή η επιλογή μόνο για supe $lang['LOGS'] = 'Το θέμα της ιστορίας'; $lang['FORUM_LOGS'] = 'Ιστορία Φόρουμ'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Σχεδιαστής'; $lang['LAST_IP'] = 'Τελευταία IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'σταμάτησε'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'εμφανίζει τα δεδομένα only για την τρέχουσα session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin πρώτο post'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'Το όνομα που έχετε εισάγει $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Κάντε κλικ %sHere%s να επιστρέψει για να Απαγορεύσει το όνομα Χρήστη Διοίκησης'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Πληροφορίες Για Την Έκδοση'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Διαχείριση sitemap'; $lang['SITEMAP_CREATED'] = 'Sitemap δημιουργήθηκε'; $lang['SITEMAP_AVAILABLE'] = 'και είναι διαθέσιμο σε'; $lang['SITEMAP_NOT_CREATED'] = 'Sitemap δεν δημιουργήθηκε ακόμα'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Κοινοποίηση των μηχανών αναζήτησης'; -$lang['SITEMAP_SENT'] = 'στείλτε ολοκληρωθεί'; -$lang['SITEMAP_ERROR'] = 'αποστολή λάθους'; $lang['SITEMAP_OPTIONS'] = 'Επιλογές'; $lang['SITEMAP_CREATE'] = 'Δημιουργία / ενημέρωση το sitemap'; -$lang['SITEMAP_NOTIFY'] = 'Ενημερώνει τις μηχανές αναζήτησης για τη νέα έκδοση του sitemap'; $lang['SITEMAP_WHAT_NEXT'] = 'Τι να κάνω μετά;'; $lang['SITEMAP_GOOGLE_1'] = 'Καταχωρήστε το site σας σε Google Webmaster χρησιμοποιώντας το λογαριασμό σας Google.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap του site σας θα καταχωρηθεί.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Ελέγξτε ότι δεν είστε ρομπότ'; $lang['CAPTCHA_WRONG'] = 'Δεν θα μπορούσε να επιβεβαιώσει ότι δεν είστε ρομπότ'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha δεν είναι πλήρως configured

      if δεν έχετε δημιουργήσει ήδη τα κλειδιά, μπορείτε να το κάνετε στο https://www.η google.com/recaptcha/admin.
      After μπορείτε να δημιουργήσετε τα κλειδιά, θα πρέπει να τους βάλει στο αρχείο βιβλιοθήκη/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/en/main.php b/library/language/en/main.php index 09795fa95..e5f31e8ea 100644 --- a/library/language/en/main.php +++ b/library/language/en/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'This option only for super admins'; $lang['LOGS'] = 'Topic history'; $lang['FORUM_LOGS'] = 'History Forum'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Designer'; $lang['LAST_IP'] = 'Last IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'stopped'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'shows data only for the current session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin first post'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'The name you entered could not be disallowed. It $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Click %sHere%s to return to Disallow Username Administration'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Version Information'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Manage sitemap'; $lang['SITEMAP_CREATED'] = 'Sitemap created'; $lang['SITEMAP_AVAILABLE'] = 'and is available at'; $lang['SITEMAP_NOT_CREATED'] = 'Sitemap is not yet created'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Notification of the search engine'; -$lang['SITEMAP_SENT'] = 'send completed'; -$lang['SITEMAP_ERROR'] = 'sending error'; $lang['SITEMAP_OPTIONS'] = 'Options'; $lang['SITEMAP_CREATE'] = 'Create / update the sitemap'; -$lang['SITEMAP_NOTIFY'] = 'Notify search engines about new version of sitemap'; $lang['SITEMAP_WHAT_NEXT'] = 'What to do next?'; $lang['SITEMAP_GOOGLE_1'] = 'Register your site at Google Webmaster using your Google account.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap of site you registered.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Check that you are not a robot'; $lang['CAPTCHA_WRONG'] = 'You could not confirm that you are not a robot'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha not being fully configured

      If you haven\'t already generated the keys, you can do it on https://www.google.com/recaptcha/admin.
      After you generate the keys, you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/es/main.php b/library/language/es/main.php index 520c56faf..72bfe0d40 100644 --- a/library/language/es/main.php +++ b/library/language/es/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Esta opción sólo para los super administrador $lang['LOGS'] = 'Tema de la historia'; $lang['FORUM_LOGS'] = 'Foro De Historia'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Diseñador'; $lang['LAST_IP'] = 'Última IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'parado'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'muestra los datos only para el actual session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin primer post'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'El nombre que ha introducido no podía ser rechaz $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Haga clic en %sHere%s para volver a no permitir el nombre de Usuario de Administración'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Información De La Versión'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Administrar sitemap'; $lang['SITEMAP_CREATED'] = 'Mapa del sitio creado'; $lang['SITEMAP_AVAILABLE'] = 'y está disponible en'; $lang['SITEMAP_NOT_CREATED'] = 'Sitemap aún no se ha creado'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'La notificación de los motores de búsqueda'; -$lang['SITEMAP_SENT'] = 'enviar completado'; -$lang['SITEMAP_ERROR'] = 'el envío de error'; $lang['SITEMAP_OPTIONS'] = 'Opciones'; $lang['SITEMAP_CREATE'] = 'Crear / actualizar el sitemap'; -$lang['SITEMAP_NOTIFY'] = 'Notificar a los motores de búsqueda acerca de la nueva versión de mapa del sitio'; $lang['SITEMAP_WHAT_NEXT'] = 'Qué hacer a continuación?'; $lang['SITEMAP_GOOGLE_1'] = 'Registrar su sitio en Google Webmaster usando tu cuenta de Google.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap de sitio registrado.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Comprobar que no eres un robot'; $lang['CAPTCHA_WRONG'] = 'No se podía confirmar que no eres un robot'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha no ser totalmente configured

      if todavía no ha generado las claves, usted puede hacerlo en https://www.google.com/recaptcha/admin.
      After generar las llaves, usted necesita para poner en el archivo de la biblioteca/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/et/main.php b/library/language/et/main.php index 5316a7653..a9e51ee46 100644 --- a/library/language/et/main.php +++ b/library/language/et/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'See võimalus vaid super administraatoritel'; $lang['LOGS'] = 'Teema ajalugu'; $lang['FORUM_LOGS'] = 'Foorumi Ajalugu'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Disainer'; $lang['LAST_IP'] = 'Viimati IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'lõpetanud'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'näitab andmeid only jooksva session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin-koodi esimene postitus'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'Teie poolt sisestatud nimele ei saa välistada. S $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Klõpsake %sHere%s tagasi Keelata Kasutajanime Haldus'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Versiooni Informatsioon'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Halda sitemap'; $lang['SITEMAP_CREATED'] = 'Sitemap loodud'; $lang['SITEMAP_AVAILABLE'] = 'ja on kättesaadav aadressil'; $lang['SITEMAP_NOT_CREATED'] = 'Sitemap pole veel loodud'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Teate otsingumootor'; -$lang['SITEMAP_SENT'] = 'saatmiseks valmis'; -$lang['SITEMAP_ERROR'] = 'saatmine viga'; $lang['SITEMAP_OPTIONS'] = 'Valikud'; $lang['SITEMAP_CREATE'] = 'Koostada / uuendada sitemap'; -$lang['SITEMAP_NOTIFY'] = 'Teatama hakukoneita uus versioon sitemap'; $lang['SITEMAP_WHAT_NEXT'] = 'Mida teha edasi?'; $lang['SITEMAP_GOOGLE_1'] = 'Registreeri oma sait kell Google Webmaster kasutades oma Google \' i konto.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap saidi te registreeritud.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Kontrollige, et te ei ole robot'; $lang['CAPTCHA_WRONG'] = 'Sa ei suutnud kinnitada, et sa ei ole robot'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha ei ole täielikult configured

      if te pole juba genereeritud võtmete abil saate teha seda https://www.google.kom/recaptcha/admin.
      After te luua võtmed, teil on vaja panna neid faili library/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/fi/main.php b/library/language/fi/main.php index 0e31ef204..b04e98bae 100644 --- a/library/language/fi/main.php +++ b/library/language/fi/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Tämä vaihtoehto vain super ylläpitäjät'; $lang['LOGS'] = 'Aihe historia'; $lang['FORUM_LOGS'] = 'Historia Forum'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Suunnittelija'; $lang['LAST_IP'] = 'Viimeinen IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'pysähtyi'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'näyttää tiedot only nykyisen session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin-koodin ensimmäinen viesti'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'Antamasi nimi voisi olla kielletty. Se joko on jo $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Klikkaa %sHere%s palata Estää Käyttäjätunnus Hallinto'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Version Tiedot'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Hallita sivukartta'; $lang['SITEMAP_CREATED'] = 'Sivukartta on luotu'; $lang['SITEMAP_AVAILABLE'] = 'ja on saatavilla osoitteessa'; $lang['SITEMAP_NOT_CREATED'] = 'Sivukartta ei ole vielä luotu'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Ilmoituksen hakukone'; -$lang['SITEMAP_SENT'] = 'lähetä valmis'; -$lang['SITEMAP_ERROR'] = 'lähettämällä virhe'; $lang['SITEMAP_OPTIONS'] = 'Vaihtoehtoja'; $lang['SITEMAP_CREATE'] = 'Luo / päivittää sivukartta'; -$lang['SITEMAP_NOTIFY'] = 'Ilmoittaa hakukoneille noin uusi versio sivukartta'; $lang['SITEMAP_WHAT_NEXT'] = 'Mitä tehdä seuraavaksi?'; $lang['SITEMAP_GOOGLE_1'] = 'Rekisteröidy sivuston milloin Google Webmaster Google-tilisi avulla.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap sivuston olet rekisteröitynyt.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Tarkista, että et ole robotti'; $lang['CAPTCHA_WRONG'] = 'Et voi vahvistaa, että et ole robotti'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha ei ole täysin configured

      if et ole jo luonut avaimet, voit tehdä sen https://www.google.com/recaptcha/admin.
      After voit luoda avaimet, sinun täytyy laittaa ne samaan tiedostoon library/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/fr/main.php b/library/language/fr/main.php index ab5b3dfde..df5a110b1 100644 --- a/library/language/fr/main.php +++ b/library/language/fr/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Cette option uniquement pour les super admins'; $lang['LOGS'] = 'Rubrique histoire'; $lang['FORUM_LOGS'] = 'L\'Histoire Du Forum'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Designer'; $lang['LAST_IP'] = 'Dernière IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'arrêté'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'montre les données only pour le courant session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Broche premier post'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'Le nom que vous avez saisi ne pouvait pas être r $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Cliquez sur %sHere%s pour revenir à Interdire nom d\'utilisateur l\'Administration'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Les Informations De Version'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Gérer sitemap'; $lang['SITEMAP_CREATED'] = 'Sitemap créé'; $lang['SITEMAP_AVAILABLE'] = 'et est disponible à'; $lang['SITEMAP_NOT_CREATED'] = 'Sitemap n\'est pas encore créé'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Notification du moteur de recherche'; -$lang['SITEMAP_SENT'] = 'envoyer achevée'; -$lang['SITEMAP_ERROR'] = 'l\'envoi d\'erreur'; $lang['SITEMAP_OPTIONS'] = 'Options'; $lang['SITEMAP_CREATE'] = 'Créer / mettre à jour le plan du site'; -$lang['SITEMAP_NOTIFY'] = 'Informer les moteurs de recherche à propos de la nouvelle version de sitemap'; $lang['SITEMAP_WHAT_NEXT'] = 'Que faire ensuite?'; $lang['SITEMAP_GOOGLE_1'] = 'L\'inscription de votre site à Google Webmaster à l\'aide de votre compte Google.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap de site que vous avez enregistré.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Vérifiez que vous n\'êtes pas un robot'; $lang['CAPTCHA_WRONG'] = 'Vous ne peut pas confirmer que vous n\'êtes pas un robot'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha ne pas être totalement configured

      if vous ne l\'avez pas déjà généré les clés, vous pouvez le faire sur https://www.google.com/recaptcha/admin.
      After vous générer les clés, vous devez les placer dans le dossier bibliothèque/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/he/main.php b/library/language/he/main.php index cc5cf4325..bd41ca08c 100644 --- a/library/language/he/main.php +++ b/library/language/he/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'באפשרות זו רק עבור סופר מנ $lang['LOGS'] = 'נושא ההיסטוריה.'; $lang['FORUM_LOGS'] = 'פורום היסטוריה'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'מעצב'; $lang['LAST_IP'] = 'אתמול ה-IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'הפסיקה'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'מראה נתונים only הנוכחי session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'סיכת הפוסט הראשון'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'השם שהזנת לא יכול להיות אסו $lang['CLICK_RETURN_DISALLOWADMIN'] = 'לחץ על %sHere%s לחזור לאסור את שם המשתמש ניהול'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'גרסה מידע'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'לנהל את ה-sitemap'; $lang['SITEMAP_CREATED'] = 'Sitemap יצר'; $lang['SITEMAP_AVAILABLE'] = 'והוא זמין ב'; $lang['SITEMAP_NOT_CREATED'] = 'Sitemap הוא עדיין לא נוצר'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'הודעה של מנוע החיפוש'; -$lang['SITEMAP_SENT'] = 'שלח הושלם'; -$lang['SITEMAP_ERROR'] = 'שולח שגיאה'; $lang['SITEMAP_OPTIONS'] = 'אפשרויות'; $lang['SITEMAP_CREATE'] = 'צור / עדכן את ה-sitemap'; -$lang['SITEMAP_NOTIFY'] = 'ליידע את מנועי החיפוש על גרסה חדשה של ה-sitemap'; $lang['SITEMAP_WHAT_NEXT'] = 'מה לעשות הלאה?'; $lang['SITEMAP_GOOGLE_1'] = 'לרשום את האתר שלך ב Google Webmaster באמצעות חשבון Google שלך.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap של האתר נרשמת.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'בדוק שאתה לא רובוט'; $lang['CAPTCHA_WRONG'] = 'אתה יכול לאשר שאתה לא רובוט'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha לא להיות לגמרי configured

      if לא כבר יצר את המפתחות, אתה יכול לעשות את זה על https://www.google.com/recaptcha/admin.
      After לך ליצור את המפתחות, אתה צריך לשים אותם על הקובץ בספריה/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/hi/main.php b/library/language/hi/main.php index c3d366011..d4b064f56 100644 --- a/library/language/hi/main.php +++ b/library/language/hi/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'केवल सुपर व्यवस्थ $lang['LOGS'] = 'विषय इतिहास'; $lang['FORUM_LOGS'] = 'इतिहास फ़ोरम'; -$lang['AUTOCLEAN'] = 'स्वतः स्वच्छ:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'डिजाइनर'; $lang['LAST_IP'] = 'अंतिम आईपी:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'रोका हुआ'; $lang['DL_UPD'] = 'upd:'; $lang['DL_INFO'] = 'वर्तमान सत्र के लिए केवल डेटा दिखाता है 1233_2_2_321'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'पहली पोस्ट पिन करें'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'आपके द्वारा दर्ज न $lang['CLICK_RETURN_DISALLOWADMIN'] = 'अस्वीकार उपयोगकर्ता नाम प्रशासन पर वापस जाने के लिए %s हायर %s पर क्लिक करें'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'संस्करण जानकारी'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'साइटमैप प्रबंधित कर $lang['SITEMAP_CREATED'] = 'साइटमैप बनाया गया'; $lang['SITEMAP_AVAILABLE'] = 'और यहां पर उपलब्ध है'; $lang['SITEMAP_NOT_CREATED'] = 'साइटमैप अभी तक बनाया नहीं गया है'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'खोज इंजन की अधिसूचना'; -$lang['SITEMAP_SENT'] = 'भेजें पूर्ण'; -$lang['SITEMAP_ERROR'] = 'त्रुटि भेजना'; $lang['SITEMAP_OPTIONS'] = 'विकल्प'; $lang['SITEMAP_CREATE'] = 'साइटमैप बनाएं / अपडेट करें'; -$lang['SITEMAP_NOTIFY'] = 'साइटमैप के नए संस्करण के बारे में खोज इंजन को सूचित करें'; $lang['SITEMAP_WHAT_NEXT'] = 'आगे क्या करना है?'; $lang['SITEMAP_GOOGLE_1'] = 'अपने Google खाते का उपयोग करके Google Webmaster पर अपनी साइट को पंजीकृत करें'; $lang['SITEMAP_GOOGLE_2'] = ' साइट की साइटमैप जोड़ें जो आपने पंजीकृत की है।'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'जांचें कि आप रोबोट नहीं हैं'; $lang['CAPTCHA_WRONG'] = 'आप यह पुष्टि नहीं कर सके कि आप रोबोट नहीं हैं'; -$lang['CAPTCHA_SETTINGS'] = '

      रीकैप्चाचा पूरी तरह से कॉन्फ़िगर नहीं किया जा रहा है

      यदि आपने पहले से कुंजी उत्पन्न नहीं की है, तो आप इसे https: //www.google.com/recaptcha/admin.
      पर कर सकते हैं, आप कुंजी उत्पन्न करने के बाद, आपको उन्हें फ़ाइल लाइब्रेरी / कॉन्फ़िग पर डालनी होगी .php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/hr/main.php b/library/language/hr/main.php index dfa5ee321..b7808f095 100644 --- a/library/language/hr/main.php +++ b/library/language/hr/main.php @@ -1607,7 +1607,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Ova opcija je samo za super admina'; $lang['LOGS'] = 'Priča teme'; $lang['FORUM_LOGS'] = 'Forum Povijesti'; -$lang['AUTOCLEAN'] = 'Автоочистка:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Dizajner'; $lang['LAST_IP'] = 'Posljednji IP:'; @@ -1882,6 +1882,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'zaustavljen'; $lang['DL_UPD'] = 'упд: '; $lang['DL_INFO'] = 'prikazuje podatke only za tekuće session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pričvrstite prvi post'; @@ -2325,14 +2328,6 @@ $lang['DISALLOWED_ALREADY'] = 'Vaše ime ne može biti odbijen. To je bilo već $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Kliknite %sHere%s vratiti zabraniti Uprave korisničko Ime'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Informacije O Verziji'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -3001,12 +2996,8 @@ $lang['SITEMAP_ADMIN'] = 'Upravljanje Sitemap'; $lang['SITEMAP_CREATED'] = 'Karta web postavljen'; $lang['SITEMAP_AVAILABLE'] = 'i dostupan je na'; $lang['SITEMAP_NOT_CREATED'] = 'Sitemap još nije formirana'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Upozorenje tražilice'; -$lang['SITEMAP_SENT'] = 'pošaljite ispunjen'; -$lang['SITEMAP_ERROR'] = 'greška prilikom slanja'; $lang['SITEMAP_OPTIONS'] = 'Mogućnosti'; $lang['SITEMAP_CREATE'] = 'Izrada / ažuriranje web stranice'; -$lang['SITEMAP_NOTIFY'] = 'Obavijestiti tražilicama o novoj verziji stranice'; $lang['SITEMAP_WHAT_NEXT'] = 'Što učiniti dalje?'; $lang['SITEMAP_GOOGLE_1'] = 'Registrirati svoje web stranice u Google Webmaster pomoću Google računa.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap stranice ste se registrirali.'; @@ -3088,7 +3079,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Provjerite da niste robot'; $lang['CAPTCHA_WRONG'] = 'Vi ne bi mogli potvrditi da niste robot'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha ne bude potpuno configured

      if se još nije ostvario tragove, možete to učiniti na https://VSP.google.com/рекапчу/admin.
      After ste generira ključeve, morate ih staviti u datoteku Library/konfigur.u PHP-u.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/hu/main.php b/library/language/hu/main.php index 57ae81cf3..c8cc628b0 100644 --- a/library/language/hu/main.php +++ b/library/language/hu/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Ez az opció csak a szuper adminok'; $lang['LOGS'] = 'Téma történelem'; $lang['FORUM_LOGS'] = 'A Történelem Fórum'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Tervező'; $lang['LAST_IP'] = 'Utolsó IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'megállt'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'azt mutatja, az adatok only a jelenlegi session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin első post'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'A beírt nevet nem lehetett nem engedélyezett. V $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Kattintson %sHere%s vissza, hogy ne engedélyezze a Felhasználónév Adminisztráció'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Verzió Információ'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Kezelése oldaltérkép'; $lang['SITEMAP_CREATED'] = 'Oldaltérkép létre'; $lang['SITEMAP_AVAILABLE'] = 'pedig itt érhető el'; $lang['SITEMAP_NOT_CREATED'] = 'Oldaltérkép még nem jön létre'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Értesítés a kereső'; -$lang['SITEMAP_SENT'] = 'a küldés befejezése'; -$lang['SITEMAP_ERROR'] = 'küldési hiba'; $lang['SITEMAP_OPTIONS'] = 'Lehetőségek'; $lang['SITEMAP_CREATE'] = 'Létrehozás / frissítés a sitemap'; -$lang['SITEMAP_NOTIFY'] = 'Értesíti a keresőmotorok az új változat oldaltérkép'; $lang['SITEMAP_WHAT_NEXT'] = 'Mi a következő teendő?'; $lang['SITEMAP_GOOGLE_1'] = 'Regisztrálni a helyszínen Google Webmaster Google fiókja használatával.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap az oldalon regisztrált.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Ellenőrizze, hogy nem egy robot'; $lang['CAPTCHA_WRONG'] = 'Azt nem tudta megerősíteni, hogy nem egy robot'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha nem teljesen configured

      if még nem generált a kulcsokat, meg tudod csinálni https://www.a google.com/recaptcha/admin.
      After generál a kulcsokat, meg kell tenni őket a fájl könyvtár/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/hy/main.php b/library/language/hy/main.php index 17f3d9bf7..2ba49ab9b 100644 --- a/library/language/hy/main.php +++ b/library/language/hy/main.php @@ -1607,7 +1607,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Այս տարբերակը միայն գերծա $lang['LOGS'] = 'Պատմությունը թեմաներ'; $lang['FORUM_LOGS'] = 'Համաժողովը Պատմության'; -$lang['AUTOCLEAN'] = 'Автоочистка:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Դիզայներ'; $lang['LAST_IP'] = 'Վերջին IP-ն:'; @@ -1882,6 +1882,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'կանգ է առել'; $lang['DL_UPD'] = 'упд: '; $lang['DL_INFO'] = 'ցույց է տալիս տվյալներ only ընթացիկ session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Ամրապնդել է առաջին գրառումը'; @@ -2325,14 +2328,6 @@ $lang['DISALLOWED_ALREADY'] = 'Մուտքագրված անունը չի կարո $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Սեղմեք %sHere%s վերադարձնել արգելել Վարչակազմի Անունը'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Տեղեկություններ Տարբերակը'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -3001,12 +2996,8 @@ $lang['SITEMAP_ADMIN'] = 'Վարչությունը կայքի Քարտեզ'; $lang['SITEMAP_CREATED'] = 'Կայքի քարտեզ է ստեղծվել'; $lang['SITEMAP_AVAILABLE'] = 'եւ հասանելի է'; $lang['SITEMAP_NOT_CREATED'] = 'Կայքի քարտեզ դեռ չի ստեղծվել'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Ծանուցում որոնման համակարգերի'; -$lang['SITEMAP_SENT'] = 'ուղարկեք լրացված'; -$lang['SITEMAP_ERROR'] = 'սխալ է ուղարկել'; $lang['SITEMAP_OPTIONS'] = 'Ընտրանքներ'; $lang['SITEMAP_CREATE'] = 'Ստեղծել / թարմացնել կայքը'; -$lang['SITEMAP_NOTIFY'] = 'Տեղեկացնել որոնողական համակարգի նոր տարբերակը: կայքի'; $lang['SITEMAP_WHAT_NEXT'] = 'Թե ինչ պետք է անել?'; $lang['SITEMAP_GOOGLE_1'] = 'Գրանցել ձեր կայքը Google Webmaster հետ հաշվի է Google-ի.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap կայքում դուք գրանցված են ։ '; @@ -3088,7 +3079,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Համոզվեք, որ Դուք չեք ռոբոտը'; $lang['CAPTCHA_WRONG'] = 'Դուք չեք կարող հաստատել, որ Դուք ռոբոտը'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha լինելով configured

      if դուք չեք сгенерировал բանալիները, դուք կարող եք անել դա https://ԳՀՀ.google-ի.սեն/рекапчу/admin.
      After դուք генерируете ստեղները, դուք պետք է տեղադրել իրենց ֆայլը Library/конфиг.PHP-ում.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/id/main.php b/library/language/id/main.php index c7c48eca8..ae4767ac2 100644 --- a/library/language/id/main.php +++ b/library/language/id/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Pilihan ini hanya untuk super admin'; $lang['LOGS'] = 'Topik sejarah'; $lang['FORUM_LOGS'] = 'Sejarah Forum'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Desainer'; $lang['LAST_IP'] = 'Lalu IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'berhenti'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'menunjukkan data only untuk saat ini session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin post pertama'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'Nama yang anda masukkan tidak bisa dianulir. Itu $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Klik %sHere%s untuk kembali ke Larang Username Administrasi'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Informasi Versi'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Mengelola sitemap'; $lang['SITEMAP_CREATED'] = 'Sitemap dibuat'; $lang['SITEMAP_AVAILABLE'] = 'dan tersedia di'; $lang['SITEMAP_NOT_CREATED'] = 'Sitemap adalah belum dibuat'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Pemberitahuan dari mesin pencari'; -$lang['SITEMAP_SENT'] = 'mengirim selesai'; -$lang['SITEMAP_ERROR'] = 'kesalahan pengiriman'; $lang['SITEMAP_OPTIONS'] = 'Pilihan'; $lang['SITEMAP_CREATE'] = 'Membuat / update sitemap'; -$lang['SITEMAP_NOTIFY'] = 'Memberitahu mesin pencari tentang versi baru dari sitemap'; $lang['SITEMAP_WHAT_NEXT'] = 'Apa yang harus dilakukan selanjutnya?'; $lang['SITEMAP_GOOGLE_1'] = 'Daftarkan situs anda di Google Webmaster menggunakan akun Google anda.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap dari situs anda terdaftar.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Periksa bahwa anda bukan robot'; $lang['CAPTCHA_WRONG'] = 'Anda tidak bisa mengkonfirmasi bahwa anda bukan robot'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha tidak sepenuhnya configured

      if anda belum dihasilkan tombol, anda dapat melakukannya pada https://www.google.com/recaptcha/admin.
      After anda menghasilkan kunci, anda perlu untuk menempatkan mereka di file library/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/it/main.php b/library/language/it/main.php index d169c2c6f..a688a9336 100644 --- a/library/language/it/main.php +++ b/library/language/it/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Questa opzione è disponibile solo per i super $lang['LOGS'] = 'Argomento storia'; $lang['FORUM_LOGS'] = 'Storia Del Forum'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Designer'; $lang['LAST_IP'] = 'Ultimo IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'arrestato'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'mostra i dati only per il corrente session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin il primo post'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'Il nome che hai inserito non può essere consenti $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Fare clic su %sHere%s di ritorno per Impedire Username Amministrazione'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Informazioni Sulla Versione'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Gestire sitemap'; $lang['SITEMAP_CREATED'] = 'Sitemap creata'; $lang['SITEMAP_AVAILABLE'] = 'ed è disponibile a'; $lang['SITEMAP_NOT_CREATED'] = 'Sitemap non è ancora creata'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Notifica del motore di ricerca'; -$lang['SITEMAP_SENT'] = 'inviare completata'; -$lang['SITEMAP_ERROR'] = 'l\'invio di errore'; $lang['SITEMAP_OPTIONS'] = 'Opzioni'; $lang['SITEMAP_CREATE'] = 'Creare / aggiornare la sitemap'; -$lang['SITEMAP_NOTIFY'] = 'Informare i motori di ricerca su una nuova versione di sitemap'; $lang['SITEMAP_WHAT_NEXT'] = 'Cosa fare dopo?'; $lang['SITEMAP_GOOGLE_1'] = 'Registra il tuo sito in Google Webmaster utilizzando il tuo account Google.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap del sito è registrato.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Controllare che tu non sia un robot'; $lang['CAPTCHA_WRONG'] = 'Non si poteva confermare che non sei un robot'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha non essere pienamente configured

      if non l\'hai già generato le chiavi, si può fare su https://www.google.com/recaptcha/admin.
      After generare le chiavi, è necessario mettere a file library/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/ja/main.php b/library/language/ja/main.php index ee9f50f4e..90e406f50 100644 --- a/library/language/ja/main.php +++ b/library/language/ja/main.php @@ -1608,7 +1608,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'このオプションのみスーパー管理 $lang['LOGS'] = '話題の歴史'; $lang['FORUM_LOGS'] = '歴史フォーラム'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'デザイナー'; $lang['LAST_IP'] = '最後のIP:'; @@ -1883,6 +1883,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = '停止'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'を示すデータonly現在のsession'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'ピン初の投稿'; @@ -2326,14 +2329,6 @@ $lang['DISALLOWED_ALREADY'] = '名前の入力できな許可します。 そし $lang['CLICK_RETURN_DISALLOWADMIN'] = 'をクリックし%sHere%sを返す可にユーザー名の管理'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'バージョン情報'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -3001,12 +2996,8 @@ $lang['SITEMAP_ADMIN'] = '管理サイトマップ'; $lang['SITEMAP_CREATED'] = 'サイトマップの作成'; $lang['SITEMAP_AVAILABLE'] = 'とが可能で'; $lang['SITEMAP_NOT_CREATED'] = 'サイトマップが作成'; -$lang['SITEMAP_NOTIFY_SEARCH'] = '通知について検索エンジン'; -$lang['SITEMAP_SENT'] = '送信完了'; -$lang['SITEMAP_ERROR'] = '送信エラー'; $lang['SITEMAP_OPTIONS'] = 'オプション'; $lang['SITEMAP_CREATE'] = 'の作成-更新、サイトマップ'; -$lang['SITEMAP_NOTIFY'] = '通知の検索エンジンの最新版のサイトマップ'; $lang['SITEMAP_WHAT_NEXT'] = 'いうのは次のどれですか。'; $lang['SITEMAP_GOOGLE_1'] = '登録サイトでGoogle Webmaster利用のお客様のGoogleアカウントします。'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemapのサイトにご登録いただいたします。'; @@ -3088,7 +3079,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'ることを確認等の無断転載は固くお断りいロボット'; $lang['CAPTCHA_WRONG'] = 'できないことを確認等の無断転載は固くお断りいロボット'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha十分ではconfigured

      ifていなかったとしたら既に生成したキーの取得ができないことがあり上https://wwwします。googleです。com/recaptcha/adminます。
      Afterを生成するキーが必要ということは、ファイルライブラリ/config.クリアしました。

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/ka/main.php b/library/language/ka/main.php index 8f6138e1e..f573189ee 100644 --- a/library/language/ka/main.php +++ b/library/language/ka/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'ეს ვარიანტი მხოლო $lang['LOGS'] = 'თემის ისტორია'; $lang['FORUM_LOGS'] = 'ისტორია ფორუმი'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'დიზაინერი'; $lang['LAST_IP'] = 'ბოლო IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'შეწყვიტა'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'გვიჩვენებს მონაცემები only მიმდინარე session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin პირველი პოსტი'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'სახელი თქვენ შემო $lang['CLICK_RETURN_DISALLOWADMIN'] = 'დააჭირეთ %sHere%s დაბრუნებას აუკრძალეთ სახელი ადმინისტრაციის'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'ვერსია ინფორმაცია'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'მართვა საიტის რუკა'; $lang['SITEMAP_CREATED'] = 'საიტის რუკა შექმნა'; $lang['SITEMAP_AVAILABLE'] = 'და ხელმისაწვდომია'; $lang['SITEMAP_NOT_CREATED'] = 'საიტის რუკა ჯერ არ შექმნილი'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'შეტყობინება საძიებო სისტემა'; -$lang['SITEMAP_SENT'] = 'გაგზავნას დასრულდა'; -$lang['SITEMAP_ERROR'] = 'გაგზავნის შეცდომა'; $lang['SITEMAP_OPTIONS'] = 'პარამეტრები'; $lang['SITEMAP_CREATE'] = 'შექმნა / განახლება საიტის რუკა'; -$lang['SITEMAP_NOTIFY'] = 'აცნობოს საძიებო შესახებ ახალი ვერსია საიტის რუკა'; $lang['SITEMAP_WHAT_NEXT'] = 'რა უნდა გავაკეთოთ შემდეგ?'; $lang['SITEMAP_GOOGLE_1'] = 'დაარეგისტრირეთ თქვენი საიტის Google Webmaster გამოყენებით თქვენი Google ანგარიში.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap " საიტზე თქვენ დარეგისტრირებული.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'შეამოწმეთ, რომ თქვენ არ ხართ რობოტი'; $lang['CAPTCHA_WRONG'] = 'თქვენ შეიძლება არ ადასტურებენ, რომ თქვენ არ ხართ რობოტი'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha არ მიმდინარეობს სრულად configured

      if თქვენ არ უკვე გამომუშავებული გასაღებები, თქვენ შეგიძლიათ ეს გააკეთოთ https://www.google.com/recaptcha/admin.
      After თქვენ გენერირება გასაღებები, თქვენ უნდა დააყენოს მათ ფაილი ბიბლიოთეკა/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/kk/main.php b/library/language/kk/main.php index 0dd7e4042..310d30f96 100644 --- a/library/language/kk/main.php +++ b/library/language/kk/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'тек супер әкімшілері үшін $lang['LOGS'] = 'Тақырып тарихы'; $lang['FORUM_LOGS'] = 'Тарих Форум'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'дизайнер'; $lang['LAST_IP'] = 'Өткен IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'тоқтатты'; $lang['DL_UPD'] = 'UPD:'; $lang['DL_INFO'] = 'ағымдағы session
      үшін деректер only көрсетеді'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin кейінгі алғашқы'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'Сіз енгізген аты тыйым мүм $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Көрсетуді доғару аты Әкімшілігінің оралу үшін %sHere%s басыңыз'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'нұсқа ақпарат'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'сайт картасы басқару'; $lang['SITEMAP_CREATED'] = 'Сайт картасы құрылды'; $lang['SITEMAP_AVAILABLE'] = 'және қол жетімді болып табылады'; $lang['SITEMAP_NOT_CREATED'] = 'Сайт картасы әлі құрылды'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'іздеу жүйесі туралы хабарлама'; -$lang['SITEMAP_SENT'] = 'аяқталды жіберу'; -$lang['SITEMAP_ERROR'] = 'қате жіберу'; $lang['SITEMAP_OPTIONS'] = 'Опциялар'; $lang['SITEMAP_CREATE'] = 'Жасау / Сайт картасы жаңарту'; -$lang['SITEMAP_NOTIFY'] = 'Сайт картасы жаңа нұсқасы туралы хабарлау іздеу жүйелері'; $lang['SITEMAP_WHAT_NEXT'] = 'Әрі қарай не істеу керек?'; $lang['SITEMAP_GOOGLE_1'] = 'Сіздің Google тіркелгісін пайдаланып Google Webmaster сіздің сайты тіркеңіз.'; $lang['SITEMAP_GOOGLE_2'] = 'Сіз тіркелген сайттың Add sitemap.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Егер сіз робот емес екенін тексеріңіз'; $lang['CAPTCHA_WRONG'] = 'Сіз робот емес екенін растай алмады,'; -$lang['CAPTCHA_SETTINGS'] = 'Егер сіз әлдеқашан кілттер жоқ, толық configured

      If

      ReCaptcha, сіз https оны істеуге болады жатқан жоқ: сіз кілттерді генерациялау //www.google.com/recaptcha/admin.
      After, сіз файл кітапхана / конфигурациялық оларды қою қажет .php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/ko/main.php b/library/language/ko/main.php index c5fd4262e..a29b0963b 100644 --- a/library/language/ko/main.php +++ b/library/language/ko/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = '이 옵션만을 위한 최고 관리자'; $lang['LOGS'] = '항목에서 역사'; $lang['FORUM_LOGS'] = '역사 포럼'; -$lang['AUTOCLEAN'] = '자동 청소:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = '디자이너'; $lang['LAST_IP'] = '마지막으로 IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = '을 중지'; $lang['DL_UPD'] = '이트: '; $lang['DL_INFO'] = '데이터 only 현재 session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = '핀 첫 번째 게시물'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = '이름을 입력할 수 없습 허용되지 않 $lang['CLICK_RETURN_DISALLOWADMIN'] = '클릭 %sHere%s 하는 반품을 허용하지 않는 사용자 이름 관리'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = '버전 정보'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = '사이트맵 관리'; $lang['SITEMAP_CREATED'] = '사이트맵 작성'; $lang['SITEMAP_AVAILABLE'] = '여기에서 다운로드 가능합니다'; $lang['SITEMAP_NOT_CREATED'] = '사이트맵은 아직 생성'; -$lang['SITEMAP_NOTIFY_SEARCH'] = '알림이 검색 엔진'; -$lang['SITEMAP_SENT'] = '보내기를 완료'; -$lang['SITEMAP_ERROR'] = '보내는 오류'; $lang['SITEMAP_OPTIONS'] = '옵션'; $lang['SITEMAP_CREATE'] = 'Create 업데이트/사이트 맵'; -$lang['SITEMAP_NOTIFY'] = '검색 엔진을 통지에 대해 새로운 버전의 사이트맵'; $lang['SITEMAP_WHAT_NEXT'] = '그 다음에 할 것은 무엇일까요?'; $lang['SITEMAP_GOOGLE_1'] = '귀하의 사이트에 등록에서 Google WebmasterGoogle 계정을 사용하여합니다.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap 의 사이트에 등록합니다.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = '체크인되지 않는 로봇'; $lang['CAPTCHA_WRONG'] = '을 확인할 수없는 당신이하지 않는 로봇'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha 되지 않는 완전히 configured

      if 하지 않은 이미 생성된 열쇠를 당신에 그것을 할 수 있습니다 https://www.google 니다.com/recaptcha/admin 니다.
      After 를 생성하는 키를,당신은 그들을 넣어서 파일의 라이브러리/config 니다.php 니다.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/lt/main.php b/library/language/lt/main.php index a985834cb..8c0e7de88 100644 --- a/library/language/lt/main.php +++ b/library/language/lt/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Šis variantas yra tik super administratoriams' $lang['LOGS'] = 'Temos istorija'; $lang['FORUM_LOGS'] = 'Istorijos Forumas'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Dizaineris'; $lang['LAST_IP'] = 'Paskutinis IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'sustojo'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'rodo duomenų only einamųjų session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin pirmą postą'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'Pavadinimas įvedėte negalėjo būti atmestas. T $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Spustelėkite %sHere%s grįžti į Neleisti vartotojo Vardą Administracija'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Versijos Informacija'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Tvarkyti sitemap'; $lang['SITEMAP_CREATED'] = 'Sitemap sukurta'; $lang['SITEMAP_AVAILABLE'] = 'ir yra'; $lang['SITEMAP_NOT_CREATED'] = 'Svetainės dar nėra sukurtas'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Pranešimo paieškos'; -$lang['SITEMAP_SENT'] = 'siųsti baigtas'; -$lang['SITEMAP_ERROR'] = 'siunčiant klaida'; $lang['SITEMAP_OPTIONS'] = 'Funkcijos'; $lang['SITEMAP_CREATE'] = 'Sukurti / atnaujinti sitemap'; -$lang['SITEMAP_NOTIFY'] = 'Pranešti apie paieškos nauja versija, sitemap'; $lang['SITEMAP_WHAT_NEXT'] = 'Ką daryti toliau?'; $lang['SITEMAP_GOOGLE_1'] = 'Užregistruokite savo svetainę Google Webmaster naudodami savo "Google" paskyros.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap svetainės užsiregistravote.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Patikrinkite, kad jūs esate ne robotas'; $lang['CAPTCHA_WRONG'] = 'Jūs negalėjo patvirtinti, kad jūs esate ne robotas'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha ne visiškai configured

      if jūs neturite jau sukurtas klavišus, galite tai padaryti dėl https://www."google".com/recaptcha/admin.
      After galite generuoti klavišus, jums reikia įdėti juos į failą, biblioteka/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/lv/main.php b/library/language/lv/main.php index 9d434357e..e684085b2 100644 --- a/library/language/lv/main.php +++ b/library/language/lv/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Šo opciju tikai tad, super admins'; $lang['LOGS'] = 'Tēmu vēsture'; $lang['FORUM_LOGS'] = 'Foruma Vēsture'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Dizainers'; $lang['LAST_IP'] = 'Pēdējo IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'apturēts'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'rāda dati only kārtējā session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin pirmo post'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'Ievadīto nosaukumu varētu nebūt neattaisno. T $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Noklikšķiniet uz %sHere%s atgriezties, lai Aizliegtu Lietotājvārdu Administrācija'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Versijas Informācija'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Pārvaldīt vietnes karte'; $lang['SITEMAP_CREATED'] = 'Sitemap izveidots'; $lang['SITEMAP_AVAILABLE'] = 'un ir pieejams'; $lang['SITEMAP_NOT_CREATED'] = 'Sitemap, vēl nav izveidota'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Paziņojums par meklētājprogrammas'; -$lang['SITEMAP_SENT'] = 'nosūtīt pabeigts'; -$lang['SITEMAP_ERROR'] = 'sūtīšanas kļūda'; $lang['SITEMAP_OPTIONS'] = 'Iespējas'; $lang['SITEMAP_CREATE'] = 'Izveidot / atjaunināt sitemap'; -$lang['SITEMAP_NOTIFY'] = 'Paziņot meklētājprogrammas par jauno versiju no vietnes karte'; $lang['SITEMAP_WHAT_NEXT'] = 'Ko darīt tālāk?'; $lang['SITEMAP_GOOGLE_1'] = 'Reģistrējiet savu vietnē Google Webmaster, izmantojot savu Google kontu.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap vietas, reģistrējies.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Pārbaudiet, ka jums nav robots'; $lang['CAPTCHA_WRONG'] = 'Jūs varētu apstiprināt, ka jums nav robots'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha nav pilnībā configured

      if jums jau nav radīts taustiņus, jūs varat darīt to par https://www.google.com/recaptcha/admin.
      After jums radīt atslēgas, jums ir nepieciešams, lai tos failu bibliotēka/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/nl/main.php b/library/language/nl/main.php index b6d5a90fe..58b065730 100644 --- a/library/language/nl/main.php +++ b/library/language/nl/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Deze optie is alleen voor super admins'; $lang['LOGS'] = 'Onderwerp geschiedenis'; $lang['FORUM_LOGS'] = 'Geschiedenis Forum'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Ontwerper'; $lang['LAST_IP'] = 'Laatste IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'gestopt'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'toont gegevens only voor de huidige session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin eerste post'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'De naam die u hebt ingevoerd kan niet worden verw $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Klik op %sHere%s om terug te keren naar het Verbieden van Gebruikersnaam Administratie'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Versie-Informatie'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Beheren sitemap'; $lang['SITEMAP_CREATED'] = 'Sitemap gemaakt'; $lang['SITEMAP_AVAILABLE'] = 'en is verkrijgbaar bij'; $lang['SITEMAP_NOT_CREATED'] = 'Een Sitemap is nog niet gemaakt'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'De kennisgeving van de zoekmachine'; -$lang['SITEMAP_SENT'] = 'verzenden voltooid'; -$lang['SITEMAP_ERROR'] = 'verzenden fout'; $lang['SITEMAP_OPTIONS'] = 'Opties'; $lang['SITEMAP_CREATE'] = 'Maken / actualiseren van de sitemap'; -$lang['SITEMAP_NOTIFY'] = 'De hoogte zoekmachines over de nieuwe versie van de sitemap'; $lang['SITEMAP_WHAT_NEXT'] = 'Wat te doen?'; $lang['SITEMAP_GOOGLE_1'] = 'Het registreren van uw site bij Google Webmaster met uw Google-account.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap van de site die u geregistreerd.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Controleren dat u geen robot'; $lang['CAPTCHA_WRONG'] = 'Je kon niet bevestigen dat u geen robot'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha niet volledig configured

      if u nog niet al zijn gegenereerd, de toetsen, je kunt het doen op https://www.van google.com/recaptcha/admin.
      After u het genereren van de sleutels moet je ze in de file library/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/no/main.php b/library/language/no/main.php index 9aabb2604..8adc3cb96 100644 --- a/library/language/no/main.php +++ b/library/language/no/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Dette alternativet bare for super admins'; $lang['LOGS'] = 'Emnet historie'; $lang['FORUM_LOGS'] = 'Historie Forumet'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Designer'; $lang['LAST_IP'] = 'Siste IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'stoppet'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'viser data only for gjeldende session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin første innlegg'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'Navnet du har angitt, ikke kunne bli forbudt. Det $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Klikk %sHere%s for å gå tilbake til å Nekte Brukernavn Administrasjon'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Versjon Informasjon'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Administrere sitemap'; $lang['SITEMAP_CREATED'] = 'Sitemap opprettet'; $lang['SITEMAP_AVAILABLE'] = 'og er tilgjengelig på'; $lang['SITEMAP_NOT_CREATED'] = 'Sitemap er ennå ikke opprettet'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Varsling av søkemotoren'; -$lang['SITEMAP_SENT'] = 'send fullført'; -$lang['SITEMAP_ERROR'] = 'sender feil'; $lang['SITEMAP_OPTIONS'] = 'Valg'; $lang['SITEMAP_CREATE'] = 'Opprette / oppdatere sitemap'; -$lang['SITEMAP_NOTIFY'] = 'Informere søkemotorene om nye versjonen av sitemap'; $lang['SITEMAP_WHAT_NEXT'] = 'Hva du skal gjøre neste?'; $lang['SITEMAP_GOOGLE_1'] = 'Registrer nettstedet ditt på Google Webmaster ved hjelp av Google-kontoen din.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap av nettstedet du registrerte.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Sjekk at du ikke er en robot'; $lang['CAPTCHA_WRONG'] = 'Du kunne ikke bekrefte at du ikke er en robot'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha ikke er fullt ut configured

      if du ikke allerede har generert tastene, kan du gjøre det på https://www.google.com/recaptcha/admin.
      After du generere nøkler, må du sette dem på fil-bibliotek/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/pl/main.php b/library/language/pl/main.php index ab61430ad..6bff84c2a 100644 --- a/library/language/pl/main.php +++ b/library/language/pl/main.php @@ -1607,7 +1607,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Ta opcja jest tylko dla super adminów'; $lang['LOGS'] = 'Historia tematu'; $lang['FORUM_LOGS'] = 'Forum Historii'; -$lang['AUTOCLEAN'] = 'Automatyczne czyszczenie:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Projektant'; $lang['LAST_IP'] = 'Ostatni IP:'; @@ -1882,6 +1882,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'zatrzymał się'; $lang['DL_UPD'] = 'упд: '; $lang['DL_INFO'] = 'pokazuje dane only dla bieżącego session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Zamocować pierwszy post'; @@ -2325,14 +2328,6 @@ $lang['DISALLOWED_ALREADY'] = 'Wprowadzona nazwa nie może być odrzucona. To al $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Kliknij %sHere%s zwrócić zakazać Administracji Nazwę użytkownika'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Informacje O Wersji'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -3001,12 +2996,8 @@ $lang['SITEMAP_ADMIN'] = 'Zarządzanie Mapa strony'; $lang['SITEMAP_CREATED'] = 'Mapa strony stworzony'; $lang['SITEMAP_AVAILABLE'] = 'i jest dostępna na'; $lang['SITEMAP_NOT_CREATED'] = 'Mapa strony jeszcze nie powstała'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Powiadamianie wyszukiwarek'; -$lang['SITEMAP_SENT'] = 'prześlij wypełniony'; -$lang['SITEMAP_ERROR'] = 'błąd wysyłania'; $lang['SITEMAP_OPTIONS'] = 'Opcje'; $lang['SITEMAP_CREATE'] = 'Tworzenie / aktualizacja serwisu'; -$lang['SITEMAP_NOTIFY'] = 'Poinformować wyszukiwarki o nowej wersji serwisu'; $lang['SITEMAP_WHAT_NEXT'] = 'Co robić dalej?'; $lang['SITEMAP_GOOGLE_1'] = 'Zarejestrować swoją stronę w Google Webmaster za pomocą konta Google.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap strony są zarejestrowane.'; @@ -3088,7 +3079,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Upewnij się, że nie Jesteś robotem'; $lang['CAPTCHA_WRONG'] = 'Czy mógłbyś potwierdzić, że nie Jesteś robotem'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha nie będąc w pełni configured

      if jeszcze nie wygenerowało klucze, możesz zrobić to na https://GSP.google.com/рекапчу/admin.
      After można wygeneruje klucze, musisz umieścić je w pliku Library/konfig.w PHP.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/pt/main.php b/library/language/pt/main.php index 47a7a2bab..83efdb787 100644 --- a/library/language/pt/main.php +++ b/library/language/pt/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Esta opção apenas para super administradores' $lang['LOGS'] = 'Tópico história'; $lang['FORUM_LOGS'] = 'Histórico Do Fórum'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Designer'; $lang['LAST_IP'] = 'Última IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'parado'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'mostra dados only para o atual session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin primeiro post'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'O nome que você inseriu não pôde ser anulado. $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Clique %sHere%s para voltar a Proibir nome de usuário de Administração'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Informações De Versão'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Gerenciar sitemap'; $lang['SITEMAP_CREATED'] = 'Sitemap criado'; $lang['SITEMAP_AVAILABLE'] = 'e está disponível em'; $lang['SITEMAP_NOT_CREATED'] = 'Sitemap ainda não é criado'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Notificação do motor de busca'; -$lang['SITEMAP_SENT'] = 'enviar concluída'; -$lang['SITEMAP_ERROR'] = 'erro de envio'; $lang['SITEMAP_OPTIONS'] = 'Opções'; $lang['SITEMAP_CREATE'] = 'Criar / atualizar o sitemap'; -$lang['SITEMAP_NOTIFY'] = 'Notificar motores de pesquisa sobre a nova versão do sitemap'; $lang['SITEMAP_WHAT_NEXT'] = 'O que fazer em seguida?'; $lang['SITEMAP_GOOGLE_1'] = 'Registe o seu site em Google Webmaster usando sua conta do Google.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap do site que você registrou.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Verifique se que você não é um robô'; $lang['CAPTCHA_WRONG'] = 'Você não podia confirmar que você não é um robô'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha não sendo totalmente configured

      if você ainda não tenha gerado as chaves, você pode fazê-lo em https://www.o google.com/recaptcha/admin.
      After você gerar as chaves, você precisa colocá-los no arquivo de biblioteca/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/ro/main.php b/library/language/ro/main.php index a5680858b..b843e3f76 100644 --- a/library/language/ro/main.php +++ b/library/language/ro/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Această opțiune doar pentru super-administrat $lang['LOGS'] = 'Subiect istorie'; $lang['FORUM_LOGS'] = 'Istoria Forum'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Designer'; $lang['LAST_IP'] = 'Ultimul IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'oprit'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'prezinta date only pentru curent session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin primul post'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'Numele introdus nu poate fi anulat. Fie există d $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Faceți clic pe %sHere%s să se întoarcă pentru a Interzice numele de Utilizator de Administrare'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Informațiile De Versiune'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Gestiona sitemap'; $lang['SITEMAP_CREATED'] = 'Sitemap l-a creat'; $lang['SITEMAP_AVAILABLE'] = 'și este disponibil în'; $lang['SITEMAP_NOT_CREATED'] = 'Sitemap-ul nu este creat încă'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Notificare de motorul de căutare'; -$lang['SITEMAP_SENT'] = 'trimite completat'; -$lang['SITEMAP_ERROR'] = 'trimiterea de eroare'; $lang['SITEMAP_OPTIONS'] = 'Opțiuni'; $lang['SITEMAP_CREATE'] = 'Creare / actualizare sitemap'; -$lang['SITEMAP_NOTIFY'] = 'Anunta motoarele de căutare despre noua versiune de sitemap'; $lang['SITEMAP_WHAT_NEXT'] = 'Ce să faci în continuare?'; $lang['SITEMAP_GOOGLE_1'] = 'Iti inscrii site-ul la Google Webmaster folosind contul Google.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap de site-ați înregistrat.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Verificați că nu sunt un robot'; $lang['CAPTCHA_WRONG'] = 'Tu nu a putut confirma că nu sunt un robot'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha a nu fi pe deplin configured

      if nu te-ai generat deja cheile, o poti face pe https://www.google.com/recaptcha/admin.
      After genera cheile, trebuie să le pună la fișierul bibliotecă/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/ru/main.php b/library/language/ru/main.php index e0f90dd57..d7bd24f3b 100644 --- a/library/language/ru/main.php +++ b/library/language/ru/main.php @@ -25,7 +25,7 @@ $lang['POSTS_SHORT'] = 'Сообщ.'; $lang['POSTED'] = 'Добавлено'; $lang['USERNAME'] = 'Имя'; $lang['PASSWORD'] = 'Пароль'; -$lang['PASSWORD_SHOW_BTN'] = 'Показывать пароли'; +$lang['PASSWORD_SHOW_BTN'] = 'Показать пароль'; $lang['EMAIL'] = 'Email'; $lang['PM'] = 'ЛС'; $lang['AUTHOR'] = 'Автор'; @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Эта опция доступна только $lang['LOGS'] = 'История темы'; $lang['FORUM_LOGS'] = 'История форума'; -$lang['AUTOCLEAN'] = 'Автоочистка'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Конструктор'; $lang['LAST_IP'] = 'Последний IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'Остановил Скачивание/Раздачу'; $lang['DL_UPD'] = 'Подключен: '; $lang['DL_INFO'] = 'показаны данные только за текущую сессию'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Закрепить первый пост'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'Имя, которое вы пытаетесь з $lang['CLICK_RETURN_DISALLOWADMIN'] = '%sВернуться к управлению запрещенными именами%s'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'Проверка целостности файлов TorrentPier завершилась успешно!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Некоторые файлы TorrentPier не прошли проверку целостности!'; -$lang['INTEGRITY_CHECKED'] = 'Общее количество проверенных файлов: %s, из которых прошли проверку целостности: %s.'; -$lang['INTEGRITY_LAST_CHECK'] = 'Последняя проверка: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Восстановить поврежденные файлы при следующей проверке целостности?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Поврежденные файлы будут восстановлены при следующей проверке целостности!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Информация о версии TorrentPier'; $lang['UPDATE_AVAILABLE'] = 'Доступно обновление'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Управление картой сайта (sitemap) $lang['SITEMAP_CREATED'] = 'Файл sitemap создан'; $lang['SITEMAP_AVAILABLE'] = 'и доступен по адресу'; $lang['SITEMAP_NOT_CREATED'] = 'Файл sitemap еще не создан'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Уведомление поисковой системы'; -$lang['SITEMAP_SENT'] = 'отправка завершена'; -$lang['SITEMAP_ERROR'] = 'ошибка отправки'; $lang['SITEMAP_OPTIONS'] = 'Опции'; $lang['SITEMAP_CREATE'] = 'Создать / обновить файл sitemap'; -$lang['SITEMAP_NOTIFY'] = 'Уведомить поисковые системы о наличии новой версии файла sitemap'; $lang['SITEMAP_WHAT_NEXT'] = 'Что сделать дальше?'; $lang['SITEMAP_GOOGLE_1'] = 'Зарегистрируйте ваш сайт в Google Webmaster с использованием вашей учетной записи Google.'; $lang['SITEMAP_GOOGLE_2'] = 'Добавьте файл sitemap зарегистрированного вами сайта.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Проверка, что вы не робот'; $lang['CAPTCHA_WRONG'] = 'Вы не смогли подтвердить, что вы не робот'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha настроена не полностью

      Если вы еще не сгенерировали ключи, вы можете это сделать на странице https://www.google.com/recaptcha/admin.
      После того, как вы сгенерируете ключи, нужно прописать их в файл library/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Адрес для ответных писем'; diff --git a/library/language/sk/main.php b/library/language/sk/main.php index f478dc34d..d8b3280db 100644 --- a/library/language/sk/main.php +++ b/library/language/sk/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Táto možnosť len pre super admins'; $lang['LOGS'] = 'Tému história'; $lang['FORUM_LOGS'] = 'História Fóra'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Dizajnér'; $lang['LAST_IP'] = 'Posledná IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'zastavil'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'zobrazuje údaje only pre aktuálnu session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin prvý príspevok'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'Meno, ktoré ste zadali, by nemali byť povolené $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Kliknite na tlačidlo %sHere%s vrátiť Zakázať Meno Správy'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Informácie O Verzii'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Spravovať sitemap'; $lang['SITEMAP_CREATED'] = 'Sitemap vytvorené'; $lang['SITEMAP_AVAILABLE'] = 'a je k dispozícii na'; $lang['SITEMAP_NOT_CREATED'] = 'Sitemap je ešte nevytvorili'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Oznámenie pre vyhľadávače'; -$lang['SITEMAP_SENT'] = 'poslať vyplnený'; -$lang['SITEMAP_ERROR'] = 'odosielanie chyba'; $lang['SITEMAP_OPTIONS'] = 'Možnosti'; $lang['SITEMAP_CREATE'] = 'Vytvorenie / aktualizácia súboru sitemap'; -$lang['SITEMAP_NOTIFY'] = 'Informuje vyhľadávacie nástroje o nových verziách sitemap'; $lang['SITEMAP_WHAT_NEXT'] = 'Čo robiť ďalej?'; $lang['SITEMAP_GOOGLE_1'] = 'Zaregistrujte svoje stránky na Google Webmaster pomocou svojho účtu Google.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap stránok ste sa zaregistrovali.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Skontrolujte, že nie ste robot'; $lang['CAPTCHA_WRONG'] = 'Ste nemohli potvrdiť, že nie ste robot'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha nie je plne configured

      if ešte nemáte vytvorený tlačidlá, môžete to urobiť na https://www.google.com/recaptcha/admin.
      After si vygenerovať tlačidiel, musíte ich vložiť na súbor knižnice/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/sl/main.php b/library/language/sl/main.php index 98818f158..4f2f34fb0 100644 --- a/library/language/sl/main.php +++ b/library/language/sl/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Ta možnost je na voljo samo za super administr $lang['LOGS'] = 'Temo zgodovina'; $lang['FORUM_LOGS'] = 'Zgodovina Foruma'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Oblikovalec'; $lang['LAST_IP'] = 'Zadnji IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'ustavi'; $lang['DL_UPD'] = 'epd: '; $lang['DL_INFO'] = 'prikazani podatki only za trenutno session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Koda Pin prva objava'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'Ime, ki ste ga vnesli, ni mogoče prepovedati. Bo $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Kliknite %sHere%s za vrnitev, da Zavrne uporabniško Ime Uprava'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Informacije O Različici'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Upravljanje kazalo'; $lang['SITEMAP_CREATED'] = 'Kazalo ustvarili'; $lang['SITEMAP_AVAILABLE'] = 'in je na voljo na'; $lang['SITEMAP_NOT_CREATED'] = 'Kazalo še ni ustvarjena'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Prijava iskalnik'; -$lang['SITEMAP_SENT'] = 'pošlji končana'; -$lang['SITEMAP_ERROR'] = 'pošiljanje napaka'; $lang['SITEMAP_OPTIONS'] = 'Možnosti'; $lang['SITEMAP_CREATE'] = 'Ustvarite / posodobite kazalo'; -$lang['SITEMAP_NOTIFY'] = 'Obvesti iskalniki o novi različici kazalo'; $lang['SITEMAP_WHAT_NEXT'] = 'Kaj je naslednji korak?'; $lang['SITEMAP_GOOGLE_1'] = 'Registrirajte svoje mesto na Google Webmaster z uporabo Google računa.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap spletnega mesta ste se registrirali.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Preverite, da niste robot'; $lang['CAPTCHA_WRONG'] = 'Si ni mogel potrditi, da niste robot'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha ne bi v celoti configured

      if še niste ustvarjeni tipk, lahko to storite na https://www.google.com/recaptcha/admin.
      After ustvarite tipke, boste morali, da jih na datoteke knjižnica/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/sq/main.php b/library/language/sq/main.php index 59d24f820..3a1ea6e52 100644 --- a/library/language/sq/main.php +++ b/library/language/sq/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Ky opsion vetëm për administratorët super'; $lang['LOGS'] = 'Temë e historisë'; $lang['FORUM_LOGS'] = 'Historia E Forumit'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Projektuesi'; $lang['LAST_IP'] = 'Të fundit IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'u ndal'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'tregon të dhënat only për aktual session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin parë pas'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'Emri që keni futur nuk mund të jenë të paleju $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Kliko %sHere%s të kthehen për të Lejoj Emrin e Administratës'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Version Informacion'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Menaxhuar sitemap'; $lang['SITEMAP_CREATED'] = 'Sitemap krijuar'; $lang['SITEMAP_AVAILABLE'] = 'dhe është në dispozicion në'; $lang['SITEMAP_NOT_CREATED'] = 'Sitemap nuk është krijuar ende'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Njoftimi i search engine'; -$lang['SITEMAP_SENT'] = 'dërgoni përfunduar'; -$lang['SITEMAP_ERROR'] = 'dërgimi gabim'; $lang['SITEMAP_OPTIONS'] = 'Opsionet'; $lang['SITEMAP_CREATE'] = 'Krijo / update sitemap'; -$lang['SITEMAP_NOTIFY'] = 'Të njoftojë motorët e kërkimit në lidhje me version të ri të sitemap'; $lang['SITEMAP_WHAT_NEXT'] = 'Çfarë duhet të bëjmë?'; $lang['SITEMAP_GOOGLE_1'] = 'Regjistrohuni në faqen tuaj në Google Webmaster tuaj duke përdorur llogarinë Google.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap të faqes që ju të regjistruar.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Kontrolloni se ju nuk jeni një robot'; $lang['CAPTCHA_WRONG'] = 'Ju nuk mund të konfirmoni se ju nuk jeni një robot'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha nuk janë plotësisht të configured

      if ju nuk e keni tashmë të krijuara çelësat, ju mund të bëni atë në https://www.google.com/recaptcha/admin.
      After ju të gjenerojë butonat, ju keni nevojë për të vënë ato në dosjen library/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/sr/main.php b/library/language/sr/main.php index b2efdf294..cf00e44cb 100644 --- a/library/language/sr/main.php +++ b/library/language/sr/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Ова опција само за супер а $lang['LOGS'] = 'Историја теме'; $lang['FORUM_LOGS'] = 'Форум Историје'; -$lang['AUTOCLEAN'] = 'Автоочистка:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Дизајнер'; $lang['LAST_IP'] = 'Последњи ИП:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'престао'; $lang['DL_UPD'] = 'упд: '; $lang['DL_INFO'] = 'приказује податке only за текућу session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Да поправи први пост'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'Дозвола име не може да буде $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Кликните %sHere%s врати забрани Управе корисничко Име'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Информације О Верзији'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2998,12 +2993,8 @@ $lang['SITEMAP_ADMIN'] = 'Управљање Мапа сајта'; $lang['SITEMAP_CREATED'] = 'Мапа је креирана'; $lang['SITEMAP_AVAILABLE'] = 'и доступна је на'; $lang['SITEMAP_NOT_CREATED'] = 'Мапа сајта још увек није успостављен'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Обавештење претраживача'; -$lang['SITEMAP_SENT'] = 'пошаљите попуњен'; -$lang['SITEMAP_ERROR'] = 'грешка слања'; $lang['SITEMAP_OPTIONS'] = 'Опције'; $lang['SITEMAP_CREATE'] = 'Израда / ажурирање сајта'; -$lang['SITEMAP_NOTIFY'] = 'Обавести претраживачи о новој верзији сајта'; $lang['SITEMAP_WHAT_NEXT'] = 'Шта да радим даље?'; $lang['SITEMAP_GOOGLE_1'] = 'Региструјте свој сајт у Google Webmaster помоћу Google налога.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap сајта сте регистровани.'; @@ -3085,7 +3076,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Уверите се да нисте робот'; $lang['CAPTCHA_WRONG'] = 'Нисте могли да потврдите да нисте робот'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha не буду у потпуности configured

      if још увек није генерисао кључеве, можете то урадити на https://ВСП.гоогле.цом/рекапчу/admin.
      After сте генерируете тастери, потребно је да их стави у датотеку Либрари/цонфиг.у ПХП-у.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/sv/main.php b/library/language/sv/main.php index b96486f07..0b79e3063 100644 --- a/library/language/sv/main.php +++ b/library/language/sv/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Detta alternativ endast för superadministratö $lang['LOGS'] = 'Ämnet historia'; $lang['FORUM_LOGS'] = 'Historia Forum'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Designer'; $lang['LAST_IP'] = 'Sista IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'slutat'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'visar data only för den aktuella session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin-första inlägget'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'Det namn du angett kan inte vara otillåten. Det $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Klicka %sHere%s att återvända för att ta bort Användarnamn Administration'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Version Information'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Hantera sitemap'; $lang['SITEMAP_CREATED'] = 'Sitemap skapas'; $lang['SITEMAP_AVAILABLE'] = 'och finns tillgänglig på'; $lang['SITEMAP_NOT_CREATED'] = 'Sitemap är ännu inte skapat'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Anmälan av sökmotorn'; -$lang['SITEMAP_SENT'] = 'skicka klar'; -$lang['SITEMAP_ERROR'] = 'skicka fel'; $lang['SITEMAP_OPTIONS'] = 'Alternativ'; $lang['SITEMAP_CREATE'] = 'Skapa / uppdatera sitemap'; -$lang['SITEMAP_NOTIFY'] = 'Meddela sökmotorer om nya versionen av sitemap'; $lang['SITEMAP_WHAT_NEXT'] = 'Vad göra härnäst?'; $lang['SITEMAP_GOOGLE_1'] = 'Registrera din webbplats på Google Webmaster med ditt Google-konto.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap av webbplatsen att du registrerat dig.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Kontrollera att du inte är en robot'; $lang['CAPTCHA_WRONG'] = 'Du kan inte bekräfta att du inte är en robot'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha inte helt configured

      if du inte redan genererade nycklar, kan du göra det på https://www.google.kom/recaptcha/admin.
      After du generera nycklar du behöver för att sätta dem på arkiv-bibliotek/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/tg/main.php b/library/language/tg/main.php index 052b8437a..9d82da160 100644 --- a/library/language/tg/main.php +++ b/library/language/tg/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Ин хосият танҳо барои admins $lang['LOGS'] = 'Мавзӯъ таърих'; $lang['FORUM_LOGS'] = 'Таърихи Форум'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'лоиҳакаш'; $lang['LAST_IP'] = 'Last IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'қатъ'; $lang['DL_UPD'] = 'Фосилаи:'; $lang['DL_INFO'] = 'нишон only маълумот барои session ҷорӣ'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin аввали баъди'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'Номи шумо ворид карда наме $lang['CLICK_RETURN_DISALLOWADMIN'] = '%sHere%s ангушт занед барои баргаштан ба иозат Маъмурияти Логин'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Маълумот Version'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Идоракунии талаф дод'; $lang['SITEMAP_CREATED'] = 'Харитаи офаридааст'; $lang['SITEMAP_AVAILABLE'] = 'ва дар дастрас аст'; $lang['SITEMAP_NOT_CREATED'] = 'Харитаи ҳанӯз офарида нашудааст'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Огоҳинома аз муҳаррики ҷустуҷӯ'; -$lang['SITEMAP_SENT'] = 'ирсол ба итмом'; -$lang['SITEMAP_ERROR'] = 'хатои фиристодани'; $lang['SITEMAP_OPTIONS'] = 'Имконот'; $lang['SITEMAP_CREATE'] = 'Эҷоди / навсозии талаф дод'; -$lang['SITEMAP_NOTIFY'] = 'Огоҳ системаҳои ҷустуҷӯӣ дар бораи нави талаф дод'; $lang['SITEMAP_WHAT_NEXT'] = 'Чӣ бояд кард навбатӣ?'; $lang['SITEMAP_GOOGLE_1'] = 'Ба Реестри сомонаи Шумо дар Google Webmaster истифодаи ҳисоби Google шумо.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap сайти шумо ба қайд гирифта.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Санҷед, ки шумо як робот не'; $lang['CAPTCHA_WRONG'] = 'Шумо карда наметавонистанд тасдиқ мекунанд, ки шумо ҳастанд робот не'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha будан нест, пурра configured

      If шумо аллакай тавлидшуда калидҳои нашуда бошад, шумо метавонед онро дар https кор: //www.google.com/recaptcha/admin.
      After шумо тавлид калидҳои, ба шумо лозим аст, ки онҳоро дар китобхонаи файл / Танзимоти .php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/th/main.php b/library/language/th/main.php index b97ad618d..a9823aa83 100644 --- a/library/language/th/main.php +++ b/library/language/th/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'เลือกตัวเลือกนี $lang['LOGS'] = 'เรื่องประวัติศาสตร์'; $lang['FORUM_LOGS'] = 'ประวัติศาสตร์ชุ'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'ดีไซเนอร์'; $lang['LAST_IP'] = 'สุดท้ายเลขไอพี:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'หยุด'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = 'แสดงข้อมูล only สำหรับปัจจุบัน session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'เข็มรโพสครั้งแรก'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'ชื่อที่คุณป้อนมา $lang['CLICK_RETURN_DISALLOWADMIN'] = 'คลิก %sHere%s จะกลับมาออนชื่อผู้ใช้ไม่อนุญาตผู้บริหาร'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'ข้อมูลของรุ่น'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'จัดการ sitemap'; $lang['SITEMAP_CREATED'] = 'Sitemap กสร้างขึ้น'; $lang['SITEMAP_AVAILABLE'] = 'และตอนที่มีอยู่'; $lang['SITEMAP_NOT_CREATED'] = 'Sitemap ตอนนี้ยังไม่ได้ถูกสร้าง'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'การแจ้งให้ทราบของเครื่องมือสำหรับค้นหา name'; -$lang['SITEMAP_SENT'] = 'ส่งเสร็จสมบูรณ์'; -$lang['SITEMAP_ERROR'] = 'กำลังส่งข้อผิดพลาด'; $lang['SITEMAP_OPTIONS'] = 'ตัวเลือก'; $lang['SITEMAP_CREATE'] = 'หรับสร้าง/ปรับปรุงที่ sitemap'; -$lang['SITEMAP_NOTIFY'] = 'แจ้งให้ทราบการค้นหาเครื่องยนต์มันเรื่องใหม่เวอร์ชั่นของ sitemap'; $lang['SITEMAP_WHAT_NEXT'] = 'ต้องทำอะไรต่อ?'; $lang['SITEMAP_GOOGLE_1'] = 'ลงทะเบียนของคุณเว็บไซต์ที่ Google Webmaster ใช้ของบัญชีผู้ใช้ของกูเกิ้ล.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap ของเว็บไซต์คุณจดทะเบียน'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'ตรวจสอบว่าคุณไม่ใช่หุ่นยนต์'; $lang['CAPTCHA_WRONG'] = 'คุณไม่สามารถยืนยันว่าคุณไม่ใช่หุ่นยนต์'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha การไม่เต็ม configured

      if คุณยังไม่ได้อยู่แล้วที่ถูกสร้างกุญแจคุณสามารถทำมัน https://qshortcut นเรียกว่า"กูเกิ้ล"com/recaptcha/admin
      After คุณสร้างกุญแจคุณต้องการให้พวกเขาที่โรงแฟ้มสมุด/config นphp น

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/tr/main.php b/library/language/tr/main.php index 2b8cd7a93..7dda73012 100644 --- a/library/language/tr/main.php +++ b/library/language/tr/main.php @@ -1608,7 +1608,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Sadece Süper yöneticiler için bu seçeneği' $lang['LOGS'] = 'Konu tarih'; $lang['FORUM_LOGS'] = 'Forum'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Tasarımcı'; $lang['LAST_IP'] = 'Son IP:'; @@ -1883,6 +1883,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'durdu'; $lang['DL_UPD'] = 'UDP: '; $lang['DL_INFO'] = 'veri only geçerli session için gösterir'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin ilk yazı'; @@ -2326,14 +2329,6 @@ $lang['DISALLOWED_ALREADY'] = 'Girdiğiniz adı izin verilmeyen olabilir. Ya zat $lang['CLICK_RETURN_DISALLOWADMIN'] = '%sHere%s Kullanıcı adı Yönetim izin Vermemek için geri dönmek için tıklayın'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Sürüm Bilgileri'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -3003,12 +2998,8 @@ $lang['SITEMAP_ADMIN'] = 'Site yönetmek'; $lang['SITEMAP_CREATED'] = 'Site haritası oluşturdu'; $lang['SITEMAP_AVAILABLE'] = 'mevcut ve de'; $lang['SITEMAP_NOT_CREATED'] = 'Site henüz oluşturulmadı'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Arama motoru bildirim'; -$lang['SITEMAP_SENT'] = 'gönderim tamamlandı'; -$lang['SITEMAP_ERROR'] = 'gönderme hatası'; $lang['SITEMAP_OPTIONS'] = 'Seçenekleri'; $lang['SITEMAP_CREATE'] = 'Oluştur / site haritası güncelleme'; -$lang['SITEMAP_NOTIFY'] = 'Site yeni versiyonu hakkında arama motorlarına bildirmek'; $lang['SITEMAP_WHAT_NEXT'] = 'Şimdi ne yapalım?'; $lang['SITEMAP_GOOGLE_1'] = 'Google Webmaster Google hesabınızı kullanarak siteye kayıt.'; $lang['SITEMAP_GOOGLE_2'] = 'Sitenin Add sitemap kayıtlı.'; @@ -3090,7 +3081,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Bir robot olmadığını kontrol edin'; $lang['CAPTCHA_WRONG'] = 'Bir robot olmadığını onaylamak değil mi'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha zaten anahtarları oluşturulur mi tam configured

      if olmak değil, https://www yapabilirsin.google.com/tuttum/admin.Anahtarları oluşturmak
      After, dosya Kütüphanesi/config onları koymak gerekir.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/uk/main.php b/library/language/uk/main.php index a65aa09ed..b0f32bc0e 100644 --- a/library/language/uk/main.php +++ b/library/language/uk/main.php @@ -277,8 +277,8 @@ $lang['SPOILER_HEAD'] = 'прихований текст'; $lang['SPOILER_CLOSE'] = 'згорнути'; $lang['PLAY_ON_CURPAGE'] = 'Почати відтворення на цій сторінці'; -$lang['EDITED_TIME_TOTAL'] = 'Last edited by %s on %s; edited %d time in total'; // Last edited by me on 12 Oct 2001; edited 1 time in total -$lang['EDITED_TIMES_TOTAL'] = 'Last edited by %s on %s; edited %d times in total'; // Last edited by me on 12 Oct 2001; edited 2 times in total +$lang['EDITED_TIME_TOTAL'] = 'Востаннє змінено %s (%s); всього редагувань: %d'; // Last edited by me on 12 Oct 2001; edited 1 time in total +$lang['EDITED_TIMES_TOTAL'] = 'Востаннє змінено %s (%s); всього редагувань: %d'; // Last edited by me on 12 Oct 2001; edited 2 times in total $lang['LOCK_TOPIC'] = 'Закрити тему'; $lang['UNLOCK_TOPIC'] = 'Розблокувати тему'; @@ -694,7 +694,7 @@ $lang['ORDER'] = 'Сортувати'; $lang['THANK_TOPIC'] = 'Проголосувати за цю тему'; $lang['THANKS_GRATITUDE'] = 'Ми цінуємо вашу вдячність'; $lang['LAST_LIKES'] = 'Останній голос'; -$lang['LIKE_OWN_POST'] = 'Ви не можете голосувати за свою тему'; +$lang['LIKE_OWN_POST'] = 'Ви не можете проголосувати за власну публікацію.'; $lang['NO_LIKES'] = 'Ще ніхто не проголосував'; $lang['LIKE_ALREADY'] = 'Ви вже проголосували за цю тему'; @@ -990,10 +990,10 @@ $lang['COUNTRY'] = 'Країна'; $lang['SET_OWN_COUNTRY'] = 'Вказати свою країну (вручну)'; $lang['COUNTRIES'] = [ 0 => 'Не вказано', - 'AD' => 'Andorra', - 'AE' => 'United Arab Emirates', - 'AF' => 'Afghanistan', - 'AG' => 'Antigua and Barbuda', + 'AD' => 'Андора', + 'AE' => 'Об\'єднані Арабські Емірати', + 'AF' => 'Афганістан', + 'AG' => 'Антиґуа і Барбуда', 'AI' => 'Anguilla', 'AL' => 'Албанія', 'AM' => 'Вірменія', @@ -1370,12 +1370,12 @@ $lang['BT_REG_FAIL'] = 'Не вдалося зареєструвати торе $lang['BT_REG_FAIL_SAME_HASH'] = 'Інший торрент з таким же info_hash вже зареєстрований'; $lang['BT_V1_ONLY_DISALLOWED'] = 'v1-only torrents have been disabled by the administrator at the moment, allowed: v2 and hybrids'; $lang['BT_V2_ONLY_DISALLOWED'] = 'v2-only torrents have been disabled by the administrator at the moment, allowed: v1 and hybrids'; -$lang['BT_FLIST'] = 'Files list'; +$lang['BT_FLIST'] = 'Список файлів'; $lang['BT_FLIST_LIMIT'] = 'Tracker settings do not allow to process lists with more than %d files. Current number is: %d'; $lang['BT_FLIST_BTMR_HASH'] = 'BTMR Hash'; $lang['BT_FLIST_BTMR_NOTICE'] = 'BitTorrent Merkle Root is a hash of a file embedded in torrents with BitTorrent v2 support, tracker users can extract, calculate them, also download deduplicated torrents using desktop tools such as Torrent Merkle Root Reader'; $lang['BT_FLIST_CREATION_DATE'] = 'Дата створення'; -$lang['BT_IS_PRIVATE'] = 'Private torrent'; +$lang['BT_IS_PRIVATE'] = 'Приватний торрент'; $lang['BT_FLIST_FILE_PATH'] = 'Path (%s)'; $lang['BT_FLIST_LINK_TITLE'] = 'File hashes | .torrent meta-info'; $lang['BT_FLIST_ANNOUNCERS_LIST'] = 'Announcers list'; @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Ця опція доступна тільки $lang['LOGS'] = 'Історія теми'; $lang['FORUM_LOGS'] = 'Історія форуму'; -$lang['AUTOCLEAN'] = 'Автоочищення'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Дизайнер'; $lang['LAST_IP'] = 'Остання IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'зупинено'; $lang['DL_UPD'] = 'Підключений: '; $lang['DL_INFO'] = 'показані дані тільки за поточну сесію'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Закріпити перший пост'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'Ім\'я, яке Ви намагаєтеся за $lang['CLICK_RETURN_DISALLOWADMIN'] = '%sПовернутися до керування забороненими іменами%s'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Інформація про версію'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Керування картою сайту (sitemap)'; $lang['SITEMAP_CREATED'] = 'Файл sitemap створений'; $lang['SITEMAP_AVAILABLE'] = 'і доступний за адресою'; $lang['SITEMAP_NOT_CREATED'] = 'Файл sitemap ще не створено'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Сповіщення пошукової системи'; -$lang['SITEMAP_SENT'] = 'надсилання завершено'; -$lang['SITEMAP_ERROR'] = 'помилка надсилання'; $lang['SITEMAP_OPTIONS'] = 'Опції'; $lang['SITEMAP_CREATE'] = 'Створити / оновити файл sitemap'; -$lang['SITEMAP_NOTIFY'] = 'Повідомити пошукові системи про наявність нової версії файлу sitemap'; $lang['SITEMAP_WHAT_NEXT'] = 'Що робити далі?'; $lang['SITEMAP_GOOGLE_1'] = 'Зареєструйте Ваш сайт на Google Webmaster з використанням Вашого облікового запису Google.'; $lang['SITEMAP_GOOGLE_2'] = 'Додати файл sitemap зареєстрованого Вами сайту.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Перевірка, що Ви не робот'; $lang['CAPTCHA_WRONG'] = 'Ви не змогли підтвердити, що Ви не робот'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha налаштована не повністю

      Якщо Ви ще не згенерували ключі, можете це зробити на сторінці https://www.google.com/recaptcha/admin.
      Після того, як Ви згенеруєте ключі, потрібно прописати їх у файл library/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Відповісти'; diff --git a/library/language/uz/main.php b/library/language/uz/main.php index 3c1635942..b68790b99 100644 --- a/library/language/uz/main.php +++ b/library/language/uz/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'faqat super rahbarlari uchun bu variant'; $lang['LOGS'] = 'Mavzu tarixi'; $lang['FORUM_LOGS'] = 'Tarix Forum'; -$lang['AUTOCLEAN'] = 'Amerika moli Opsiyonel:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'dizayner'; $lang['LAST_IP'] = 'Oxirgi IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'to\'xtadi'; $lang['DL_UPD'] = 'UPD:'; $lang['DL_INFO'] = 'joriy session
      uchun ma\'lumotlar only ko\'rsatadi'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin birinchi post'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'Siz kiritgan nom ruxsat etilmagan bo\'lmadi. Bu h $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Login Boshqaruvni taqiqlash qaytish uchun %sHere%s bosing'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Version Axborot'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'sayt xaritasi boshqarish'; $lang['SITEMAP_CREATED'] = 'Sayt xaritasi yaratildi'; $lang['SITEMAP_AVAILABLE'] = 'va mavjud'; $lang['SITEMAP_NOT_CREATED'] = 'Sayt xaritasi hali yaratilmagan emas'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'qidiruvi Xabarnoma'; -$lang['SITEMAP_SENT'] = 'yuborish yakunlandi'; -$lang['SITEMAP_ERROR'] = 'yuborish xato'; $lang['SITEMAP_OPTIONS'] = 'Options'; $lang['SITEMAP_CREATE'] = 'sayt xaritasi / yangilang yaratish'; -$lang['SITEMAP_NOTIFY'] = 'Sayt xaritasi yangi versiyasi haqida qidirish vositasiga bildiring'; $lang['SITEMAP_WHAT_NEXT'] = 'Keyingi nima qilish kerak?'; $lang['SITEMAP_GOOGLE_1'] = 'Google hisobi orqali Google Webmaster saytida ro\'yxatdan.'; $lang['SITEMAP_GOOGLE_2'] = 'sayt Add sitemap ro\'yxatdan.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Agar robot emas tekshiring'; $lang['CAPTCHA_WRONG'] = 'Siz bir robot emas, deb tasdiqlash mumkin emas'; -$lang['CAPTCHA_SETTINGS'] = 'Agar siz allaqachon kalitlari hosil yo\'q configured

      If

      ReCaptcha siz https uni, albatta, mumkin, to\'liq bo\'lmasligi: Agar kalitlari ishlab //www.google.com/recaptcha/admin.
      After, siz fayl kutubxona / config da, ularni qo\'yish kerak .php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/vi/main.php b/library/language/vi/main.php index 3a796a3bb..4275d2786 100644 --- a/library/language/vi/main.php +++ b/library/language/vi/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Này, lựa chọn duy nhất cho siêu quản $lang['LOGS'] = 'Chủ đề lịch sử'; $lang['FORUM_LOGS'] = 'Lịch Sử Diễn Đàn'; -$lang['AUTOCLEAN'] = 'Autoclean:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = 'Thiết kế'; $lang['LAST_IP'] = 'Cuối cùng IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'dừng lại'; $lang['DL_UPD'] = 'g: '; $lang['DL_INFO'] = 'cho dữ liệu only cho hiện tại session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = 'Pin bài đầu tiên'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = 'Tên bạn bước vào có thể không được $lang['CLICK_RETURN_DISALLOWADMIN'] = 'Nhấn vào %sHere%s để trở về Không cho phép Tên Quản trị'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = 'Phiên Bản Thông Tin'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = 'Quản lý đồ'; $lang['SITEMAP_CREATED'] = 'Đồ tạo ra'; $lang['SITEMAP_AVAILABLE'] = 'và có sẵn ở'; $lang['SITEMAP_NOT_CREATED'] = 'Đồ chưa tạo ra'; -$lang['SITEMAP_NOTIFY_SEARCH'] = 'Thông báo của công cụ tìm kiếm'; -$lang['SITEMAP_SENT'] = 'gửi hoàn thành'; -$lang['SITEMAP_ERROR'] = 'gửi lỗi'; $lang['SITEMAP_OPTIONS'] = 'Lựa chọn'; $lang['SITEMAP_CREATE'] = 'Tạo bản đồ'; -$lang['SITEMAP_NOTIFY'] = 'Thông báo cho công cụ tìm kiếm về phiên bản mới của sơ đồ'; $lang['SITEMAP_WHAT_NEXT'] = 'Phải làm gì tiếp theo?'; $lang['SITEMAP_GOOGLE_1'] = 'Đăng ký trang web của bạn ở Google Webmaster sử dụng tài khoản Google.'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap trang web của bạn đăng ký.'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Kiểm tra đó bạn không phải là một robot'; $lang['CAPTCHA_WRONG'] = 'Bạn không thể xác nhận rằng anh không phải là một robot'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha không được đầy đủ configured

      if bạn đã không tạo ra chìa khóa, bạn có thể làm nó trên https://.google.com/recaptcha/admin.
      After bạn tạo ra chìa khóa, bạn cần phải đưa họ tại các tập tin thư viện/cấu hình.# .

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; diff --git a/library/language/zh/main.php b/library/language/zh/main.php index 89ecac5f2..c2ef5a3b4 100644 --- a/library/language/zh/main.php +++ b/library/language/zh/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = '这一选项只有超级管理员'; $lang['LOGS'] = '主题历史'; $lang['FORUM_LOGS'] = '历史论坛'; -$lang['AUTOCLEAN'] = '自动清洁:'; +$lang['AUTOCLEAN'] = 'Autoclean'; $lang['DESIGNER'] = '设计师'; $lang['LAST_IP'] = '最后IP:'; @@ -1879,6 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = '停止'; $lang['DL_UPD'] = 'upd: '; $lang['DL_INFO'] = '显示了数据only当前session'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; +$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; // Post PIN $lang['POST_PIN'] = '销后第一次'; @@ -2322,14 +2325,6 @@ $lang['DISALLOWED_ALREADY'] = '输入的名称可能不被禁止。 它要么已 $lang['CLICK_RETURN_DISALLOWADMIN'] = '点击%sHere%s回到禁止的用户名的管理'; -// Integrity check -$lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was successful!'; -$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!'; -$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).'; -$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.'; -$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?'; -$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!'; - // Version Check $lang['VERSION_INFORMATION'] = '版本的信息'; $lang['UPDATE_AVAILABLE'] = 'Update available'; @@ -2997,12 +2992,8 @@ $lang['SITEMAP_ADMIN'] = '管理网站地图'; $lang['SITEMAP_CREATED'] = '网站地图创建的'; $lang['SITEMAP_AVAILABLE'] = '并且可以在'; $lang['SITEMAP_NOT_CREATED'] = '地图还不是创建'; -$lang['SITEMAP_NOTIFY_SEARCH'] = '通知的搜索引擎'; -$lang['SITEMAP_SENT'] = '发送完毕'; -$lang['SITEMAP_ERROR'] = '发送错误'; $lang['SITEMAP_OPTIONS'] = '选项'; $lang['SITEMAP_CREATE'] = '创建/更新的网站地图'; -$lang['SITEMAP_NOTIFY'] = '通知搜索引擎新版本的地图'; $lang['SITEMAP_WHAT_NEXT'] = '接下来做什么?'; $lang['SITEMAP_GOOGLE_1'] = '注册网站在Google Webmaster使用谷歌的帐户。'; $lang['SITEMAP_GOOGLE_2'] = 'Add sitemap的网站,你有注册。'; @@ -3084,7 +3075,8 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = '检查你是不是机器人'; $lang['CAPTCHA_WRONG'] = '你不能确认你不是一个机器人'; -$lang['CAPTCHA_SETTINGS'] = '

      ReCaptcha没有得到充分configured

      if你有没有已经产生的钥匙,你可以做https://www.谷歌。com/验证码/admin的。
      After你产生的钥匙,你需要把它们放在该文件的图书馆/config。php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; // Sending email $lang['REPLY_TO'] = 'Reply to'; From c40aad20ad865849d3088498f1ba95a5fb0a0621 Mon Sep 17 00:00:00 2001 From: Yury Pikhtarev Date: Sat, 17 May 2025 17:46:27 +0200 Subject: [PATCH 110/216] crowdin: New Crowdin updates (#1910) --- library/language/ru/main.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/library/language/ru/main.php b/library/language/ru/main.php index d7bd24f3b..0445b92fa 100644 --- a/library/language/ru/main.php +++ b/library/language/ru/main.php @@ -1604,7 +1604,7 @@ $lang['ONLY_FOR_SUPER_ADMIN'] = 'Эта опция доступна только $lang['LOGS'] = 'История темы'; $lang['FORUM_LOGS'] = 'История форума'; -$lang['AUTOCLEAN'] = 'Autoclean'; +$lang['AUTOCLEAN'] = 'Автоочистка'; $lang['DESIGNER'] = 'Конструктор'; $lang['LAST_IP'] = 'Последний IP:'; @@ -1879,9 +1879,9 @@ $lang['DL_ULR'] = 'ULR'; $lang['DL_STOPPED'] = 'Остановил Скачивание/Раздачу'; $lang['DL_UPD'] = 'Подключен: '; $lang['DL_INFO'] = 'показаны данные только за текущую сессию'; -$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Hide my BitTorrent client name in peer list'; -$lang['HIDE_PEER_COUNTRY_NAME'] = 'Hide my country name in peer list'; -$lang['HIDE_PEER_USERNAME'] = 'Hide my username in peer list'; +$lang['HIDE_PEER_TORRENT_CLIENT'] = 'Скрыть название моего BitTorrent клиента в списке пиров'; +$lang['HIDE_PEER_COUNTRY_NAME'] = 'Скрыть название моей страны в списке пиров'; +$lang['HIDE_PEER_USERNAME'] = 'Скрыть мое имя пользователя в списке пиров'; // Post PIN $lang['POST_PIN'] = 'Закрепить первый пост'; @@ -3076,7 +3076,7 @@ $lang['UPLOAD_ERRORS'] = [ $lang['CAPTCHA'] = 'Проверка, что вы не робот'; $lang['CAPTCHA_WRONG'] = 'Вы не смогли подтвердить, что вы не робот'; $lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; -$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'The CAPTCHA verification occurs in the background'; +$lang['CAPTCHA_OCCURS_BACKGROUND'] = 'Проверка CAPTCHA происходит в фоновом режиме'; // Sending email $lang['REPLY_TO'] = 'Адрес для ответных писем'; From 025a1944b9f8176cd5307e23ce253a985e423678 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Sat, 17 May 2025 17:36:06 +0000 Subject: [PATCH 111/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 733e4ac8b..869bb0a21 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,17 @@ > [!NOTE] > To view changelog from **v2.0.0** to **v2.4.5-rc.2** navigate to [HISTORY.md](HISTORY.md). +## [nightly](https://nightly.link/torrentpier/torrentpier/workflows/build/master/TorrentPier) + +### 🈳 New translations + +- New Crowdin updates ([#1910](https://github.com/torrentpier/torrentpier/pull/1910)) - ([c40aad2](https://github.com/torrentpier/torrentpier/commit/c40aad20ad865849d3088498f1ba95a5fb0a0621)) +- New Crowdin updates ([#1907](https://github.com/torrentpier/torrentpier/pull/1907)) - ([999ae1e](https://github.com/torrentpier/torrentpier/commit/999ae1eff9f3a4c951fc48efbf94c0cea2a5f8d2)) +- Updated translations ([#1909](https://github.com/torrentpier/torrentpier/pull/1909)) - ([897edfc](https://github.com/torrentpier/torrentpier/commit/897edfc371087427c574776472cbbf3f1f933273)) +- Updated translations ([#1908](https://github.com/torrentpier/torrentpier/pull/1908)) - ([6d0499d](https://github.com/torrentpier/torrentpier/commit/6d0499dd0229d454d3af00f10151adc26a9e96a7)) +- New translations ([#1906](https://github.com/torrentpier/torrentpier/pull/1906)) - ([8a3b12c](https://github.com/torrentpier/torrentpier/commit/8a3b12c1192678552a3186c1f58df9b4d7e5ba1b)) + + ## [v2.4.5](https://github.com/torrentpier/torrentpier/compare/v2.4.5-rc.5..v2.4.5) (2025-05-11) ### 🚀 Features From 174f44160e1f33bed9422f0c4eab9d73b7025036 Mon Sep 17 00:00:00 2001 From: Yury Pikhtarev Date: Sun, 18 May 2025 06:52:16 +0200 Subject: [PATCH 112/216] crowdin: New Crowdin updates (#1911) --- library/language/ru/main.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/language/ru/main.php b/library/language/ru/main.php index 0445b92fa..59b4daf74 100644 --- a/library/language/ru/main.php +++ b/library/language/ru/main.php @@ -3075,7 +3075,7 @@ $lang['UPLOAD_ERRORS'] = [ // Captcha $lang['CAPTCHA'] = 'Проверка, что вы не робот'; $lang['CAPTCHA_WRONG'] = 'Вы не смогли подтвердить, что вы не робот'; -$lang['CAPTCHA_SETTINGS'] = '

      Captcha is not fully configured

      Generate the keys using the dashboard of your captcha service, after you need to put them at the file library/config.php.

      '; +$lang['CAPTCHA_SETTINGS'] = '

      Капча не полностью настроена

      Сгенерируйте ключи, используя панель управления вашим сервисом капчи, а затем вставьте их в файл library/config.php.

      '; $lang['CAPTCHA_OCCURS_BACKGROUND'] = 'Проверка CAPTCHA происходит в фоновом режиме'; // Sending email From 21b1eef59d1b94855c2736ab88aa996f112687a1 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Mon, 19 May 2025 01:43:37 +0000 Subject: [PATCH 113/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 869bb0a21..8903b1285 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ ### 🈳 New translations +- New Crowdin updates ([#1911](https://github.com/torrentpier/torrentpier/pull/1911)) - ([174f441](https://github.com/torrentpier/torrentpier/commit/174f44160e1f33bed9422f0c4eab9d73b7025036)) - New Crowdin updates ([#1910](https://github.com/torrentpier/torrentpier/pull/1910)) - ([c40aad2](https://github.com/torrentpier/torrentpier/commit/c40aad20ad865849d3088498f1ba95a5fb0a0621)) - New Crowdin updates ([#1907](https://github.com/torrentpier/torrentpier/pull/1907)) - ([999ae1e](https://github.com/torrentpier/torrentpier/commit/999ae1eff9f3a4c951fc48efbf94c0cea2a5f8d2)) - Updated translations ([#1909](https://github.com/torrentpier/torrentpier/pull/1909)) - ([897edfc](https://github.com/torrentpier/torrentpier/commit/897edfc371087427c574776472cbbf3f1f933273)) From f76e351b32cfa2932bc1afde6c3c522cd993b8af Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 May 2025 21:57:40 +0700 Subject: [PATCH 114/216] Composer(deps): Bump arokettu/bencode from 4.3.0 to 4.3.1 (#1912) Bumps [arokettu/bencode](https://github.com/arokettu/bencode) from 4.3.0 to 4.3.1. - [Release notes](https://github.com/arokettu/bencode/releases) - [Changelog](https://github.com/arokettu/bencode/blob/master/CHANGELOG.md) - [Commits](https://github.com/arokettu/bencode/compare/4.3.0...4.3.1) --- updated-dependencies: - dependency-name: arokettu/bencode dependency-version: 4.3.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.lock | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/composer.lock b/composer.lock index a8f2332e8..d2ca6cc00 100644 --- a/composer.lock +++ b/composer.lock @@ -8,16 +8,16 @@ "packages": [ { "name": "arokettu/bencode", - "version": "4.3.0", + "version": "4.3.1", "source": { "type": "git", "url": "https://github.com/arokettu/bencode.git", - "reference": "be43c5c2d54fb2c8a358f6d38130fc7e57928913" + "reference": "0955a7037670c24d5ae5fdafe5ff5894aba024e7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/arokettu/bencode/zipball/be43c5c2d54fb2c8a358f6d38130fc7e57928913", - "reference": "be43c5c2d54fb2c8a358f6d38130fc7e57928913", + "url": "https://api.github.com/repos/arokettu/bencode/zipball/0955a7037670c24d5ae5fdafe5ff5894aba024e7", + "reference": "0955a7037670c24d5ae5fdafe5ff5894aba024e7", "shasum": "" }, "require": { @@ -33,12 +33,13 @@ "pear/math_biginteger": "^1.0", "phpunit/phpunit": "^10.5.28", "psy/psysh": "*", - "sandfox.dev/code-standard": "^1.2024.07.05", + "sandfox.dev/code-standard": "^1.2025.05.07", "squizlabs/php_codesniffer": "*", - "vimeo/psalm": "^5.2" + "vimeo/psalm": "^6" }, "suggest": { "brick/math": "In case you need integers larger than your architecture supports", + "ext-bcmath": "In case you need integers larger than your architecture supports (PHP 8.4 or later)", "ext-gmp": "In case you need integers larger than your architecture supports", "pear/math_biginteger": "In case you need integers larger than your architecture supports", "php-64bit": "Running 64 bit is recommended to prevent integer overflow" @@ -75,7 +76,7 @@ "issues": "https://gitlab.com/sandfox/bencode/-/issues", "source": "https://gitlab.com/sandfox/bencode" }, - "time": "2024-09-25T14:43:35+00:00" + "time": "2025-05-20T19:25:23+00:00" }, { "name": "arokettu/is-resource", @@ -3745,6 +3746,6 @@ "platform": { "php": ">=8.1" }, - "platform-dev": {}, - "plugin-api-version": "2.6.0" + "platform-dev": [], + "plugin-api-version": "2.3.0" } From d18f99fa1cd645eb9702922d228da7dec894f556 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Fri, 23 May 2025 01:38:55 +0000 Subject: [PATCH 115/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8903b1285..51dba9e71 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,10 @@ - Updated translations ([#1908](https://github.com/torrentpier/torrentpier/pull/1908)) - ([6d0499d](https://github.com/torrentpier/torrentpier/commit/6d0499dd0229d454d3af00f10151adc26a9e96a7)) - New translations ([#1906](https://github.com/torrentpier/torrentpier/pull/1906)) - ([8a3b12c](https://github.com/torrentpier/torrentpier/commit/8a3b12c1192678552a3186c1f58df9b4d7e5ba1b)) +### 📦 Dependencies + +- *(deps)* Bump arokettu/bencode from 4.3.0 to 4.3.1 ([#1912](https://github.com/torrentpier/torrentpier/pull/1912)) - ([f76e351](https://github.com/torrentpier/torrentpier/commit/f76e351b32cfa2932bc1afde6c3c522cd993b8af)) + ## [v2.4.5](https://github.com/torrentpier/torrentpier/compare/v2.4.5-rc.5..v2.4.5) (2025-05-11) From 79bb13e17d07505be4d3a3c67223b4f591b66bfb Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Fri, 30 May 2025 17:53:22 +0300 Subject: [PATCH 116/216] feat(ACP): Added `robots.txt` editor (#1913) * feat(admin): Added robots.txt editor * Update admin_robots.tpl * Update admin_robots.php * Update admin_robots.php * Update admin_robots.php * Update admin_robots.tpl * Updated * Updated * Update main.php * Updated --- admin/admin_robots.php | 45 +++++++++++++++++++ admin/admin_terms.php | 2 +- composer.lock | 58 ++++++++++++------------- library/language/source/main.php | 7 +++ styles/templates/admin/admin_robots.tpl | 23 ++++++++++ 5 files changed, 105 insertions(+), 30 deletions(-) create mode 100644 admin/admin_robots.php create mode 100644 styles/templates/admin/admin_robots.tpl diff --git a/admin/admin_robots.php b/admin/admin_robots.php new file mode 100644 index 000000000..44d73d52b --- /dev/null +++ b/admin/admin_robots.php @@ -0,0 +1,45 @@ +
      ' . sprintf($lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'], '', '') . '

      ' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '')); +} + +$current_content = ''; +if (is_file($robots_file)) { + $current_content = file_get_contents($robots_file); +} + +$template->assign_vars([ + 'S_ACTION' => 'admin_robots.php', + 'ROBOTS_TXT' => htmlCHR($current_content), +]); + +print_page('admin_robots.tpl', 'admin'); diff --git a/admin/admin_terms.php b/admin/admin_terms.php index 37d57da17..4e294c3a5 100644 --- a/admin/admin_terms.php +++ b/admin/admin_terms.php @@ -19,7 +19,7 @@ $preview = isset($_POST['preview']); if (isset($_POST['post']) && ($bb_cfg['terms'] !== $_POST['message'])) { bb_update_config(['terms' => $_POST['message']]); - bb_die($lang['CONFIG_UPDATED']); + bb_die($lang['TERMS_UPDATED_SUCCESSFULLY'] . '

      ' . sprintf($lang['CLICK_RETURN_TERMS_CONFIG'], '', '') . '

      ' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '')); } $template->assign_vars([ diff --git a/composer.lock b/composer.lock index d2ca6cc00..2ef822533 100644 --- a/composer.lock +++ b/composer.lock @@ -599,16 +599,16 @@ }, { "name": "composer/ca-bundle", - "version": "1.5.6", + "version": "1.5.7", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "f65c239c970e7f072f067ab78646e9f0b2935175" + "reference": "d665d22c417056996c59019579f1967dfe5c1e82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/f65c239c970e7f072f067ab78646e9f0b2935175", - "reference": "f65c239c970e7f072f067ab78646e9f0b2935175", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/d665d22c417056996c59019579f1967dfe5c1e82", + "reference": "d665d22c417056996c59019579f1967dfe5c1e82", "shasum": "" }, "require": { @@ -655,7 +655,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.5.6" + "source": "https://github.com/composer/ca-bundle/tree/1.5.7" }, "funding": [ { @@ -671,7 +671,7 @@ "type": "tidelift" } ], - "time": "2025-03-06T14:30:56+00:00" + "time": "2025-05-26T15:08:54+00:00" }, { "name": "doctrine/lexer", @@ -2793,16 +2793,16 @@ }, { "name": "symfony/deprecation-contracts", - "version": "v3.5.1", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6" + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", - "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62", + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62", "shasum": "" }, "require": { @@ -2815,7 +2815,7 @@ "name": "symfony/contracts" }, "branch-alias": { - "dev-main": "3.5-dev" + "dev-main": "3.6-dev" } }, "autoload": { @@ -2840,7 +2840,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0" }, "funding": [ { @@ -2856,7 +2856,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:20:29+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/event-dispatcher", @@ -2940,16 +2940,16 @@ }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.5.1", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f" + "reference": "59eb412e93815df44f05f342958efa9f46b1e586" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7642f5e970b672283b7823222ae8ef8bbc160b9f", - "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/59eb412e93815df44f05f342958efa9f46b1e586", + "reference": "59eb412e93815df44f05f342958efa9f46b1e586", "shasum": "" }, "require": { @@ -2963,7 +2963,7 @@ "name": "symfony/contracts" }, "branch-alias": { - "dev-main": "3.5-dev" + "dev-main": "3.6-dev" } }, "autoload": { @@ -2996,7 +2996,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.1" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.6.0" }, "funding": [ { @@ -3012,7 +3012,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:20:29+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/filesystem", @@ -3428,16 +3428,16 @@ }, { "name": "symfony/service-contracts", - "version": "v3.5.1", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0" + "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e53260aabf78fb3d63f8d79d69ece59f80d5eda0", - "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f021b05a130d35510bd6b25fe9053c2a8a15d5d4", + "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4", "shasum": "" }, "require": { @@ -3455,7 +3455,7 @@ "name": "symfony/contracts" }, "branch-alias": { - "dev-main": "3.5-dev" + "dev-main": "3.6-dev" } }, "autoload": { @@ -3491,7 +3491,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.5.1" + "source": "https://github.com/symfony/service-contracts/tree/v3.6.0" }, "funding": [ { @@ -3507,7 +3507,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:20:29+00:00" + "time": "2025-04-25T09:37:31+00:00" }, { "name": "vlucas/phpdotenv", @@ -3746,6 +3746,6 @@ "platform": { "php": ">=8.1" }, - "platform-dev": [], - "plugin-api-version": "2.3.0" + "platform-dev": {}, + "plugin-api-version": "2.6.0" } diff --git a/library/language/source/main.php b/library/language/source/main.php index 09451df9b..179e8d1f2 100644 --- a/library/language/source/main.php +++ b/library/language/source/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'User posts count has been synchronized // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Show the list of online users'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Select a User'; $lang['GROUP_SELECT'] = 'Select a Group'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Release with hash %s not found'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'On this page, you can specify the text of the basic rules of the resource is displayed to users.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'inactive users in 30 days', diff --git a/styles/templates/admin/admin_robots.tpl b/styles/templates/admin/admin_robots.tpl new file mode 100644 index 000000000..b2792ce3c --- /dev/null +++ b/styles/templates/admin/admin_robots.tpl @@ -0,0 +1,23 @@ +

      {L_ROBOTS_TXT_EDITOR_TITLE}

      +
      + +
      + + + + + + + + + + +
      {L_ROBOTS_TXT_EDITOR_TITLE}
      + +
      + + +
      +
      + +
      From a15baef69a2955b6dc9cd6e8fdf467550d0b5d09 Mon Sep 17 00:00:00 2001 From: Yury Pikhtarev Date: Fri, 30 May 2025 18:59:14 +0300 Subject: [PATCH 117/216] crowdin: New Crowdin updates (#1914) * New translations main.php (Romanian) * New translations main.php (French) * New translations main.php (Spanish) * New translations main.php (Afrikaans) * New translations main.php (Arabic) * New translations main.php (Belarusian) * New translations main.php (Bulgarian) * New translations main.php (Catalan) * New translations main.php (Czech) * New translations main.php (Danish) * New translations main.php (German) * New translations main.php (Greek) * New translations main.php (Finnish) * New translations main.php (Hebrew) * New translations main.php (Hungarian) * New translations main.php (Armenian) * New translations main.php (Italian) * New translations main.php (Japanese) * New translations main.php (Georgian) * New translations main.php (Korean) * New translations main.php (Lithuanian) * New translations main.php (Dutch) * New translations main.php (Norwegian) * New translations main.php (Polish) * New translations main.php (Russian) * New translations main.php (Slovak) * New translations main.php (Slovenian) * New translations main.php (Albanian) * New translations main.php (Serbian (Cyrillic)) * New translations main.php (Swedish) * New translations main.php (Turkish) * New translations main.php (Ukrainian) * New translations main.php (Chinese Traditional) * New translations main.php (English) * New translations main.php (Vietnamese) * New translations main.php (Portuguese, Brazilian) * New translations main.php (Indonesian) * New translations main.php (Thai) * New translations main.php (Croatian) * New translations main.php (Kazakh) * New translations main.php (Estonian) * New translations main.php (Latvian) * New translations main.php (Azerbaijani) * New translations main.php (Hindi) * New translations main.php (Bosnian) * New translations main.php (Uzbek) * New translations main.php (Tajik) --- library/language/af/main.php | 7 +++++++ library/language/ar/main.php | 7 +++++++ library/language/az/main.php | 7 +++++++ library/language/be/main.php | 7 +++++++ library/language/bg/main.php | 7 +++++++ library/language/bs/main.php | 7 +++++++ library/language/ca/main.php | 7 +++++++ library/language/cs/main.php | 7 +++++++ library/language/da/main.php | 7 +++++++ library/language/de/main.php | 7 +++++++ library/language/el/main.php | 7 +++++++ library/language/en/main.php | 7 +++++++ library/language/es/main.php | 7 +++++++ library/language/et/main.php | 7 +++++++ library/language/fi/main.php | 7 +++++++ library/language/fr/main.php | 7 +++++++ library/language/he/main.php | 7 +++++++ library/language/hi/main.php | 7 +++++++ library/language/hr/main.php | 7 +++++++ library/language/hu/main.php | 7 +++++++ library/language/hy/main.php | 7 +++++++ library/language/id/main.php | 7 +++++++ library/language/it/main.php | 7 +++++++ library/language/ja/main.php | 7 +++++++ library/language/ka/main.php | 7 +++++++ library/language/kk/main.php | 7 +++++++ library/language/ko/main.php | 7 +++++++ library/language/lt/main.php | 7 +++++++ library/language/lv/main.php | 7 +++++++ library/language/nl/main.php | 7 +++++++ library/language/no/main.php | 7 +++++++ library/language/pl/main.php | 7 +++++++ library/language/pt/main.php | 7 +++++++ library/language/ro/main.php | 7 +++++++ library/language/ru/main.php | 7 +++++++ library/language/sk/main.php | 7 +++++++ library/language/sl/main.php | 7 +++++++ library/language/sq/main.php | 7 +++++++ library/language/sr/main.php | 7 +++++++ library/language/sv/main.php | 7 +++++++ library/language/tg/main.php | 7 +++++++ library/language/th/main.php | 7 +++++++ library/language/tr/main.php | 7 +++++++ library/language/uk/main.php | 7 +++++++ library/language/uz/main.php | 7 +++++++ library/language/vi/main.php | 7 +++++++ library/language/zh/main.php | 7 +++++++ 47 files changed, 329 insertions(+) diff --git a/library/language/af/main.php b/library/language/af/main.php index a74fe8d01..d9dd4b987 100644 --- a/library/language/af/main.php +++ b/library/language/af/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Die telling van gebruikersposte is ges // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Wys die lys van aanlyngebruikers'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Kies \'n gebruiker'; $lang['GROUP_SELECT'] = 'Kies \'n groep'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Vrylating met hash %s nie gevind nie'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'Op hierdie bladsy kan u die teks van die basiese reëls van die bron spesifiseer vir gebruikers.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'Onaktiewe gebruikers oor 30 dae', diff --git a/library/language/ar/main.php b/library/language/ar/main.php index e91a6ae43..016d59b92 100644 --- a/library/language/ar/main.php +++ b/library/language/ar/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'مشاركاتك العد وقد تز // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'تظهر قائمة مستخدمي الانترنت'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'حدد المستخدم'; $lang['GROUP_SELECT'] = 'حدد مجموعة'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'الإفراج مع تجزئة %s لم يتم الع $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'في هذه الصفحة يمكنك تحديد النص من القواعد الأساسية من الموارد التي يتم عرضها للمستخدمين.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'المستخدمين غير نشط في 30 يوما', diff --git a/library/language/az/main.php b/library/language/az/main.php index 182d1fac0..d910d0e61 100644 --- a/library/language/az/main.php +++ b/library/language/az/main.php @@ -1989,6 +1989,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Mesaj istifadəçi qraf idi sinxroniza // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Siyahı online istifadəçilər'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Seçin istifadəçi'; $lang['GROUP_SELECT'] = 'Seçin qrupu'; @@ -3025,6 +3030,8 @@ $lang['HASH_NOT_FOUND'] = 'Məsələ ilə hash %s tapılmadı'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'Bu səhifədə verə bilərsiniz mətn əsas qaydaları resurs göstərilir istifadəçilər üçün.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'passiv istifadəçiləri 30 gün müddətində', diff --git a/library/language/be/main.php b/library/language/be/main.php index e462e615e..fca6ac213 100644 --- a/library/language/be/main.php +++ b/library/language/be/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Паведамленні карыст // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Паказаць спіс онлайн карыстальнікаў'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Выберыце карыстальніка'; $lang['GROUP_SELECT'] = 'Выберыце групу'; @@ -3022,6 +3027,8 @@ $lang['HASH_NOT_FOUND'] = 'Выпуск з хэш-%s не знойдзена'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'На гэтай старонцы вы можаце задаць тэкст, асноўныя правілы рэсурсу адлюстроўваецца для карыстальнікаў.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'неактыўныя карыстальнікі на працягу 30 дзён', diff --git a/library/language/bg/main.php b/library/language/bg/main.php index d93bb26b8..922a68692 100644 --- a/library/language/bg/main.php +++ b/library/language/bg/main.php @@ -1988,6 +1988,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Съобщения на потреби // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Покажи списък с онлайн потребители'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Изберете потребител'; $lang['GROUP_SELECT'] = 'Изберете група'; @@ -3024,6 +3029,8 @@ $lang['HASH_NOT_FOUND'] = 'Проблем с хеш-%s не е намерено' $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'На тази страница можете да зададете текст, основните правила ресурс показва на потребителите.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'неактивните потребители за 30 дни', diff --git a/library/language/bs/main.php b/library/language/bs/main.php index 19baeeda1..1d3ecd05d 100644 --- a/library/language/bs/main.php +++ b/library/language/bs/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Korisnik mjesta računati je sinhroniz // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Pokaži listu online korisnici'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Odaberite Korisnik'; $lang['GROUP_SELECT'] = 'Izaberi Grupu'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Oslobodi sa hašiš %s ne našao'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'Na ovoj stranici, možeš navesti poruku od osnovnih pravila resurs je prikazan korisnicima.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'neaktivni korisnici za 30 dana', diff --git a/library/language/ca/main.php b/library/language/ca/main.php index b1d4d0a21..6d9fa9d8a 100644 --- a/library/language/ca/main.php +++ b/library/language/ca/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Usuari missatges recompte s\'ha sincro // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Mostra la llista d\'usuaris en línia'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Seleccioneu un Usuari'; $lang['GROUP_SELECT'] = 'Seleccioneu un Grup'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Llançament de hash %s no trobat'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'En aquesta pàgina, es pot especificar el text de les normes bàsiques de recurs es mostra als usuaris.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'inactiu usuaris en 30 dies', diff --git a/library/language/cs/main.php b/library/language/cs/main.php index aa30b5809..db5b72e8d 100644 --- a/library/language/cs/main.php +++ b/library/language/cs/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Uživatel příspěvků hrabě byl syn // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Zobrazit seznam online uživatelů'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Vyberte Uživatele'; $lang['GROUP_SELECT'] = 'Vyberte Skupinu'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Zpráva s hash %s nebyl nalezen'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'Na této stránce můžete zadat text ze základních pravidel, zdroje se zobrazí uživatelům.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'neaktivní uživatelé za 30 dní', diff --git a/library/language/da/main.php b/library/language/da/main.php index e4c7fec6a..e66f4e5d4 100644 --- a/library/language/da/main.php +++ b/library/language/da/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Bruger indlæg tæller er blevet synkr // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Vis en liste over online brugere'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Vælg en Bruger'; $lang['GROUP_SELECT'] = 'Vælg en Gruppe'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Udgivelse med hash %s ikke fundet'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'På denne side, kan du angive den tekst, der i de grundlæggende regler af den ressource, der vises til brugerne.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'inaktive brugere i 30 dage', diff --git a/library/language/de/main.php b/library/language/de/main.php index a05081310..1388d6a23 100644 --- a/library/language/de/main.php +++ b/library/language/de/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Benutzer Beiträge zählen synchronisi // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Anzeigen der Liste der online-Benutzer'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Wählen Sie einen Benutzer'; $lang['GROUP_SELECT'] = 'Wählen Sie eine Gruppe aus'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Version mit hash %s nicht gefunden'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'Auf dieser Seite können Sie den text angeben, der die grundlegenden Regeln der Ressource, die den Benutzern angezeigt wird.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'inaktive Benutzer in 30 Tagen', diff --git a/library/language/el/main.php b/library/language/el/main.php index 8f276b9e8..5f9c81cc7 100644 --- a/library/language/el/main.php +++ b/library/language/el/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Από το χρήστη τις θέσ // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Εμφανίζεται η λίστα των online χρηστών'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Επιλέξτε ένα Χρήστη'; $lang['GROUP_SELECT'] = 'Επιλέξτε μια Ομάδα'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Απελευθέρωση με hash %s δεν βρέθ $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'Σε αυτή τη σελίδα, μπορείτε να καθορίσετε το κείμενο των βασικών κανόνων του πόρου εμφανίζεται στους χρήστες.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'ανενεργών χρηστών σε 30 μέρες', diff --git a/library/language/en/main.php b/library/language/en/main.php index e5f31e8ea..7d7dae764 100644 --- a/library/language/en/main.php +++ b/library/language/en/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'User posts count has been synchronized // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Show the list of online users'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Select a User'; $lang['GROUP_SELECT'] = 'Select a Group'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Release with hash %s not found'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'On this page, you can specify the text of the basic rules of the resource is displayed to users.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'inactive users in 30 days', diff --git a/library/language/es/main.php b/library/language/es/main.php index 72bfe0d40..4eafecc0d 100644 --- a/library/language/es/main.php +++ b/library/language/es/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Las publicaciones de los usuarios de r // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Mostrar la lista de usuarios en línea'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Seleccione un Usuario'; $lang['GROUP_SELECT'] = 'Seleccione un Grupo de'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Con la liberación de hash %s no se encuentra'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'En esta página, usted puede especificar el texto de las reglas básicas del recurso se muestra a los usuarios.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'usuarios inactivos en 30 días', diff --git a/library/language/et/main.php b/library/language/et/main.php index a9e51ee46..92c130a56 100644 --- a/library/language/et/main.php +++ b/library/language/et/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Kasutaja postitusi arv on sünkronisee // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Näita nimekiri online kasutajad'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Valige Kasutaja'; $lang['GROUP_SELECT'] = 'Vali Grupp'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Pressiteade hash %s ei leitud'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'Sellel lehel saate määrata teksti põhireeglid ressurss on kuvatud kasutajad.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'mitteaktiivsete kasutajate 30 päeva', diff --git a/library/language/fi/main.php b/library/language/fi/main.php index b04e98bae..335dfef82 100644 --- a/library/language/fi/main.php +++ b/library/language/fi/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Käyttäjän viestit määrä on ollut // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Näyttää luettelon online käyttäjiä'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Valitse Käyttäjä'; $lang['GROUP_SELECT'] = 'Valitse Ryhmä'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Julkaisu hash %s ei löytynyt'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'Tällä sivulla, voit määrittää tekstin perussäännöt resurssi näkyy käyttäjille.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'aktiivisia käyttäjiä 30 päivää', diff --git a/library/language/fr/main.php b/library/language/fr/main.php index df5a110b1..f60982a02 100644 --- a/library/language/fr/main.php +++ b/library/language/fr/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Messages de l\'utilisateur de compter // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Afficher la liste des utilisateurs en ligne'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Sélectionnez un Utilisateur'; $lang['GROUP_SELECT'] = 'Sélectionnez un Groupe'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Version avec pommes de %s pas trouvé'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'Sur cette page, vous pouvez spécifier le texte des règles de base de la ressource s\'affiche pour les utilisateurs.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'les utilisateurs inactifs dans les 30 jours', diff --git a/library/language/he/main.php b/library/language/he/main.php index bd41ca08c..cd5692cff 100644 --- a/library/language/he/main.php +++ b/library/language/he/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'הודעות המשתמש לספור // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'הצגת רשימת משתמשים באינטרנט'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'בחר משתמש'; $lang['GROUP_SELECT'] = 'בחר קבוצה.'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'שחרור עם חשיש %s לא מצאתי'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'בדף זה, אתה יכול לציין את הטקסט של הכללים הבסיסיים של משאב זה מוצג בפני המשתמשים.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'משתמשים לא-פעילים ב-30 ימים', diff --git a/library/language/hi/main.php b/library/language/hi/main.php index d4b064f56..4208b5580 100644 --- a/library/language/hi/main.php +++ b/library/language/hi/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'उपयोगकर्ता पो // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'ऑनलाइन उपयोगकर्ताओं की सूची दिखाएं'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'एक उपयोगकर्ता का चयन करें'; $lang['GROUP_SELECT'] = 'एक समूह का चयन करें'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'हैश %s के साथ रिलीज़ न $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'इस पृष्ठ पर, आप संसाधनों के मूल नियमों का टेक्स्ट उपयोगकर्ताओं को प्रदर्शित किया जा सकता है।'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => '30 दिनों में निष्क्रिय उपयोगकर्ता', diff --git a/library/language/hr/main.php b/library/language/hr/main.php index b7808f095..442b55dbc 100644 --- a/library/language/hr/main.php +++ b/library/language/hr/main.php @@ -1989,6 +1989,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Poruke korisnika grof je bio sinkroniz // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Prikaži popis korisnika online'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Odaberite korisnika'; $lang['GROUP_SELECT'] = 'Odaberite grupu'; @@ -3025,6 +3030,8 @@ $lang['HASH_NOT_FOUND'] = 'Izdanje s hash %s nije pronađen'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'Na ovoj stranici možete postaviti tekst, osnovna pravila resursa prikazani za korisnike.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'neaktivni korisnici u roku od 30 dana', diff --git a/library/language/hu/main.php b/library/language/hu/main.php index c8cc628b0..7a5407212 100644 --- a/library/language/hu/main.php +++ b/library/language/hu/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Felhasználó hozzászólások gróf s // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Mutasd meg a listán az online felhasználók'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Válasszon ki egy Felhasználót'; $lang['GROUP_SELECT'] = 'Válassza ki a Csoport'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Kiadás hash %s nem található'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'Ezen az oldalon adhatja meg, hogy a szöveg az alapvető szabályokat, az erőforrás jelenik meg a felhasználók számára.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'inaktív felhasználók 30 nappal', diff --git a/library/language/hy/main.php b/library/language/hy/main.php index 2ba49ab9b..a4add400d 100644 --- a/library/language/hy/main.php +++ b/library/language/hy/main.php @@ -1989,6 +1989,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Գրառումները կոմս էր // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Ցուցադրել ցանկը օնլայն օգտագործողներ'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Ընտրեք user'; $lang['GROUP_SELECT'] = 'Ընտրեք խումբ'; @@ -3025,6 +3030,8 @@ $lang['HASH_NOT_FOUND'] = 'Թողարկումը հետ հաշ-%s չի գտնվե $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'Այս էջում դուք կարող եք հարցնել տեքստը, հիմնական կանոնները ռեսուրսի ցուցադրվում է օգտվողների համար:'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'ոչ ակտիվ օգտվողներ ՝ 30 օրվա ընթացքում,', diff --git a/library/language/id/main.php b/library/language/id/main.php index ae4767ac2..99f49d87b 100644 --- a/library/language/id/main.php +++ b/library/language/id/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Posting pengguna count telah disinkron // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Menampilkan daftar pengguna yang online'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Pilih Pengguna'; $lang['GROUP_SELECT'] = 'Pilih Grup'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Rilis dengan hash %s tidak ditemukan'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'Pada halaman ini, anda dapat menentukan teks aturan dasar dari sumber daya ditampilkan kepada pengguna.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'pengguna yang tidak aktif dalam 30 hari', diff --git a/library/language/it/main.php b/library/language/it/main.php index a688a9336..26058fab9 100644 --- a/library/language/it/main.php +++ b/library/language/it/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'I messaggi dell\'utente conte è stato // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Mostra l\'elenco degli utenti online'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Selezionare un Utente'; $lang['GROUP_SELECT'] = 'Selezionare un Gruppo di'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Versione con hash %s non trovato'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'Su questa pagina, è possibile specificare il testo di le regole di base della risorsa viene visualizzato dagli utenti.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'gli utenti inattivi in 30 giorni', diff --git a/library/language/ja/main.php b/library/language/ja/main.php index 90e406f50..9413dbd2f 100644 --- a/library/language/ja/main.php +++ b/library/language/ja/main.php @@ -1990,6 +1990,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'ユーザーの投稿カウント分 // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = '"次へ"をクリックしインターネットユーザー'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'ユーザーの選択'; $lang['GROUP_SELECT'] = 'グループを選択'; @@ -3025,6 +3030,8 @@ $lang['HASH_NOT_FOUND'] = 'コーポレートコミュニケーションのハ $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'このページでご指定いただくことができますテキストの基本的なルールのリソースが表示されます。'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => '無効のユーザは30日間', diff --git a/library/language/ka/main.php b/library/language/ka/main.php index f573189ee..f94e8f1e5 100644 --- a/library/language/ka/main.php +++ b/library/language/ka/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'მომხმარებლის // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'შოუ სია მომხმარებლებს'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'აირჩიეთ მომხმარებელი'; $lang['GROUP_SELECT'] = 'აირჩიეთ ჯგუფი'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'გამოშვების hash %s არ მო $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'ამ გვერდზე, თქვენ შეგიძლიათ მიუთითოთ ტექსტი ძირითადი წესები რესურსი არის ნაჩვენები მომხმარებლებს.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'უმოქმედო მომხმარებლებს 30 დღის', diff --git a/library/language/kk/main.php b/library/language/kk/main.php index 310d30f96..a0e06bebd 100644 --- a/library/language/kk/main.php +++ b/library/language/kk/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Пайдаланушы хабарла // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Онлайн пайдаланушылардың тізімін көрсету'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Пайдаланушыны таңдаңыз'; $lang['GROUP_SELECT'] = 'Топты таңдаңыз'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'тор белгісі бар босатыңыз %s т $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'Бұл бетте, Сіз пайдаланушыларға көрсетіледі ресурс негізгі ережелерін мәтінді көрсетуге болады.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => '30 күн енжар ​​пайдаланушылар', diff --git a/library/language/ko/main.php b/library/language/ko/main.php index a29b0963b..be61b1a4e 100644 --- a/library/language/ko/main.php +++ b/library/language/ko/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = '사용자가 게시 계산 된 동기 // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = '목록을 표시합니다 온라인으로 사용자의'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = '을 선택 사용'; $lang['GROUP_SELECT'] = '선택 그룹'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = '릴리스와 해시 %s 발견되지 않았'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = '이 페이지에서 텍스트를 지정할 수 있습의 기본적인 규칙은 자원의 사용자에게 표시합니다.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => '비활성 상태에서 사용자는 30 일', diff --git a/library/language/lt/main.php b/library/language/lt/main.php index 8c0e7de88..67bfe7307 100644 --- a/library/language/lt/main.php +++ b/library/language/lt/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Vartotojo etatų skaičius buvo sinchr // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Rodyti sąrašą vartotojai online'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Pasirinkite Vartotoją'; $lang['GROUP_SELECT'] = 'Pasirinkite Grupę'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Išleidimo su maišos %s nerasta'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'Šiame puslapyje jūs galite nurodyti tekstą iš pagrindinių taisyklių, ištekliai rodomas naudotojams.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'neaktyvius vartotojus 30 dienų', diff --git a/library/language/lv/main.php b/library/language/lv/main.php index e684085b2..6a7b8c59d 100644 --- a/library/language/lv/main.php +++ b/library/language/lv/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Lietotājs amatu skaits ir sinhronizē // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Rādīt sarakstu ar tiešsaistes lietotājiem,'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Izvēlieties Lietotāja'; $lang['GROUP_SELECT'] = 'Izvēlieties Grupu'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Atbrīvot ar hash %s nav atrasts'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'Šajā lapā jūs varat norādīt teksta pamatnoteikumu resurss ir parādīts lietotājiem.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'neaktīvo lietotāju 30 dienas', diff --git a/library/language/nl/main.php b/library/language/nl/main.php index 58b065730..541585067 100644 --- a/library/language/nl/main.php +++ b/library/language/nl/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Gebruiker berichten aantal is gesynchr // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Toon de lijst van online gebruikers'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Selecteer een Gebruiker'; $lang['GROUP_SELECT'] = 'Selecteer een Groep'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Release met hash %s niet gevonden'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'Op deze pagina kunt u de tekst van de fundamentele regels van de bron wordt weergegeven aan gebruikers.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'inactieve gebruikers in 30 dagen', diff --git a/library/language/no/main.php b/library/language/no/main.php index 8adc3cb96..cd4caa885 100644 --- a/library/language/no/main.php +++ b/library/language/no/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Bruker innlegg telle har blitt synkron // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Vise listen over brukere online'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Velg en Bruker'; $lang['GROUP_SELECT'] = 'Velg en Gruppe'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Utgivelse med hash %s ikke funnet'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'På denne siden kan du angi teksten til de grunnleggende reglene i ressurs er vist til brukere.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'inaktive brukere i 30 dager', diff --git a/library/language/pl/main.php b/library/language/pl/main.php index 6bff84c2a..5e4540ab6 100644 --- a/library/language/pl/main.php +++ b/library/language/pl/main.php @@ -1989,6 +1989,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Wiadomości użytkownika hrabia był z // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Pokaż listę użytkowników online'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Wybierz użytkownika'; $lang['GROUP_SELECT'] = 'Wybierz grupę'; @@ -3025,6 +3030,8 @@ $lang['HASH_NOT_FOUND'] = 'Wydanie z hash-%s nie znaleziono'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'Na tej stronie możesz podać tekst, podstawowe zasady zasobu jest widoczna dla użytkowników.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'nieaktywni użytkownicy w ciągu 30 dni', diff --git a/library/language/pt/main.php b/library/language/pt/main.php index 83efdb787..3ac333097 100644 --- a/library/language/pt/main.php +++ b/library/language/pt/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Usuário postos de contagem tem sido s // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Mostrar a lista de usuários online'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Selecione um Usuário'; $lang['GROUP_SELECT'] = 'Selecione um Grupo de'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Lançamento com hash %s não encontrado'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'Nesta página, você pode especificar o texto das regras básicas do recurso é exibido para os usuários.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'usuários inativos em 30 dias', diff --git a/library/language/ro/main.php b/library/language/ro/main.php index b843e3f76..89248e590 100644 --- a/library/language/ro/main.php +++ b/library/language/ro/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Mesajele utilizatorului conta a fost s // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Arată lista de utilizatori online'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Selectați un Utilizator'; $lang['GROUP_SELECT'] = 'Selectați un Grup'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Lansare cu hash %s nu a fost găsit'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'Pe această pagină, puteți specifica textul de regulile de bază de resurse este afișat pentru utilizatori.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'utilizatorii inactivi în 30 de zile', diff --git a/library/language/ru/main.php b/library/language/ru/main.php index 59b4daf74..bb661652b 100644 --- a/library/language/ru/main.php +++ b/library/language/ru/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Количество сообщени // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Показать список пользователей онлайн'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Выберите пользователя'; $lang['GROUP_SELECT'] = 'Выберите группу'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Раздача с хэшем %s не найдена'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]Текст этой страницы редактируется по адресу: [url]%s[/url]. Эту строку видят только администраторы.[/align]'; $lang['TERMS_EXPLAIN'] = 'На данной странице вы можете указать текст основных правил ресурса, выводящихся пользователям.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'неактивные пользователи в течение 30 дней', diff --git a/library/language/sk/main.php b/library/language/sk/main.php index d8b3280db..c04987f6b 100644 --- a/library/language/sk/main.php +++ b/library/language/sk/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Používateľ príspevky počítať bo // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Zobraziť zoznam online užívateľov'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Vyberte Používateľa'; $lang['GROUP_SELECT'] = 'Vyberte Skupinu'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Prepustenie s hash %s nebol nájdený'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'Na tejto stránke môžete zadať text základné pravidlá zdrojov sa zobrazujú používateľom.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'neaktívnych používateľov do 30 dní', diff --git a/library/language/sl/main.php b/library/language/sl/main.php index 4f2f34fb0..997e2b182 100644 --- a/library/language/sl/main.php +++ b/library/language/sl/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Uporabnik objavi grof je bil sinhroniz // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Prikaže seznam spletnih uporabnikov'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Izberite Uporabnika'; $lang['GROUP_SELECT'] = 'Izberite Skupino'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Sprostitev s hash %s ni mogoče najti'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'Na tej strani lahko določite besedilo osnovna pravila virov, se prikaže uporabnikom.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'neaktivne uporabnike v 30 dneh', diff --git a/library/language/sq/main.php b/library/language/sq/main.php index 3a1ea6e52..e851b23f9 100644 --- a/library/language/sq/main.php +++ b/library/language/sq/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Përdoruesit postimet numërimi ka qen // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Trego listën e përdoruesit në linjë'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Zgjidhni një Përdorues'; $lang['GROUP_SELECT'] = 'Zgjidhni një Grup'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Lirimin me të hash %s nuk u gjet'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'Në këtë faqe, ju mund të specifikoni tekstin e rregullave bazë të burimeve të shfaqet për përdoruesit.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'joaktiv përdoruesit në 30 ditë', diff --git a/library/language/sr/main.php b/library/language/sr/main.php index cf00e44cb..35918f138 100644 --- a/library/language/sr/main.php +++ b/library/language/sr/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Поруке корисника гро // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Прикажи листу корисника на мрежи'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Изаберите корисника'; $lang['GROUP_SELECT'] = 'Изаберите групу'; @@ -3022,6 +3027,8 @@ $lang['HASH_NOT_FOUND'] = 'Издање са хасх %s није пронађе $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'На овој страници можете да поставите текст, основна правила ресурса се приказује корисницима.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'неактивни корисници у року од 30 дана', diff --git a/library/language/sv/main.php b/library/language/sv/main.php index 0b79e3063..3974b975e 100644 --- a/library/language/sv/main.php +++ b/library/language/sv/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Användaren inlägg räkna har synkron // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Visa listan över användare online'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Välj ett Användarnamn'; $lang['GROUP_SELECT'] = 'Välj en Grupp'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Release med hash %s inte hittas'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'På den här sidan kan du ange texten i de grundläggande reglerna för resursen visas för användare.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'inaktiva användare i 30 dagar', diff --git a/library/language/tg/main.php b/library/language/tg/main.php index 9d82da160..fac48f97d 100644 --- a/library/language/tg/main.php +++ b/library/language/tg/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'ҳисоб Заметки корбар // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Нишон номгўи истифодабарандагони онлайн'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Интихоби корбар'; $lang['GROUP_SELECT'] = 'Интихоб кунед гурӯҳи'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Озод бо шудаи %s ёфт нашуд'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'Дар ин саҳифа шумо метавонед муайян кунед, ки матни қоидаҳои асосии захираҳои аст, ба истифодабарандагон нишон дода мешавад.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'истифодабарандагони ғайрифаъол дар 30 рӯз', diff --git a/library/language/th/main.php b/library/language/th/main.php index a9823aa83..a979eea1d 100644 --- a/library/language/th/main.php +++ b/library/language/th/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'ของผู้ใช้กัป // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'แสดงรายการของผู้ใช้แบบออนไลน์'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'เลือกผู้ใช้'; $lang['GROUP_SELECT'] = 'เลือกกลุ่ม'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'ปล่อยตัวด้วค่อยจั $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'ในหน้านี้คุณสามารถกำหนดข้อความของพื้นฐานกฏของทรัพยากรจะถูกแสดงเป็นเพื่อใช้ได้'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'ทะเบียนผู้ใช้ที่ไม่ได้ทำงานอยู่ใน 30 วัน', diff --git a/library/language/tr/main.php b/library/language/tr/main.php index 7dda73012..80e801927 100644 --- a/library/language/tr/main.php +++ b/library/language/tr/main.php @@ -1990,6 +1990,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Mesaj Sayısı kullanıcı eşitledikt // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Online kullanıcıların listesini göster'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Bir Kullanıcı seçin'; $lang['GROUP_SELECT'] = 'Bir Grup seçin'; @@ -3027,6 +3032,8 @@ $lang['HASH_NOT_FOUND'] = 'Karma %s değilim serbest bulundu'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'Bu sayfada, kaynağın Temel Kurallar metni kullanıcılar için görüntülenir belirtebilirsiniz.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => '30 gün aktif olmayan kullanıcılar', diff --git a/library/language/uk/main.php b/library/language/uk/main.php index b0f32bc0e..92d63bba6 100644 --- a/library/language/uk/main.php +++ b/library/language/uk/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Кількість повідомле // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Показати список користувачів онлайн'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Виберіть користувача'; $lang['GROUP_SELECT'] = 'Оберіть групу'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Роздачу з хешем %s не знайдено $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'На цій сторінці Ви можете вказати текст основних правил ресурсу, які відображаються для користувачів.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'неактивні користувачі протягом 30 днів', diff --git a/library/language/uz/main.php b/library/language/uz/main.php index b68790b99..6b889a347 100644 --- a/library/language/uz/main.php +++ b/library/language/uz/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Foydalanuvchi bilan aloqa Foydalanuvch // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'onlayn foydalanuvchilar ro\'yxatini ko\'rsatish'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Agar foydalanuvchi tanlang'; $lang['GROUP_SELECT'] = 'Guruh tanlash'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'hash %s topilmadi bilan ozod'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'Ushbu sahifada, siz resurs asosiy qoidalarini matn foydalanuvchilarga ko\'rsatish mumkin.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => '30 kun ichida harakatsiz foydalanuvchilar', diff --git a/library/language/vi/main.php b/library/language/vi/main.php index 4275d2786..81ecf126c 100644 --- a/library/language/vi/main.php +++ b/library/language/vi/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Dùng bài đếm đã được đồn // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = 'Hiển thị các danh sách của người dùng trực tuyến'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = 'Chọn một người Sử dụng'; $lang['GROUP_SELECT'] = 'Chọn một Nhóm'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Phát hành với băm %s không tìm thấy'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = 'Trên trang này, anh có thể xác định danh văn bản của các quy tắc cơ bản của các nguồn tài nguyên được hiển thị sử dụng.'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => 'người dùng không hoạt động trong 30 ngày', diff --git a/library/language/zh/main.php b/library/language/zh/main.php index c2ef5a3b4..05cc1e3f5 100644 --- a/library/language/zh/main.php +++ b/library/language/zh/main.php @@ -1986,6 +1986,11 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = '用户员额数已经同步'; // Online Userlist $lang['SHOW_ONLINE_USERLIST'] = '表演列表中的在线用户'; +// Robots.txt editor +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; + // Auth pages $lang['USER_SELECT'] = '选择一个用户'; $lang['GROUP_SELECT'] = '选择一组'; @@ -3021,6 +3026,8 @@ $lang['HASH_NOT_FOUND'] = '释放与哈希%s找不到'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]The text of this page is edited at: [url]%s[/url]. This line can see only administrators.[/align]'; $lang['TERMS_EXPLAIN'] = '在这一页面,可以指定的案文的基本规则的资源显示用户使用。'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; $lang['TR_STATS'] = [ 0 => '不活动的用户在30天', From a3da6f538658fbfe4e57aad10046d8c459a1a498 Mon Sep 17 00:00:00 2001 From: Yury Pikhtarev Date: Fri, 30 May 2025 20:27:13 +0300 Subject: [PATCH 118/216] crowdin: New Crowdin updates (#1915) --- library/language/ru/main.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/library/language/ru/main.php b/library/language/ru/main.php index bb661652b..222cf3dfa 100644 --- a/library/language/ru/main.php +++ b/library/language/ru/main.php @@ -1987,9 +1987,9 @@ $lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Количество сообщени $lang['SHOW_ONLINE_USERLIST'] = 'Показать список пользователей онлайн'; // Robots.txt editor -$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Manage robots.txt'; -$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'File robots.txt has been updated successfully'; -$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sClick Here to return to robots.txt manager%s'; +$lang['ROBOTS_TXT_EDITOR_TITLE'] = 'Редактор robots.txt'; +$lang['ROBOTS_TXT_UPDATED_SUCCESSFULLY'] = 'Файл robots.txt был успешно отредактирован'; +$lang['CLICK_RETURN_ROBOTS_TXT_CONFIG'] = '%sНажмите здесь, чтобы вернуться к редактированию robots.txt%s'; // Auth pages $lang['USER_SELECT'] = 'Выберите пользователя'; @@ -3026,8 +3026,8 @@ $lang['HASH_NOT_FOUND'] = 'Раздача с хэшем %s не найдена'; $lang['TERMS_EMPTY_TEXT'] = '[align=center]Текст этой страницы редактируется по адресу: [url]%s[/url]. Эту строку видят только администраторы.[/align]'; $lang['TERMS_EXPLAIN'] = 'На данной странице вы можете указать текст основных правил ресурса, выводящихся пользователям.'; -$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Terms have been updated successfully'; -$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sClick Here to return to Terms editor%s'; +$lang['TERMS_UPDATED_SUCCESSFULLY'] = 'Правила были успешно обновлены'; +$lang['CLICK_RETURN_TERMS_CONFIG'] = '%sНажмите здесь, чтобы вернуться к редактированию правил%s'; $lang['TR_STATS'] = [ 0 => 'неактивные пользователи в течение 30 дней', From 03eeb08ad185b6dcc99563f567297e41f4a56117 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Fri, 30 May 2025 21:53:24 +0300 Subject: [PATCH 119/216] feat(install): Autofill `Host` in `robots.txt` file (#1916) --- install.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/install.php b/install.php index b095c8bd5..ff88365d3 100644 --- a/install.php +++ b/install.php @@ -401,6 +401,14 @@ if (!empty($DB_HOST) && !empty($DB_DATABASE) && !empty($DB_USERNAME)) { $conn->close(); out("- Importing SQL dump completed!\n", 'success'); + // Autofill host in robots.txt + $robots_txt_file = BB_ROOT . 'robots.txt'; + if (isset($TP_HOST) && is_file($robots_txt_file)) { + $content = file_get_contents($robots_txt_file); + $content = str_replace('example.com', $TP_HOST, $content); + file_put_contents($robots_txt_file, $content); + } + if (isset($APP_ENV) && $APP_ENV === 'local') { if (!is_file(BB_ROOT . 'library/config.local.php')) { if (copy(BB_ROOT . 'library/config.php', BB_ROOT . 'library/config.local.php')) { From 5a60ee0193ca5e6b6e42c3843129fcd600de5112 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Fri, 30 May 2025 18:58:22 +0000 Subject: [PATCH 120/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 51dba9e71..5ceb44ea0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,15 @@ > To view changelog from **v2.0.0** to **v2.4.5-rc.2** navigate to [HISTORY.md](HISTORY.md). ## [nightly](https://nightly.link/torrentpier/torrentpier/workflows/build/master/TorrentPier) +### 🚀 Features + +- *(ACP)* Added `robots.txt` editor ([#1913](https://github.com/torrentpier/torrentpier/pull/1913)) - ([79bb13e](https://github.com/torrentpier/torrentpier/commit/79bb13e17d07505be4d3a3c67223b4f591b66bfb)) +- *(install)* Autofill `Host` in `robots.txt` file ([#1916](https://github.com/torrentpier/torrentpier/pull/1916)) - ([03eeb08](https://github.com/torrentpier/torrentpier/commit/03eeb08ad185b6dcc99563f567297e41f4a56117)) + ### 🈳 New translations +- New Crowdin updates ([#1915](https://github.com/torrentpier/torrentpier/pull/1915)) - ([a3da6f5](https://github.com/torrentpier/torrentpier/commit/a3da6f538658fbfe4e57aad10046d8c459a1a498)) +- New Crowdin updates ([#1914](https://github.com/torrentpier/torrentpier/pull/1914)) - ([a15baef](https://github.com/torrentpier/torrentpier/commit/a15baef69a2955b6dc9cd6e8fdf467550d0b5d09)) - New Crowdin updates ([#1911](https://github.com/torrentpier/torrentpier/pull/1911)) - ([174f441](https://github.com/torrentpier/torrentpier/commit/174f44160e1f33bed9422f0c4eab9d73b7025036)) - New Crowdin updates ([#1910](https://github.com/torrentpier/torrentpier/pull/1910)) - ([c40aad2](https://github.com/torrentpier/torrentpier/commit/c40aad20ad865849d3088498f1ba95a5fb0a0621)) - New Crowdin updates ([#1907](https://github.com/torrentpier/torrentpier/pull/1907)) - ([999ae1e](https://github.com/torrentpier/torrentpier/commit/999ae1eff9f3a4c951fc48efbf94c0cea2a5f8d2)) From 7b8b9a0bbabc1dfbf56cac8c105ad158ae78c3a7 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sat, 31 May 2025 10:13:55 +0300 Subject: [PATCH 121/216] feat: Added ability to set page meta description (#1917) * feat: Added ability to set page meta description * Update page_header.php * Update viewforum.php * Updated * Update viewtopic.php * Update viewtopic.php * Update viewtopic.php * Update viewtopic.php --- index.php | 3 +++ library/includes/page_header.php | 1 + styles/templates/default/page_header.tpl | 5 +++++ viewforum.php | 5 +++++ viewtopic.php | 5 +++++ 5 files changed, 19 insertions(+) diff --git a/index.php b/index.php index bc96573ee..2c752341c 100644 --- a/index.php +++ b/index.php @@ -45,6 +45,9 @@ if ($bb_cfg['show_network_news']) { // Init userdata $user->session_start(); +// Set meta description +$page_cfg['meta_description'] = $bb_cfg['site_desc']; + // Init main vars $viewcat = isset($_GET[POST_CAT_URL]) ? (int)$_GET[POST_CAT_URL] : 0; $lastvisit = IS_GUEST ? TIMENOW : $userdata['user_lastvisit']; diff --git a/library/includes/page_header.php b/library/includes/page_header.php index edd08f58b..f2f22581b 100644 --- a/library/includes/page_header.php +++ b/library/includes/page_header.php @@ -123,6 +123,7 @@ $template->assign_vars([ 'USE_TABLESORTER' => !empty($page_cfg['use_tablesorter']), 'ALLOW_ROBOTS' => !$bb_cfg['board_disable'] && (!isset($page_cfg['allow_robots']) || $page_cfg['allow_robots'] === true), + 'META_DESCRIPTION' => $page_cfg['meta_description'] ?? '', 'SITENAME' => $bb_cfg['sitename'], 'U_INDEX' => BB_ROOT . 'index.php', diff --git a/styles/templates/default/page_header.tpl b/styles/templates/default/page_header.tpl index 4fa536406..0ec5fb8f5 100644 --- a/styles/templates/default/page_header.tpl +++ b/styles/templates/default/page_header.tpl @@ -5,6 +5,11 @@ + + + + + <!-- IF HAVE_NEW_PM -->({HAVE_NEW_PM}) <!-- ENDIF --><!-- IF PAGE_TITLE -->{PAGE_TITLE} :: {SITENAME}<!-- ELSE -->{SITENAME}<!-- ENDIF --> diff --git a/viewforum.php b/viewforum.php index a8e17b581..d77d1ed99 100644 --- a/viewforum.php +++ b/viewforum.php @@ -51,6 +51,11 @@ if (!$forum_id or !$forum_data = @$forums['forum'][$forum_id]) { bb_die($lang['FORUM_NOT_EXIST']); } +// Set meta description +if (!empty($forum_data['forum_desc'])) { + $page_cfg['meta_description'] = $forum_data['forum_desc']; +} + // Make jumpbox make_jumpbox(); diff --git a/viewtopic.php b/viewtopic.php index 01e2de2e5..f952e0f15 100644 --- a/viewtopic.php +++ b/viewtopic.php @@ -671,6 +671,11 @@ for ($i = 0; $i < $total_posts; $i++) { $is_first_post = ($post_id == $t_data['topic_first_post_id']); + // Set meta description + if ($is_first_post || $i == 0) { + $page_cfg['meta_description'] = str_short(str_replace("\n", ' ', strip_tags(br2nl($message))), 220); + } + $template->assign_block_vars('postrow', [ 'ROW_CLASS' => !($i % 2) ? 'row1' : 'row2', 'POST_ID' => $post_id, From 46f29bc68a18fdefad81e26a60fe44f122407ea7 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sat, 31 May 2025 10:19:24 +0300 Subject: [PATCH 122/216] misc: Minor improvements (#1918) --- viewforum.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/viewforum.php b/viewforum.php index d77d1ed99..7a1cdb4a3 100644 --- a/viewforum.php +++ b/viewforum.php @@ -53,7 +53,7 @@ if (!$forum_id or !$forum_data = @$forums['forum'][$forum_id]) { // Set meta description if (!empty($forum_data['forum_desc'])) { - $page_cfg['meta_description'] = $forum_data['forum_desc']; + $page_cfg['meta_description'] = htmlCHR($forum_data['forum_desc']); } // Make jumpbox From efa39767a6cb9ae966bc692580e3f6c4343a109b Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Sat, 31 May 2025 20:09:52 +0000 Subject: [PATCH 123/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ceb44ea0..347920506 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ - *(ACP)* Added `robots.txt` editor ([#1913](https://github.com/torrentpier/torrentpier/pull/1913)) - ([79bb13e](https://github.com/torrentpier/torrentpier/commit/79bb13e17d07505be4d3a3c67223b4f591b66bfb)) - *(install)* Autofill `Host` in `robots.txt` file ([#1916](https://github.com/torrentpier/torrentpier/pull/1916)) - ([03eeb08](https://github.com/torrentpier/torrentpier/commit/03eeb08ad185b6dcc99563f567297e41f4a56117)) +- Added ability to set page meta description ([#1917](https://github.com/torrentpier/torrentpier/pull/1917)) - ([7b8b9a0](https://github.com/torrentpier/torrentpier/commit/7b8b9a0bbabc1dfbf56cac8c105ad158ae78c3a7)) ### 🈳 New translations @@ -24,6 +25,10 @@ - *(deps)* Bump arokettu/bencode from 4.3.0 to 4.3.1 ([#1912](https://github.com/torrentpier/torrentpier/pull/1912)) - ([f76e351](https://github.com/torrentpier/torrentpier/commit/f76e351b32cfa2932bc1afde6c3c522cd993b8af)) +### ⚙️ Miscellaneous + +- Minor improvements ([#1918](https://github.com/torrentpier/torrentpier/pull/1918)) - ([46f29bc](https://github.com/torrentpier/torrentpier/commit/46f29bc68a18fdefad81e26a60fe44f122407ea7)) + ## [v2.4.5](https://github.com/torrentpier/torrentpier/compare/v2.4.5-rc.5..v2.4.5) (2025-05-11) From 125366147c6257abadd489f3802e4a0dab37a89c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Jun 2025 09:43:43 +0300 Subject: [PATCH 124/216] Composer(deps): Bump filp/whoops from 2.18.0 to 2.18.1 (#1919) Bumps [filp/whoops](https://github.com/filp/whoops) from 2.18.0 to 2.18.1. - [Changelog](https://github.com/filp/whoops/blob/master/CHANGELOG.md) - [Commits](https://github.com/filp/whoops/compare/2.18.0...2.18.1) --- updated-dependencies: - dependency-name: filp/whoops dependency-version: 2.18.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.lock b/composer.lock index 2ef822533..921fbc56a 100644 --- a/composer.lock +++ b/composer.lock @@ -819,16 +819,16 @@ }, { "name": "filp/whoops", - "version": "2.18.0", + "version": "2.18.1", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "a7de6c3c6c3c022f5cfc337f8ede6a14460cf77e" + "reference": "8fcc6a862f2e7b94eb4221fd0819ddba3d30ab26" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/a7de6c3c6c3c022f5cfc337f8ede6a14460cf77e", - "reference": "a7de6c3c6c3c022f5cfc337f8ede6a14460cf77e", + "url": "https://api.github.com/repos/filp/whoops/zipball/8fcc6a862f2e7b94eb4221fd0819ddba3d30ab26", + "reference": "8fcc6a862f2e7b94eb4221fd0819ddba3d30ab26", "shasum": "" }, "require": { @@ -878,7 +878,7 @@ ], "support": { "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.18.0" + "source": "https://github.com/filp/whoops/tree/2.18.1" }, "funding": [ { @@ -886,7 +886,7 @@ "type": "github" } ], - "time": "2025-03-15T12:00:00+00:00" + "time": "2025-06-03T18:56:14+00:00" }, { "name": "gemorroj/m3u-parser", @@ -3746,6 +3746,6 @@ "platform": { "php": ">=8.1" }, - "platform-dev": {}, - "plugin-api-version": "2.6.0" + "platform-dev": [], + "plugin-api-version": "2.3.0" } From 6d6786481e9de413e9cd5c1d15817b7cc419dc4b Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Thu, 5 Jun 2025 01:40:24 +0000 Subject: [PATCH 125/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 347920506..79b69a5e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ ### 📦 Dependencies +- *(deps)* Bump filp/whoops from 2.18.0 to 2.18.1 ([#1919](https://github.com/torrentpier/torrentpier/pull/1919)) - ([1253661](https://github.com/torrentpier/torrentpier/commit/125366147c6257abadd489f3802e4a0dab37a89c)) - *(deps)* Bump arokettu/bencode from 4.3.0 to 4.3.1 ([#1912](https://github.com/torrentpier/torrentpier/pull/1912)) - ([f76e351](https://github.com/torrentpier/torrentpier/commit/f76e351b32cfa2932bc1afde6c3c522cd993b8af)) ### ⚙️ Miscellaneous From 4c24cb65bfebf307b717e985b169ea5d27df64f8 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sat, 7 Jun 2025 14:46:42 +0300 Subject: [PATCH 126/216] feat(bbcode): Implement color customization for `[box]` tag (#1920) * feat(bbcode): implement color customization for `[box]` tag * feat(bbcode): implement color customization for `[box]` tag --- library/includes/bbcode.php | 17 +++++++++++++++++ library/language/source/main.php | 2 +- src/Legacy/BBCode.php | 6 ++++-- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/library/includes/bbcode.php b/library/includes/bbcode.php index 9e34d8940..d2465c275 100644 --- a/library/includes/bbcode.php +++ b/library/includes/bbcode.php @@ -83,6 +83,23 @@ HTML; - HTML; +// Box + $bbcode_tpl['box_open'] = <<
      +HTML; + + $bbcode_tpl['box_open_color'] = <<
      +HTML; + + $bbcode_tpl['box_open_color_single'] = <<
      +HTML; + + $bbcode_tpl['box_close'] = <<
      +HTML; + array_deep($bbcode_tpl, 'bbcode_tpl_compact'); return $bbcode_tpl; } diff --git a/library/language/source/main.php b/library/language/source/main.php index 179e8d1f2..6c103c30d 100644 --- a/library/language/source/main.php +++ b/library/language/source/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Bold text: [b]text[/b] (Ctrl+B)'; $lang['ITALIC'] = 'Italic text: [i]text[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'Underline text: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Strikeout text: [s]text[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/src/Legacy/BBCode.php b/src/Legacy/BBCode.php index 1bd517c47..6c12d7602 100644 --- a/src/Legacy/BBCode.php +++ b/src/Legacy/BBCode.php @@ -97,6 +97,8 @@ class BBCode "#\[img=(left|right|center)\]($img_exp)\[/img\]\s*#isu" => $tpl['img_aligned'], "#\[email\]($email_exp)\[/email\]#isu" => '$1', "#\[qpost=([0-9]*)\]#isu" => '$1', + '#\[box=(?:\s*[\'"])?([\#0-9a-zA-Z]+)(?:[\'"]\s*)?\]#isu' => $tpl['box_open_color_single'], + '#\[box=(?:\s*[\'"])?([\#0-9a-zA-Z]+)(?:[\'"]\s*)?,\s*[\'"]?([\#0-9a-zA-Z]+)[\'"]?\]#isu' => $tpl['box_open_color'], ]; $this->str = [ @@ -127,8 +129,8 @@ class BBCode '[/sup]' => '', '[sub]' => '', '[/sub]' => '', - '[box]' => '
      ', - '[/box]' => '
      ', + '[box]' => $tpl['box_open'], + '[/box]' => $tpl['box_close'], '[indent]' => '
      ', '[/indent]' => '
      ', '[del]' => '', From daeb7fe87e8da53745fe7aac0708cefa3392ffdc Mon Sep 17 00:00:00 2001 From: Yury Pikhtarev Date: Sat, 7 Jun 2025 15:00:23 +0300 Subject: [PATCH 127/216] crowdin: New Crowdin updates (#1921) * New translations main.php (Romanian) * New translations main.php (French) * New translations main.php (Spanish) * New translations main.php (Afrikaans) * New translations main.php (Arabic) * New translations main.php (Belarusian) * New translations main.php (Bulgarian) * New translations main.php (Catalan) * New translations main.php (Czech) * New translations main.php (Danish) * New translations main.php (German) * New translations main.php (Greek) * New translations main.php (Finnish) * New translations main.php (Hebrew) * New translations main.php (Hungarian) * New translations main.php (Armenian) * New translations main.php (Italian) * New translations main.php (Japanese) * New translations main.php (Georgian) * New translations main.php (Korean) * New translations main.php (Lithuanian) * New translations main.php (Dutch) * New translations main.php (Norwegian) * New translations main.php (Polish) * New translations main.php (Russian) * New translations main.php (Slovak) * New translations main.php (Slovenian) * New translations main.php (Albanian) * New translations main.php (Serbian (Cyrillic)) * New translations main.php (Swedish) * New translations main.php (Turkish) * New translations main.php (Ukrainian) * New translations main.php (Chinese Traditional) * New translations main.php (English) * New translations main.php (Vietnamese) * New translations main.php (Portuguese, Brazilian) * New translations main.php (Indonesian) * New translations main.php (Thai) * New translations main.php (Croatian) * New translations main.php (Kazakh) * New translations main.php (Estonian) * New translations main.php (Latvian) * New translations main.php (Azerbaijani) * New translations main.php (Hindi) * New translations main.php (Bosnian) * New translations main.php (Uzbek) * New translations main.php (Tajik) --- library/language/af/main.php | 2 +- library/language/ar/main.php | 2 +- library/language/az/main.php | 2 +- library/language/be/main.php | 2 +- library/language/bg/main.php | 2 +- library/language/bs/main.php | 2 +- library/language/ca/main.php | 2 +- library/language/cs/main.php | 2 +- library/language/da/main.php | 2 +- library/language/de/main.php | 2 +- library/language/el/main.php | 2 +- library/language/en/main.php | 2 +- library/language/es/main.php | 2 +- library/language/et/main.php | 2 +- library/language/fi/main.php | 2 +- library/language/fr/main.php | 2 +- library/language/he/main.php | 2 +- library/language/hi/main.php | 2 +- library/language/hr/main.php | 2 +- library/language/hu/main.php | 2 +- library/language/hy/main.php | 2 +- library/language/id/main.php | 2 +- library/language/it/main.php | 2 +- library/language/ja/main.php | 2 +- library/language/ka/main.php | 2 +- library/language/kk/main.php | 2 +- library/language/ko/main.php | 2 +- library/language/lt/main.php | 2 +- library/language/lv/main.php | 2 +- library/language/nl/main.php | 2 +- library/language/no/main.php | 2 +- library/language/pl/main.php | 2 +- library/language/pt/main.php | 2 +- library/language/ro/main.php | 2 +- library/language/ru/main.php | 2 +- library/language/sk/main.php | 2 +- library/language/sl/main.php | 2 +- library/language/sq/main.php | 2 +- library/language/sr/main.php | 2 +- library/language/sv/main.php | 2 +- library/language/tg/main.php | 2 +- library/language/th/main.php | 2 +- library/language/tr/main.php | 2 +- library/language/uk/main.php | 2 +- library/language/uz/main.php | 2 +- library/language/vi/main.php | 2 +- library/language/zh/main.php | 2 +- 47 files changed, 47 insertions(+), 47 deletions(-) diff --git a/library/language/af/main.php b/library/language/af/main.php index d9dd4b987..87315656d 100644 --- a/library/language/af/main.php +++ b/library/language/af/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Vet teks: [b]text[/b] (Ctrl + B)'; $lang['ITALIC'] = 'Kursiewe teks: [i]text[/i] (Ctrl + I)'; $lang['UNDERLINE'] = 'Onderstreep teks: [u]text[/u] (Ctrl + U)'; $lang['STRIKEOUT'] = 'Strikeout-teks: [s]text[/s] (Ctrl + S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/ar/main.php b/library/language/ar/main.php index 016d59b92..e9d9887d2 100644 --- a/library/language/ar/main.php +++ b/library/language/ar/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'نص عريض: [b]text[/b] (Ctrl+B)'; $lang['ITALIC'] = 'نص مائل: [i]text[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'يؤكد النص: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'قذفة النص: [s]text[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/az/main.php b/library/language/az/main.php index d910d0e61..22f22f7f0 100644 --- a/library/language/az/main.php +++ b/library/language/az/main.php @@ -1845,7 +1845,7 @@ $lang['BOLD'] = 'Qalın mətn: [b]text[/b] (əsas birləşməsi Ctrl+B)'; $lang['ITALIC'] = 'Курсивный mətn: [i]text[/i] (əsas birləşməsi Ctrl+ı)'; $lang['UNDERLINE'] = 'Qeyd mətni: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Зачеркнутый mətn: [s]text[/s] (Ctrl+c)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/be/main.php b/library/language/be/main.php index fca6ac213..e83efa4b3 100644 --- a/library/language/be/main.php +++ b/library/language/be/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Тоўсты тэкст: [b]text[/b] (спалучэнне кл $lang['ITALIC'] = 'Курсіўны тэкст: [i]text[/i] (спалучэнне клавіш Ctrl+я)'; $lang['UNDERLINE'] = 'Падкрэсліванне тэксту: [u]text[/u] (клавішы Ctrl+U)'; $lang['STRIKEOUT'] = 'Закрэслены тэкст: [s]text[/s] (Ctrl+з)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/bg/main.php b/library/language/bg/main.php index 922a68692..442531396 100644 --- a/library/language/bg/main.php +++ b/library/language/bg/main.php @@ -1844,7 +1844,7 @@ $lang['BOLD'] = 'Удебелен текст: [b]text[/b] (клавишна ко $lang['ITALIC'] = 'Курсивный текст: [i]text[/i] (Ctrl+i)'; $lang['UNDERLINE'] = 'Подчертаване на текст: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Зачертан текст: [s]text[/s] (Ctrl+c)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/bs/main.php b/library/language/bs/main.php index 1d3ecd05d..c9f927923 100644 --- a/library/language/bs/main.php +++ b/library/language/bs/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Hrabar tekst: [b]text[/b] (Ctrl+B)'; $lang['ITALIC'] = 'Italic tekst: [i]text[/i] (Ctrl+sam)'; $lang['UNDERLINE'] = 'Podvući tekst: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Istakni tekst: [s]text[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/ca/main.php b/library/language/ca/main.php index 6d9fa9d8a..52027ea10 100644 --- a/library/language/ca/main.php +++ b/library/language/ca/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Text en negreta: [b]text[/b] (Ctrl+B)'; $lang['ITALIC'] = 'El text en cursiva: [i]text[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'Underline text: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Ratllat text: [s]text[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/cs/main.php b/library/language/cs/main.php index db5b72e8d..1c1610986 100644 --- a/library/language/cs/main.php +++ b/library/language/cs/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Tučný text: [b]text[/b] (Ctrl+B)'; $lang['ITALIC'] = 'Italic text: [i]text[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'Podtržení textu: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Přeškrtnutí textu: [s]text[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/da/main.php b/library/language/da/main.php index e66f4e5d4..5743836b6 100644 --- a/library/language/da/main.php +++ b/library/language/da/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Fed tekst: [b]text[/b] (Ctrl+B)'; $lang['ITALIC'] = 'Kursiv tekst: [i]text[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'Understreget tekst: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Overstrege tekst: [s]text[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/de/main.php b/library/language/de/main.php index 1388d6a23..4138ac70c 100644 --- a/library/language/de/main.php +++ b/library/language/de/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Fettdruck: [b]text[/b] (Strg+B)'; $lang['ITALIC'] = 'Kursiver text: [i]text[/i] (Strg+I)'; $lang['UNDERLINE'] = 'Text unterstreichen: [u]text[/u] (Strg+U)'; $lang['STRIKEOUT'] = 'Strikeout-text: [s]text[/s] (Strg+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/el/main.php b/library/language/el/main.php index 5f9c81cc7..7081d2f9f 100644 --- a/library/language/el/main.php +++ b/library/language/el/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Κείμενο με έντονη γραφή: [b]text[/b] (Ctrl+ $lang['ITALIC'] = 'Πλάγια γραφή: [i]text[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'Υπογράμμιση κειμένου: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Κεραυνός κείμενο: [s]text[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/en/main.php b/library/language/en/main.php index 7d7dae764..0247bad0f 100644 --- a/library/language/en/main.php +++ b/library/language/en/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Bold text: [b]text[/b] (Ctrl+B)'; $lang['ITALIC'] = 'Italic text: [i]text[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'Underline text: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Strikeout text: [s]text[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/es/main.php b/library/language/es/main.php index 4eafecc0d..a804d2841 100644 --- a/library/language/es/main.php +++ b/library/language/es/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'El texto en negrita: [b]text[/b] (Ctrl+B)'; $lang['ITALIC'] = 'Texto en cursiva: [i]text[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'Subrayar texto: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Tachado de texto: [s]text[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/et/main.php b/library/language/et/main.php index 92c130a56..1acc025e6 100644 --- a/library/language/et/main.php +++ b/library/language/et/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Rasvane tekst: [b]text[/b] (Ctrl+B)'; $lang['ITALIC'] = 'Kaldkirjas tekst: [i]text[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'Allajoonitud tekst: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Strikeout tekst: [s]text[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/fi/main.php b/library/language/fi/main.php index 335dfef82..0d30ac9f4 100644 --- a/library/language/fi/main.php +++ b/library/language/fi/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Rohkea teksti: [b]text[/b] (Ctrl+B)'; $lang['ITALIC'] = 'Kursivoitu teksti: [i]text[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'Alleviivaa teksti: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Yliviivattu teksti: [s]text[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/fr/main.php b/library/language/fr/main.php index f60982a02..05f60449e 100644 --- a/library/language/fr/main.php +++ b/library/language/fr/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Texte en gras: [b]text[/b] (Ctrl+B)'; $lang['ITALIC'] = 'Texte en italique: [i]text[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'Texte souligné: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Texte barré: [s]text[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/he/main.php b/library/language/he/main.php index cd5692cff..f396cca5e 100644 --- a/library/language/he/main.php +++ b/library/language/he/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'טקסט מודגש: [b]text[/b] (Ctrl+B)'; $lang['ITALIC'] = 'טקסט נטוי: [i]text[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'קו תחתון טקסט: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'טקסט חוצה: [s]text[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/hi/main.php b/library/language/hi/main.php index 4208b5580..30a48df79 100644 --- a/library/language/hi/main.php +++ b/library/language/hi/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'बोल्ड टेक्स्ट: [b]text[/b] (Ctrl + B)'; $lang['ITALIC'] = 'इटैलिक टेक्स्ट: [i]text[/i] (Ctrl + I)'; $lang['UNDERLINE'] = 'टेक्स्ट रेखांकित करें: [u]text[/u] (Ctrl + U)'; $lang['STRIKEOUT'] = 'स्ट्राइकआउट पाठ: [s]text[/s] (Ctrl + S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/hr/main.php b/library/language/hr/main.php index 442b55dbc..93ec358b7 100644 --- a/library/language/hr/main.php +++ b/library/language/hr/main.php @@ -1845,7 +1845,7 @@ $lang['BOLD'] = 'Podebljani tekst: [b]text[/b] (Ctrl+B)'; $lang['ITALIC'] = 'Курсивный tekst: [i]text[/i] (Ctrl+i)'; $lang['UNDERLINE'] = 'Podvlačenje teksta: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Prekriženo tekst: [s]text[/s] (Ctrl+s)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/hu/main.php b/library/language/hu/main.php index 7a5407212..1727fc933 100644 --- a/library/language/hu/main.php +++ b/library/language/hu/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Félkövér szöveg: [b]text[/b] (Ctrl+B)'; $lang['ITALIC'] = 'Dőlt szöveg: [i]text[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'Aláhúzott szöveg: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Strikeout szöveg: [s]text[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/hy/main.php b/library/language/hy/main.php index a4add400d..819df71d7 100644 --- a/library/language/hy/main.php +++ b/library/language/hy/main.php @@ -1845,7 +1845,7 @@ $lang['BOLD'] = 'Համարձակ տեքստը: [b]text[/b] (դյուրանցմ $lang['ITALIC'] = 'Курсивный տեքստը: [i]text[/i] (դյուրանցման Ctrl+i)'; $lang['UNDERLINE'] = 'Ընդգծելով տեքստը: [u]text[/u] (բանալիների Ctrl+U)'; $lang['STRIKEOUT'] = 'Зачеркнутый տեքստը: [s]text[/s] (Ctrl+c)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/id/main.php b/library/language/id/main.php index 99f49d87b..cbc71b355 100644 --- a/library/language/id/main.php +++ b/library/language/id/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Teks tebal: [b]text[/b] (Ctrl+B)'; $lang['ITALIC'] = 'Italic text: [i]text[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'Menggarisbawahi teks: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Teks coret: [s]text[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/it/main.php b/library/language/it/main.php index 26058fab9..32df064f6 100644 --- a/library/language/it/main.php +++ b/library/language/it/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Il testo in grassetto: [b]text[/b] (Ctrl+B)'; $lang['ITALIC'] = 'Testo in corsivo: [i]text[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'Sottolineare il testo: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Testo barrato: [s]text[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/ja/main.php b/library/language/ja/main.php index 9413dbd2f..7936bb722 100644 --- a/library/language/ja/main.php +++ b/library/language/ja/main.php @@ -1846,7 +1846,7 @@ $lang['BOLD'] = '大胆な文:[b]text[/b](Ctrl+B)'; $lang['ITALIC'] = 'テキストを斜体:[i]text[/i](Ctrl+I)'; $lang['UNDERLINE'] = '下線文:[u]text[/u](Ctrl+U)'; $lang['STRIKEOUT'] = 'Strikeout文:[s]text[/s](Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/ka/main.php b/library/language/ka/main.php index f94e8f1e5..fcb8fe03f 100644 --- a/library/language/ka/main.php +++ b/library/language/ka/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'თამამი ტექსტი: [b]text[/b] (Ctrl+B)'; $lang['ITALIC'] = 'დახრილი ტექსტი: [i]text[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'ხაზგასმული ტექსტი: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'გადახაზული ტექსტი: [s]text[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/kk/main.php b/library/language/kk/main.php index a0e06bebd..bb75bb359 100644 --- a/library/language/kk/main.php +++ b/library/language/kk/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Қалың мәтін: [b]text[/b] (Ctrl + B)'; $lang['ITALIC'] = 'Қиғаш мәтін: [i]text[/i] (Ctrl + I)'; $lang['UNDERLINE'] = 'Астын сызу мәтін: [u]text[/u] (Ctrl + U)'; $lang['STRIKEOUT'] = 'Сызылған мәтін: [s]text[/s] (Ctrl + S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/ko/main.php b/library/language/ko/main.php index be61b1a4e..d14d7cad9 100644 --- a/library/language/ko/main.php +++ b/library/language/ko/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = '굵은 텍스트:[b]text[/b](Ctrl+B)'; $lang['ITALIC'] = '이탤릭체 텍스트:[i]text[/i](Ctrl+)'; $lang['UNDERLINE'] = '밑줄 텍스트:[u]text[/u](Ctrl+U)'; $lang['STRIKEOUT'] = '삼진 텍스트:[s]text[/s](Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/lt/main.php b/library/language/lt/main.php index 67bfe7307..f39475e9b 100644 --- a/library/language/lt/main.php +++ b/library/language/lt/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Bold tekstas: [b]text[/b] (Ctrl+B)'; $lang['ITALIC'] = 'Pasvirasis tekstas: [i]text[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'Pabrėžiama tekstas: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Strikeout tekstas: [s]text[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/lv/main.php b/library/language/lv/main.php index 6a7b8c59d..6c82c0c3b 100644 --- a/library/language/lv/main.php +++ b/library/language/lv/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Bold teksts: [b]text[/b] (Ctrl+B)'; $lang['ITALIC'] = 'Italic teksts: [i]text[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'Uzsvērts teksts: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Strikeout tekstu: [s]text[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/nl/main.php b/library/language/nl/main.php index 541585067..50c482c56 100644 --- a/library/language/nl/main.php +++ b/library/language/nl/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Vetgedrukte tekst: [b]text[/b] (Ctrl+B)'; $lang['ITALIC'] = 'Cursieve tekst: [i]text[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'Tekst onderstrepen: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Strikeout tekst: [s]text[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/no/main.php b/library/language/no/main.php index cd4caa885..26a8ee147 100644 --- a/library/language/no/main.php +++ b/library/language/no/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Fet tekst: [b]text[/b] (Ctrl+B)'; $lang['ITALIC'] = 'Kursiv tekst: [i]text[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'Understreket tekst: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Overstreke tekst: [s]text[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/pl/main.php b/library/language/pl/main.php index 5e4540ab6..b8608a705 100644 --- a/library/language/pl/main.php +++ b/library/language/pl/main.php @@ -1845,7 +1845,7 @@ $lang['BOLD'] = 'Pogrubiony tekst: [b]text[/b] (kombinacja klawiszy Ctrl+B)'; $lang['ITALIC'] = 'Kursywa tekst: [i]text[/i] (kombinacja klawiszy Ctrl+i)'; $lang['UNDERLINE'] = 'Podkreślenie tekstu: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Przekreślony tekst: [s]text[/s] (Ctrl+z)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/pt/main.php b/library/language/pt/main.php index 3ac333097..8ff4d5ae5 100644 --- a/library/language/pt/main.php +++ b/library/language/pt/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Texto em negrito: [b]text[/b] (Ctrl+B)'; $lang['ITALIC'] = 'Texto em itálico: [i]text[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'Sublinhar o texto: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Texto rasurado: [s]text[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/ro/main.php b/library/language/ro/main.php index 89248e590..c8fe8cdb7 100644 --- a/library/language/ro/main.php +++ b/library/language/ro/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Bold text: [b]text[/b] (Ctrl+B)'; $lang['ITALIC'] = 'Italic text: [i]text[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'Subliniere text: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Ratari text: [s]text[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/ru/main.php b/library/language/ru/main.php index 222cf3dfa..9917fbe94 100644 --- a/library/language/ru/main.php +++ b/library/language/ru/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Жирный текст: [b]текст[/b] (Ctrl+B)'; $lang['ITALIC'] = 'Наклонный текст: [i]текст[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'Подчеркнутый текст: [u]текст[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Зачеркнутый текст: [s]текст[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Рамка вокруг текста: [box]текст[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Добавить отступ: [indent]текст[/indent]'; $lang['SUPERSCRIPT'] = 'Надстрочный текст: [sup]текст[/sup]'; $lang['SUBSCRIPT'] = 'Подстрочный текст: [sub]текст[/sub]'; diff --git a/library/language/sk/main.php b/library/language/sk/main.php index c04987f6b..6c297b4cb 100644 --- a/library/language/sk/main.php +++ b/library/language/sk/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Tučným písmom (Bold): [b]text[/b] (Ctrl+B)'; $lang['ITALIC'] = 'Kurzíva text: [i]text[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'Podčiarknutie textu: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Preškrtnuté text: [s]text[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/sl/main.php b/library/language/sl/main.php index 997e2b182..1bbc434c5 100644 --- a/library/language/sl/main.php +++ b/library/language/sl/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Krepko besedilo: [b]text[/b] (Ctrl+B)'; $lang['ITALIC'] = 'Ležeče besedilo: [i]text[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'Podčrtano besedilo: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Prečrtano besedilo: [s]text[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/sq/main.php b/library/language/sq/main.php index e851b23f9..b48b41d36 100644 --- a/library/language/sq/main.php +++ b/library/language/sq/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Tekst Bold: [b]text[/b] (Ctrl+B)'; $lang['ITALIC'] = 'Italic tekst: [i]text[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'Theksoj tekst: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Strikeout tekst: [s]text[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/sr/main.php b/library/language/sr/main.php index 35918f138..4b7e7ef9c 100644 --- a/library/language/sr/main.php +++ b/library/language/sr/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Болд текст: [b]text[/b] (комбинација тас $lang['ITALIC'] = 'Курсивный текст: [i]text[/i] (комбинација тастера Ctrl+ја)'; $lang['UNDERLINE'] = 'Подвлачења текста: [u]text[/u] (тастера Цтрл+у)'; $lang['STRIKEOUT'] = 'Прецртано текст: [s]text[/s] (Цтрл+ц)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/sv/main.php b/library/language/sv/main.php index 3974b975e..ba8157ced 100644 --- a/library/language/sv/main.php +++ b/library/language/sv/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Fet text: [b]text[/b] (Ctrl+B)'; $lang['ITALIC'] = 'Kursiv text: [i]text[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'Understruken text: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Genomstruken text: [s]text[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/tg/main.php b/library/language/tg/main.php index fac48f97d..9284e87a2 100644 --- a/library/language/tg/main.php +++ b/library/language/tg/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Матни Bold: [b]text[/b] (Ctrl + B)'; $lang['ITALIC'] = 'Матни Italic: [i]text[/i] (Ctrl + I)'; $lang['UNDERLINE'] = 'Таъкид матн: [u]text[/u] (Ctrl + U)'; $lang['STRIKEOUT'] = 'Матни Strikeout: [s]text[/s] (Ctrl + S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/th/main.php b/library/language/th/main.php index a979eea1d..1fa945fea 100644 --- a/library/language/th/main.php +++ b/library/language/th/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'ล้างข้อความ:[b]text[/b](ปุ่มพ $lang['ITALIC'] = 'ตัวเอียงข้อความ:[i]text[/i](ปุ่มพิมพ์ Ctrl+ฉั)'; $lang['UNDERLINE'] = 'ขีดเส้นใต้ข้อความ:[u]text[/u](ปุ่มพิมพ์ Ctrl+ดำน้ำ)'; $lang['STRIKEOUT'] = 'ตัวขีดเส้นพาดกลางข้อความ:[s]text[/s](ปุ่มพิมพ์ Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/tr/main.php b/library/language/tr/main.php index 80e801927..6325952ed 100644 --- a/library/language/tr/main.php +++ b/library/language/tr/main.php @@ -1846,7 +1846,7 @@ $lang['BOLD'] = '(Ctrl+B)kalın metin: [b]text[/b]'; $lang['ITALIC'] = 'İtalik metin: [i]text[/i] (Ctrl+I)'; $lang['UNDERLINE'] = '(Ctrl+U)altı çizili metin: [u]text[/u]'; $lang['STRIKEOUT'] = '(Ctrl+S)üstü çizili metin: [s]text[/s]'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/uk/main.php b/library/language/uk/main.php index 92d63bba6..30ca5b3a9 100644 --- a/library/language/uk/main.php +++ b/library/language/uk/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Жирний текст: [b]текст[/b] (Ctrl+B)'; $lang['ITALIC'] = 'Курсив: [i]текст[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'Підкреслений текст: [u]текст[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Закреслений текст: [s]текст[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/uz/main.php b/library/language/uz/main.php index 6b889a347..a0d446f3e 100644 --- a/library/language/uz/main.php +++ b/library/language/uz/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Bold matni: [b]text[/b] (Ctrl + B)'; $lang['ITALIC'] = 'Kursiv matn: [i]text[/i] (Ctrl + I)'; $lang['UNDERLINE'] = 'Tagiga chizilgan matn: [u]text[/u] (Ctrl + U)'; $lang['STRIKEOUT'] = 'Strikeout matni: [s]text[/s] (Ctrl + S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/vi/main.php b/library/language/vi/main.php index 81ecf126c..0e8c6a89b 100644 --- a/library/language/vi/main.php +++ b/library/language/vi/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Văn bản đậm: [b]text[/b] (Ctrl+B)'; $lang['ITALIC'] = 'Nghiêng văn bản: [i]text[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'Nhấn mạnh chữ: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Gạch văn bản: [s]text[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; diff --git a/library/language/zh/main.php b/library/language/zh/main.php index 05cc1e3f5..7b6019470 100644 --- a/library/language/zh/main.php +++ b/library/language/zh/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = '粗体文字:[b]text[/b](Ctrl+B)'; $lang['ITALIC'] = '斜体文字:[i]text[/i](Ctrl+I)'; $lang['UNDERLINE'] = '下划线的案文:[u]text[/u](Ctrl+U)'; $lang['STRIKEOUT'] = '删除线文本:[s]text[/s](Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box]'; +$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; From 8e965fb1ceb5e82201c43b33fcdb044256646191 Mon Sep 17 00:00:00 2001 From: Yury Pikhtarev Date: Sat, 7 Jun 2025 19:29:59 +0300 Subject: [PATCH 128/216] crowdin: New translations main.php (Russian) (#1922) --- library/language/ru/main.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/language/ru/main.php b/library/language/ru/main.php index 9917fbe94..947618625 100644 --- a/library/language/ru/main.php +++ b/library/language/ru/main.php @@ -1842,7 +1842,7 @@ $lang['BOLD'] = 'Жирный текст: [b]текст[/b] (Ctrl+B)'; $lang['ITALIC'] = 'Наклонный текст: [i]текст[/i] (Ctrl+I)'; $lang['UNDERLINE'] = 'Подчеркнутый текст: [u]текст[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Зачеркнутый текст: [s]текст[/s] (Ctrl+S)'; -$lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; +$lang['BOX_TAG'] = 'Рамка вокруг текста: [box]текст[/box] или [box=#333,#888]текст[/box]'; $lang['INDENT_TAG'] = 'Добавить отступ: [indent]текст[/indent]'; $lang['SUPERSCRIPT'] = 'Надстрочный текст: [sup]текст[/sup]'; $lang['SUBSCRIPT'] = 'Подстрочный текст: [sub]текст[/sub]'; From 5768fe7071ae4aa8badbbe69a7d8294b360fccbe Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Sun, 8 Jun 2025 01:48:39 +0000 Subject: [PATCH 129/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 79b69a5e3..e3b26f3a3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,11 +7,14 @@ ### 🚀 Features - *(ACP)* Added `robots.txt` editor ([#1913](https://github.com/torrentpier/torrentpier/pull/1913)) - ([79bb13e](https://github.com/torrentpier/torrentpier/commit/79bb13e17d07505be4d3a3c67223b4f591b66bfb)) +- *(bbcode)* Implement color customization for `[box]` tag ([#1920](https://github.com/torrentpier/torrentpier/pull/1920)) - ([4c24cb6](https://github.com/torrentpier/torrentpier/commit/4c24cb65bfebf307b717e985b169ea5d27df64f8)) - *(install)* Autofill `Host` in `robots.txt` file ([#1916](https://github.com/torrentpier/torrentpier/pull/1916)) - ([03eeb08](https://github.com/torrentpier/torrentpier/commit/03eeb08ad185b6dcc99563f567297e41f4a56117)) - Added ability to set page meta description ([#1917](https://github.com/torrentpier/torrentpier/pull/1917)) - ([7b8b9a0](https://github.com/torrentpier/torrentpier/commit/7b8b9a0bbabc1dfbf56cac8c105ad158ae78c3a7)) ### 🈳 New translations +- New translations main.php (Russian) ([#1922](https://github.com/torrentpier/torrentpier/pull/1922)) - ([8e965fb](https://github.com/torrentpier/torrentpier/commit/8e965fb1ceb5e82201c43b33fcdb044256646191)) +- New Crowdin updates ([#1921](https://github.com/torrentpier/torrentpier/pull/1921)) - ([daeb7fe](https://github.com/torrentpier/torrentpier/commit/daeb7fe87e8da53745fe7aac0708cefa3392ffdc)) - New Crowdin updates ([#1915](https://github.com/torrentpier/torrentpier/pull/1915)) - ([a3da6f5](https://github.com/torrentpier/torrentpier/commit/a3da6f538658fbfe4e57aad10046d8c459a1a498)) - New Crowdin updates ([#1914](https://github.com/torrentpier/torrentpier/pull/1914)) - ([a15baef](https://github.com/torrentpier/torrentpier/commit/a15baef69a2955b6dc9cd6e8fdf467550d0b5d09)) - New Crowdin updates ([#1911](https://github.com/torrentpier/torrentpier/pull/1911)) - ([174f441](https://github.com/torrentpier/torrentpier/commit/174f44160e1f33bed9422f0c4eab9d73b7025036)) From f64c340563378a364e1f00c64b17ac1c79531302 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sun, 8 Jun 2025 12:44:04 +0300 Subject: [PATCH 130/216] feat(bbcode): Added `[nfo]` and `[pre]` tags (#1923) --- library/language/source/main.php | 2 ++ src/Legacy/BBCode.php | 4 ++++ styles/templates/default/css/globals.css | 20 ++++++++++++++++++++ styles/templates/default/posting_editor.tpl | 4 ++++ 4 files changed, 30 insertions(+) diff --git a/library/language/source/main.php b/library/language/source/main.php index 6c103c30d..80059d74b 100644 --- a/library/language/source/main.php +++ b/library/language/source/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Underline text: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Strikeout text: [s]text[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Quote text: [quote]text[/quote] (Ctrl+Q)'; diff --git a/src/Legacy/BBCode.php b/src/Legacy/BBCode.php index 6c12d7602..330fc6a02 100644 --- a/src/Legacy/BBCode.php +++ b/src/Legacy/BBCode.php @@ -133,6 +133,10 @@ class BBCode '[/box]' => $tpl['box_close'], '[indent]' => '
      ', '[/indent]' => '
      ', + '[pre]' => '
      ',
      +            '[/pre]' => '
      ', + '[nfo]' => '
      ',
      +            '[/nfo]' => '
      ', '[del]' => '', '[/del]' => '', '[clear]' => '
       
      ', diff --git a/styles/templates/default/css/globals.css b/styles/templates/default/css/globals.css index 36d38c47d..534df58a9 100644 --- a/styles/templates/default/css/globals.css +++ b/styles/templates/default/css/globals.css @@ -392,6 +392,26 @@ a.gen, a.med, a.genmed, a.small, a.gensmall { display: inline-block; } +.post_body pre { + border: none; + background: transparent; + padding: 0; + margin: 0; +} + +.post-pre { + white-space: pre-wrap; + font-family: "Lucida Console", Consolas, monospace; +} + +.post-nfo { + font-size: 13px; + line-height: 1em; + white-space: pre; + font-family: Consolas, monospace; + overflow-y: hidden; +} + /* ---------------------------------- * Code blocks * ---------------------------------- */ diff --git a/styles/templates/default/posting_editor.tpl b/styles/templates/default/posting_editor.tpl index e8da89c82..44621a158 100644 --- a/styles/templates/default/posting_editor.tpl +++ b/styles/templates/default/posting_editor.tpl @@ -75,7 +75,9 @@ ajax.callback.posts = function(data) {   + +
      @@ -209,6 +211,8 @@ function checkForm(form) { bbcode.addTag("codeAcronym", 'acronym="text"', "/acronym", "", ctrl); bbcode.addTag("codeBox", "box", null, "", ctrl); bbcode.addTag("codeIndent", "indent", null, "", ctrl); + bbcode.addTag("codePre", "pre", null, "", ctrl); + bbcode.addTag("codeNfo", "nfo", null, "", ctrl); bbcode.addTag("fontFace", function (e) { var v = e.value; From 0515670bee99faa5f0979162096114bc9d3ddf98 Mon Sep 17 00:00:00 2001 From: Yury Pikhtarev Date: Sun, 8 Jun 2025 14:47:14 +0300 Subject: [PATCH 131/216] crowdin: New Crowdin updates (#1924) * New translations main.php (Romanian) * New translations main.php (French) * New translations main.php (Spanish) * New translations main.php (Afrikaans) * New translations main.php (Arabic) * New translations main.php (Belarusian) * New translations main.php (Bulgarian) * New translations main.php (Catalan) * New translations main.php (Czech) * New translations main.php (Danish) * New translations main.php (German) * New translations main.php (Greek) * New translations main.php (Finnish) * New translations main.php (Hebrew) * New translations main.php (Hungarian) * New translations main.php (Armenian) * New translations main.php (Italian) * New translations main.php (Japanese) * New translations main.php (Georgian) * New translations main.php (Korean) * New translations main.php (Lithuanian) * New translations main.php (Dutch) * New translations main.php (Norwegian) * New translations main.php (Polish) * New translations main.php (Russian) * New translations main.php (Slovak) * New translations main.php (Slovenian) * New translations main.php (Albanian) * New translations main.php (Serbian (Cyrillic)) * New translations main.php (Swedish) * New translations main.php (Turkish) * New translations main.php (Ukrainian) * New translations main.php (Chinese Traditional) * New translations main.php (English) * New translations main.php (Vietnamese) * New translations main.php (Portuguese, Brazilian) * New translations main.php (Indonesian) * New translations main.php (Thai) * New translations main.php (Croatian) * New translations main.php (Kazakh) * New translations main.php (Estonian) * New translations main.php (Latvian) * New translations main.php (Azerbaijani) * New translations main.php (Hindi) * New translations main.php (Bosnian) * New translations main.php (Uzbek) * New translations main.php (Tajik) --- library/language/af/main.php | 2 ++ library/language/ar/main.php | 2 ++ library/language/az/main.php | 2 ++ library/language/be/main.php | 2 ++ library/language/bg/main.php | 2 ++ library/language/bs/main.php | 2 ++ library/language/ca/main.php | 2 ++ library/language/cs/main.php | 2 ++ library/language/da/main.php | 2 ++ library/language/de/main.php | 2 ++ library/language/el/main.php | 2 ++ library/language/en/main.php | 2 ++ library/language/es/main.php | 2 ++ library/language/et/main.php | 2 ++ library/language/fi/main.php | 2 ++ library/language/fr/main.php | 2 ++ library/language/he/main.php | 2 ++ library/language/hi/main.php | 2 ++ library/language/hr/main.php | 2 ++ library/language/hu/main.php | 2 ++ library/language/hy/main.php | 2 ++ library/language/id/main.php | 2 ++ library/language/it/main.php | 2 ++ library/language/ja/main.php | 2 ++ library/language/ka/main.php | 2 ++ library/language/kk/main.php | 2 ++ library/language/ko/main.php | 2 ++ library/language/lt/main.php | 2 ++ library/language/lv/main.php | 2 ++ library/language/nl/main.php | 2 ++ library/language/no/main.php | 2 ++ library/language/pl/main.php | 2 ++ library/language/pt/main.php | 2 ++ library/language/ro/main.php | 2 ++ library/language/ru/main.php | 2 ++ library/language/sk/main.php | 2 ++ library/language/sl/main.php | 2 ++ library/language/sq/main.php | 2 ++ library/language/sr/main.php | 2 ++ library/language/sv/main.php | 2 ++ library/language/tg/main.php | 2 ++ library/language/th/main.php | 2 ++ library/language/tr/main.php | 2 ++ library/language/uk/main.php | 2 ++ library/language/uz/main.php | 2 ++ library/language/vi/main.php | 2 ++ library/language/zh/main.php | 2 ++ 47 files changed, 94 insertions(+) diff --git a/library/language/af/main.php b/library/language/af/main.php index 87315656d..bfa8d8662 100644 --- a/library/language/af/main.php +++ b/library/language/af/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Onderstreep teks: [u]text[/u] (Ctrl + U)'; $lang['STRIKEOUT'] = 'Strikeout-teks: [s]text[/s] (Ctrl + S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Aanhalingstekst: [quote]text[/quote] (Ctrl + Q)'; diff --git a/library/language/ar/main.php b/library/language/ar/main.php index e9d9887d2..28e5f6d51 100644 --- a/library/language/ar/main.php +++ b/library/language/ar/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'يؤكد النص: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'قذفة النص: [s]text[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'اقتبس النص: [quote]text[/quote] (Ctrl+Q)'; diff --git a/library/language/az/main.php b/library/language/az/main.php index 22f22f7f0..ff831ec4f 100644 --- a/library/language/az/main.php +++ b/library/language/az/main.php @@ -1847,6 +1847,8 @@ $lang['UNDERLINE'] = 'Qeyd mətni: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Зачеркнутый mətn: [s]text[/s] (Ctrl+c)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Sitat mətn: [quote]text[/quote] (əsas birləşməsi Ctrl+M)'; diff --git a/library/language/be/main.php b/library/language/be/main.php index e83efa4b3..754ef5899 100644 --- a/library/language/be/main.php +++ b/library/language/be/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Падкрэсліванне тэксту: [u]text[/u] (к $lang['STRIKEOUT'] = 'Закрэслены тэкст: [s]text[/s] (Ctrl+з)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Цытую тэкст: [quote]text[/quote] (спалучэнне клавіш Ctrl+М)'; diff --git a/library/language/bg/main.php b/library/language/bg/main.php index 442531396..7e43eaa72 100644 --- a/library/language/bg/main.php +++ b/library/language/bg/main.php @@ -1846,6 +1846,8 @@ $lang['UNDERLINE'] = 'Подчертаване на текст: [u]text[/u] (Ctr $lang['STRIKEOUT'] = 'Зачертан текст: [s]text[/s] (Ctrl+c)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Цитирам текст: [quote]text[/quote] (комбинация от клавиши Ctrl+M)'; diff --git a/library/language/bs/main.php b/library/language/bs/main.php index c9f927923..249ee635a 100644 --- a/library/language/bs/main.php +++ b/library/language/bs/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Podvući tekst: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Istakni tekst: [s]text[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Citiram tekst: [quote]text[/quote] (Ctrl+Q)'; diff --git a/library/language/ca/main.php b/library/language/ca/main.php index 52027ea10..2d4bc2c93 100644 --- a/library/language/ca/main.php +++ b/library/language/ca/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Underline text: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Ratllat text: [s]text[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Cita de text: [quote]text[/quote] (Ctrl+Q)'; diff --git a/library/language/cs/main.php b/library/language/cs/main.php index 1c1610986..0371c5541 100644 --- a/library/language/cs/main.php +++ b/library/language/cs/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Podtržení textu: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Přeškrtnutí textu: [s]text[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Cituji text: [quote]text[/quote] (Ctrl+Q)'; diff --git a/library/language/da/main.php b/library/language/da/main.php index 5743836b6..e2acc1204 100644 --- a/library/language/da/main.php +++ b/library/language/da/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Understreget tekst: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Overstrege tekst: [s]text[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Citat af tekst: [quote]text[/quote] (Ctrl+Q)'; diff --git a/library/language/de/main.php b/library/language/de/main.php index 4138ac70c..7f1e29998 100644 --- a/library/language/de/main.php +++ b/library/language/de/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Text unterstreichen: [u]text[/u] (Strg+U)'; $lang['STRIKEOUT'] = 'Strikeout-text: [s]text[/s] (Strg+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Zitat text: [quote]text[/quote] (Strg+Q)'; diff --git a/library/language/el/main.php b/library/language/el/main.php index 7081d2f9f..0294de1b8 100644 --- a/library/language/el/main.php +++ b/library/language/el/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Υπογράμμιση κειμένου: [u]text[/u] (Ctrl $lang['STRIKEOUT'] = 'Κεραυνός κείμενο: [s]text[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Παραθέτω το κείμενο: [quote]text[/quote] (Ctrl+Q)'; diff --git a/library/language/en/main.php b/library/language/en/main.php index 0247bad0f..d08ba043d 100644 --- a/library/language/en/main.php +++ b/library/language/en/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Underline text: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Strikeout text: [s]text[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Quote text: [quote]text[/quote] (Ctrl+Q)'; diff --git a/library/language/es/main.php b/library/language/es/main.php index a804d2841..3cda5475b 100644 --- a/library/language/es/main.php +++ b/library/language/es/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Subrayar texto: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Tachado de texto: [s]text[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Cita de texto: [quote]text[/quote] (Ctrl+Q)'; diff --git a/library/language/et/main.php b/library/language/et/main.php index 1acc025e6..8f4d41e6d 100644 --- a/library/language/et/main.php +++ b/library/language/et/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Allajoonitud tekst: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Strikeout tekst: [s]text[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Tsiteerin teksti: [quote]text[/quote] (Ctrl+Q)'; diff --git a/library/language/fi/main.php b/library/language/fi/main.php index 0d30ac9f4..eee45e1e1 100644 --- a/library/language/fi/main.php +++ b/library/language/fi/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Alleviivaa teksti: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Yliviivattu teksti: [s]text[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Lainaus tekstistä: [quote]text[/quote] (Ctrl+Q)'; diff --git a/library/language/fr/main.php b/library/language/fr/main.php index 05f60449e..2ab2e47d6 100644 --- a/library/language/fr/main.php +++ b/library/language/fr/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Texte souligné: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Texte barré: [s]text[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Citation du texte: [quote]text[/quote] (Ctrl+Q)'; diff --git a/library/language/he/main.php b/library/language/he/main.php index f396cca5e..6c3a32e1a 100644 --- a/library/language/he/main.php +++ b/library/language/he/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'קו תחתון טקסט: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'טקסט חוצה: [s]text[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'ציטוט טקסט: [quote]text[/quote] (Ctrl+Q)'; diff --git a/library/language/hi/main.php b/library/language/hi/main.php index 30a48df79..bb429b939 100644 --- a/library/language/hi/main.php +++ b/library/language/hi/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'टेक्स्ट रेखांकित करे $lang['STRIKEOUT'] = 'स्ट्राइकआउट पाठ: [s]text[/s] (Ctrl + S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'उद्धरण पाठ: [quote]text[/quote] (Ctrl + Q)'; diff --git a/library/language/hr/main.php b/library/language/hr/main.php index 93ec358b7..22d6a12fe 100644 --- a/library/language/hr/main.php +++ b/library/language/hr/main.php @@ -1847,6 +1847,8 @@ $lang['UNDERLINE'] = 'Podvlačenje teksta: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Prekriženo tekst: [s]text[/s] (Ctrl+s)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Citiram tekst: [quote]text[/quote] (Ctrl+M)'; diff --git a/library/language/hu/main.php b/library/language/hu/main.php index 1727fc933..d7377649a 100644 --- a/library/language/hu/main.php +++ b/library/language/hu/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Aláhúzott szöveg: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Strikeout szöveg: [s]text[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Idézet szövege: [quote]text[/quote] (Ctrl+Q)'; diff --git a/library/language/hy/main.php b/library/language/hy/main.php index 819df71d7..e11231f05 100644 --- a/library/language/hy/main.php +++ b/library/language/hy/main.php @@ -1847,6 +1847,8 @@ $lang['UNDERLINE'] = 'Ընդգծելով տեքստը: [u]text[/u] (բանալի $lang['STRIKEOUT'] = 'Зачеркнутый տեքստը: [s]text[/s] (Ctrl+c)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Մեջբերում եմ տեքստը: [quote]text[/quote] (դյուրանցման Ctrl+M)'; diff --git a/library/language/id/main.php b/library/language/id/main.php index cbc71b355..e159aa143 100644 --- a/library/language/id/main.php +++ b/library/language/id/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Menggarisbawahi teks: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Teks coret: [s]text[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Kutipan teks: [quote]text[/quote] (Ctrl+Q)'; diff --git a/library/language/it/main.php b/library/language/it/main.php index 32df064f6..2b6755863 100644 --- a/library/language/it/main.php +++ b/library/language/it/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Sottolineare il testo: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Testo barrato: [s]text[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Preventivo testo: [quote]text[/quote] (Ctrl+Q)'; diff --git a/library/language/ja/main.php b/library/language/ja/main.php index 7936bb722..81ea38f56 100644 --- a/library/language/ja/main.php +++ b/library/language/ja/main.php @@ -1848,6 +1848,8 @@ $lang['UNDERLINE'] = '下線文:[u]text[/u](Ctrl+U)'; $lang['STRIKEOUT'] = 'Strikeout文:[s]text[/s](Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = '引用文:[quote]text[/quote](Ctrl+Q)'; diff --git a/library/language/ka/main.php b/library/language/ka/main.php index fcb8fe03f..686bf7b8a 100644 --- a/library/language/ka/main.php +++ b/library/language/ka/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'ხაზგასმული ტექსტი: [u]text $lang['STRIKEOUT'] = 'გადახაზული ტექსტი: [s]text[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Quote ტექსტი: [quote]text[/quote] (Ctrl+Q)'; diff --git a/library/language/kk/main.php b/library/language/kk/main.php index bb75bb359..6720f669d 100644 --- a/library/language/kk/main.php +++ b/library/language/kk/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Астын сызу мәтін: [u]text[/u] (Ctrl + U)'; $lang['STRIKEOUT'] = 'Сызылған мәтін: [s]text[/s] (Ctrl + S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Дәйексөз мәтіні: [quote]text[/quote] (Ctrl + Q)'; diff --git a/library/language/ko/main.php b/library/language/ko/main.php index d14d7cad9..34cb0ac74 100644 --- a/library/language/ko/main.php +++ b/library/language/ko/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = '밑줄 텍스트:[u]text[/u](Ctrl+U)'; $lang['STRIKEOUT'] = '삼진 텍스트:[s]text[/s](Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = '견적 텍스트:[quote]text[/quote](Ctrl+Q)'; diff --git a/library/language/lt/main.php b/library/language/lt/main.php index f39475e9b..b925e0926 100644 --- a/library/language/lt/main.php +++ b/library/language/lt/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Pabrėžiama tekstas: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Strikeout tekstas: [s]text[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Citata tekstas: [quote]text[/quote] (Ctrl+Q)'; diff --git a/library/language/lv/main.php b/library/language/lv/main.php index 6c82c0c3b..2c194aaf5 100644 --- a/library/language/lv/main.php +++ b/library/language/lv/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Uzsvērts teksts: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Strikeout tekstu: [s]text[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Citēt tekstu: [quote]text[/quote] (Ctrl+J)'; diff --git a/library/language/nl/main.php b/library/language/nl/main.php index 50c482c56..eb118b060 100644 --- a/library/language/nl/main.php +++ b/library/language/nl/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Tekst onderstrepen: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Strikeout tekst: [s]text[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Quote tekst: [quote]text[/quote] (Ctrl+Q)'; diff --git a/library/language/no/main.php b/library/language/no/main.php index 26a8ee147..66871ecf3 100644 --- a/library/language/no/main.php +++ b/library/language/no/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Understreket tekst: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Overstreke tekst: [s]text[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Sitat tekst: [quote]text[/quote] (Ctrl+Q)'; diff --git a/library/language/pl/main.php b/library/language/pl/main.php index b8608a705..6b1c52d56 100644 --- a/library/language/pl/main.php +++ b/library/language/pl/main.php @@ -1847,6 +1847,8 @@ $lang['UNDERLINE'] = 'Podkreślenie tekstu: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Przekreślony tekst: [s]text[/s] (Ctrl+z)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Cytuję tekst: [quote]text[/quote] (kombinacja klawiszy Ctrl+M)'; diff --git a/library/language/pt/main.php b/library/language/pt/main.php index 8ff4d5ae5..6ef978666 100644 --- a/library/language/pt/main.php +++ b/library/language/pt/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Sublinhar o texto: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Texto rasurado: [s]text[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Citação de texto: [quote]text[/quote] (Ctrl+Q)'; diff --git a/library/language/ro/main.php b/library/language/ro/main.php index c8fe8cdb7..2ed39b751 100644 --- a/library/language/ro/main.php +++ b/library/language/ro/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Subliniere text: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Ratari text: [s]text[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Text citat: [quote]text[/quote] (Ctrl+Q)'; diff --git a/library/language/ru/main.php b/library/language/ru/main.php index 947618625..938b748e2 100644 --- a/library/language/ru/main.php +++ b/library/language/ru/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Подчеркнутый текст: [u]текст[/u] (Ct $lang['STRIKEOUT'] = 'Зачеркнутый текст: [s]текст[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Рамка вокруг текста: [box]текст[/box] или [box=#333,#888]текст[/box]'; $lang['INDENT_TAG'] = 'Добавить отступ: [indent]текст[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Надстрочный текст: [sup]текст[/sup]'; $lang['SUBSCRIPT'] = 'Подстрочный текст: [sub]текст[/sub]'; $lang['QUOTE_TITLE'] = 'Цитата: [quote]текст[/quote] (Ctrl+Q)'; diff --git a/library/language/sk/main.php b/library/language/sk/main.php index 6c297b4cb..8e4464be9 100644 --- a/library/language/sk/main.php +++ b/library/language/sk/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Podčiarknutie textu: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Preškrtnuté text: [s]text[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Citát text: [quote]text[/quote] (Ctrl+Q)'; diff --git a/library/language/sl/main.php b/library/language/sl/main.php index 1bbc434c5..d0632691d 100644 --- a/library/language/sl/main.php +++ b/library/language/sl/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Podčrtano besedilo: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Prečrtano besedilo: [s]text[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Citiram besedilo: [quote]text[/quote] (Ctrl+Q)'; diff --git a/library/language/sq/main.php b/library/language/sq/main.php index b48b41d36..d800caff4 100644 --- a/library/language/sq/main.php +++ b/library/language/sq/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Theksoj tekst: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Strikeout tekst: [s]text[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Citoj tekstin: [quote]text[/quote] (Ctrl+P)'; diff --git a/library/language/sr/main.php b/library/language/sr/main.php index 4b7e7ef9c..a2a51ea4d 100644 --- a/library/language/sr/main.php +++ b/library/language/sr/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Подвлачења текста: [u]text[/u] (тасте $lang['STRIKEOUT'] = 'Прецртано текст: [s]text[/s] (Цтрл+ц)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Цитирам текст: [quote]text[/quote] (комбинација тастера Ctrl+М)'; diff --git a/library/language/sv/main.php b/library/language/sv/main.php index ba8157ced..302211a30 100644 --- a/library/language/sv/main.php +++ b/library/language/sv/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Understruken text: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Genomstruken text: [s]text[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Citera text: [quote]text[/quote] (Ctrl+Q)'; diff --git a/library/language/tg/main.php b/library/language/tg/main.php index 9284e87a2..c74d0acfb 100644 --- a/library/language/tg/main.php +++ b/library/language/tg/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Таъкид матн: [u]text[/u] (Ctrl + U)'; $lang['STRIKEOUT'] = 'Матни Strikeout: [s]text[/s] (Ctrl + S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Матни Quote: [quote]text[/quote] (Ctrl + Q)'; diff --git a/library/language/th/main.php b/library/language/th/main.php index 1fa945fea..d3b41ca4e 100644 --- a/library/language/th/main.php +++ b/library/language/th/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'ขีดเส้นใต้ข้อความ:[u]tex $lang['STRIKEOUT'] = 'ตัวขีดเส้นพาดกลางข้อความ:[s]text[/s](ปุ่มพิมพ์ Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'อ้างอิงข้อความ:[quote]text[/quote](ปุ่มพิมพ์ Ctrl+Q)'; diff --git a/library/language/tr/main.php b/library/language/tr/main.php index 6325952ed..a2d26f90c 100644 --- a/library/language/tr/main.php +++ b/library/language/tr/main.php @@ -1848,6 +1848,8 @@ $lang['UNDERLINE'] = '(Ctrl+U)altı çizili metin: [u]text[/u]'; $lang['STRIKEOUT'] = '(Ctrl+S)üstü çizili metin: [s]text[/s]'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = '(Ctrl+Q)alıntı metin: [quote]text[/quote]'; diff --git a/library/language/uk/main.php b/library/language/uk/main.php index 30ca5b3a9..d54b3143b 100644 --- a/library/language/uk/main.php +++ b/library/language/uk/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Підкреслений текст: [u]текст[/u] (Ct $lang['STRIKEOUT'] = 'Закреслений текст: [s]текст[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Цитата: [quote]текст[/quote] (Ctrl+Q)'; diff --git a/library/language/uz/main.php b/library/language/uz/main.php index a0d446f3e..d50a0c436 100644 --- a/library/language/uz/main.php +++ b/library/language/uz/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Tagiga chizilgan matn: [u]text[/u] (Ctrl + U)'; $lang['STRIKEOUT'] = 'Strikeout matni: [s]text[/s] (Ctrl + S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Iqtibos matni: [quote]text[/quote] (Ctrl + Q)'; diff --git a/library/language/vi/main.php b/library/language/vi/main.php index 0e8c6a89b..681e9a255 100644 --- a/library/language/vi/main.php +++ b/library/language/vi/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = 'Nhấn mạnh chữ: [u]text[/u] (Ctrl+U)'; $lang['STRIKEOUT'] = 'Gạch văn bản: [s]text[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = 'Báo văn bản: [quote]text[/quote] (Ctrl+Q)'; diff --git a/library/language/zh/main.php b/library/language/zh/main.php index 7b6019470..3d4595a6f 100644 --- a/library/language/zh/main.php +++ b/library/language/zh/main.php @@ -1844,6 +1844,8 @@ $lang['UNDERLINE'] = '下划线的案文:[u]text[/u](Ctrl+U)'; $lang['STRIKEOUT'] = '删除线文本:[s]text[/s](Ctrl+S)'; $lang['BOX_TAG'] = 'Frame around text: [box]text[/box] or [box=#333,#888]text[/box]'; $lang['INDENT_TAG'] = 'Insert indent: [indent]text[/indent]'; +$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; $lang['SUPERSCRIPT'] = 'Superscript text: [sup]text[/sup]'; $lang['SUBSCRIPT'] = 'Subscript text: [sub]text[/sub]'; $lang['QUOTE_TITLE'] = '引文:[quote]text[/quote](Ctrl+Q)'; From 2487d130bb23bd82cedf0d114843bb48f6d2e61c Mon Sep 17 00:00:00 2001 From: Yury Pikhtarev Date: Sun, 8 Jun 2025 18:11:59 +0300 Subject: [PATCH 132/216] crodwin: New Crowdin updates (#1925) --- library/language/ru/main.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/language/ru/main.php b/library/language/ru/main.php index 938b748e2..c05132953 100644 --- a/library/language/ru/main.php +++ b/library/language/ru/main.php @@ -1844,8 +1844,8 @@ $lang['UNDERLINE'] = 'Подчеркнутый текст: [u]текст[/u] (Ct $lang['STRIKEOUT'] = 'Зачеркнутый текст: [s]текст[/s] (Ctrl+S)'; $lang['BOX_TAG'] = 'Рамка вокруг текста: [box]текст[/box] или [box=#333,#888]текст[/box]'; $lang['INDENT_TAG'] = 'Добавить отступ: [indent]текст[/indent]'; -$lang['PRE_TAG'] = 'Preformatted text: [pre]text[/pre]'; -$lang['NFO_TAG'] = 'NFO: [nfo]text[/nfo]'; +$lang['PRE_TAG'] = 'Форматированный текст: [pre]текст[/pre]'; +$lang['NFO_TAG'] = 'NFO: [nfo]текст[/nfo]'; $lang['SUPERSCRIPT'] = 'Надстрочный текст: [sup]текст[/sup]'; $lang['SUBSCRIPT'] = 'Подстрочный текст: [sub]текст[/sub]'; $lang['QUOTE_TITLE'] = 'Цитата: [quote]текст[/quote] (Ctrl+Q)'; From 4d0b2941e3ef6703ac2cd4c03524a93e688e0c39 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sun, 8 Jun 2025 22:44:50 +0300 Subject: [PATCH 133/216] feat(meta): Minor improvements to description generation (#1926) --- library/includes/page_header.php | 2 +- viewforum.php | 2 +- viewtopic.php | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/library/includes/page_header.php b/library/includes/page_header.php index f2f22581b..195bcec10 100644 --- a/library/includes/page_header.php +++ b/library/includes/page_header.php @@ -123,7 +123,7 @@ $template->assign_vars([ 'USE_TABLESORTER' => !empty($page_cfg['use_tablesorter']), 'ALLOW_ROBOTS' => !$bb_cfg['board_disable'] && (!isset($page_cfg['allow_robots']) || $page_cfg['allow_robots'] === true), - 'META_DESCRIPTION' => $page_cfg['meta_description'] ?? '', + 'META_DESCRIPTION' => !empty($page_cfg['meta_description']) ? trim(htmlCHR($page_cfg['meta_description'])) : '', 'SITENAME' => $bb_cfg['sitename'], 'U_INDEX' => BB_ROOT . 'index.php', diff --git a/viewforum.php b/viewforum.php index 7a1cdb4a3..d77d1ed99 100644 --- a/viewforum.php +++ b/viewforum.php @@ -53,7 +53,7 @@ if (!$forum_id or !$forum_data = @$forums['forum'][$forum_id]) { // Set meta description if (!empty($forum_data['forum_desc'])) { - $page_cfg['meta_description'] = htmlCHR($forum_data['forum_desc']); + $page_cfg['meta_description'] = $forum_data['forum_desc']; } // Make jumpbox diff --git a/viewtopic.php b/viewtopic.php index f952e0f15..82d39e685 100644 --- a/viewtopic.php +++ b/viewtopic.php @@ -673,7 +673,9 @@ for ($i = 0; $i < $total_posts; $i++) { // Set meta description if ($is_first_post || $i == 0) { - $page_cfg['meta_description'] = str_short(str_replace("\n", ' ', strip_tags(br2nl($message))), 220); + $message_meta = preg_replace('#\s*#si', ' ', $message); + $message_meta = str_replace(' ', '', $message_meta); + $page_cfg['meta_description'] = str_short(strip_tags($message_meta), 220); } $template->assign_block_vars('postrow', [ From 5e291f30432ea84a8d50a76e2ad55ae3ae8a91e4 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Sun, 8 Jun 2025 19:46:50 +0000 Subject: [PATCH 134/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e3b26f3a3..0122a875d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,12 +7,15 @@ ### 🚀 Features - *(ACP)* Added `robots.txt` editor ([#1913](https://github.com/torrentpier/torrentpier/pull/1913)) - ([79bb13e](https://github.com/torrentpier/torrentpier/commit/79bb13e17d07505be4d3a3c67223b4f591b66bfb)) +- *(bbcode)* Added `[nfo]` and `[pre]` tags ([#1923](https://github.com/torrentpier/torrentpier/pull/1923)) - ([f64c340](https://github.com/torrentpier/torrentpier/commit/f64c340563378a364e1f00c64b17ac1c79531302)) - *(bbcode)* Implement color customization for `[box]` tag ([#1920](https://github.com/torrentpier/torrentpier/pull/1920)) - ([4c24cb6](https://github.com/torrentpier/torrentpier/commit/4c24cb65bfebf307b717e985b169ea5d27df64f8)) - *(install)* Autofill `Host` in `robots.txt` file ([#1916](https://github.com/torrentpier/torrentpier/pull/1916)) - ([03eeb08](https://github.com/torrentpier/torrentpier/commit/03eeb08ad185b6dcc99563f567297e41f4a56117)) +- *(meta)* Minor improvements to description generation ([#1926](https://github.com/torrentpier/torrentpier/pull/1926)) - ([4d0b294](https://github.com/torrentpier/torrentpier/commit/4d0b2941e3ef6703ac2cd4c03524a93e688e0c39)) - Added ability to set page meta description ([#1917](https://github.com/torrentpier/torrentpier/pull/1917)) - ([7b8b9a0](https://github.com/torrentpier/torrentpier/commit/7b8b9a0bbabc1dfbf56cac8c105ad158ae78c3a7)) ### 🈳 New translations +- New Crowdin updates ([#1924](https://github.com/torrentpier/torrentpier/pull/1924)) - ([0515670](https://github.com/torrentpier/torrentpier/commit/0515670bee99faa5f0979162096114bc9d3ddf98)) - New translations main.php (Russian) ([#1922](https://github.com/torrentpier/torrentpier/pull/1922)) - ([8e965fb](https://github.com/torrentpier/torrentpier/commit/8e965fb1ceb5e82201c43b33fcdb044256646191)) - New Crowdin updates ([#1921](https://github.com/torrentpier/torrentpier/pull/1921)) - ([daeb7fe](https://github.com/torrentpier/torrentpier/commit/daeb7fe87e8da53745fe7aac0708cefa3392ffdc)) - New Crowdin updates ([#1915](https://github.com/torrentpier/torrentpier/pull/1915)) - ([a3da6f5](https://github.com/torrentpier/torrentpier/commit/a3da6f538658fbfe4e57aad10046d8c459a1a498)) @@ -29,6 +32,10 @@ - *(deps)* Bump filp/whoops from 2.18.0 to 2.18.1 ([#1919](https://github.com/torrentpier/torrentpier/pull/1919)) - ([1253661](https://github.com/torrentpier/torrentpier/commit/125366147c6257abadd489f3802e4a0dab37a89c)) - *(deps)* Bump arokettu/bencode from 4.3.0 to 4.3.1 ([#1912](https://github.com/torrentpier/torrentpier/pull/1912)) - ([f76e351](https://github.com/torrentpier/torrentpier/commit/f76e351b32cfa2932bc1afde6c3c522cd993b8af)) +### 💼 Other + +- New Crowdin updates ([#1925](https://github.com/torrentpier/torrentpier/pull/1925)) - ([2487d13](https://github.com/torrentpier/torrentpier/commit/2487d130bb23bd82cedf0d114843bb48f6d2e61c)) + ### ⚙️ Miscellaneous - Minor improvements ([#1918](https://github.com/torrentpier/torrentpier/pull/1918)) - ([46f29bc](https://github.com/torrentpier/torrentpier/commit/46f29bc68a18fdefad81e26a60fe44f122407ea7)) From 212e5c52832f32e8864850bf520b5c73f27f1609 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Mon, 9 Jun 2025 13:44:17 +0300 Subject: [PATCH 135/216] misc(cliff): Updated config (#1928) --- cliff-releases.toml | 125 -------------------------------------------- cliff.toml | 3 +- 2 files changed, 2 insertions(+), 126 deletions(-) delete mode 100644 cliff-releases.toml diff --git a/cliff-releases.toml b/cliff-releases.toml deleted file mode 100644 index ddef786ee..000000000 --- a/cliff-releases.toml +++ /dev/null @@ -1,125 +0,0 @@ -# git-cliff ~ TorrentPier configuration file -# https://git-cliff.org/docs/configuration -# -# Lines starting with "#" are comments. -# Configuration options are organized into tables and keys. -# See documentation for more information on available options. - -[remote.github] -owner = "torrentpier" -repo = "torrentpier" - -[changelog] -# template for the changelog header -header = """ -[![TorrentPier](https://raw.githubusercontent.com/torrentpier/.github/refs/heads/main/versions/Cattle.png)](https://github.com/torrentpier)\n -""" -# template for the changelog body -# https://keats.github.io/tera/docs/#introduction -body = """ -{%- macro remote_url() -%} - https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }} -{%- endmacro -%} - -{%- macro nightly_url() -%} - https://nightly.link/{{ remote.github.owner }}/{{ remote.github.repo }}/workflows/build/master/TorrentPier -{%- endmacro -%} - -{% macro print_commit(commit) -%} - - {% if commit.scope %}*({{ commit.scope }})* {% endif %}\ - {% if commit.breaking %}[**breaking**] {% endif %}\ - {{ commit.message | upper_first }} - \ - ([{{ commit.id | truncate(length=7, end="") }}]({{ self::remote_url() }}/commit/{{ commit.id }}))\ -{% endmacro -%} - -{% if version %}\ - {% if previous.version %}\ - ## [{{ version }}]\ - ({{ self::remote_url() }}/compare/{{ previous.version }}..{{ version }}) ({{ timestamp | date(format="%Y-%m-%d") }}) - {% else %}\ - ## {{ version }} ({{ timestamp | date(format="%Y-%m-%d") }}) - {% endif %}\ -{% else %}\ - ## [nightly]({{ self::nightly_url() }}) -{% endif %}\ - -{% for group, commits in commits | group_by(attribute="group") %} - ### {{ group | striptags | trim | upper_first }} - {% for commit in commits - | filter(attribute="scope") - | sort(attribute="scope") %} - {{ self::print_commit(commit=commit) }} - {%- endfor %} - {% for commit in commits %} - {%- if not commit.scope -%} - {{ self::print_commit(commit=commit) }} - {% endif -%} - {% endfor -%} -{% endfor -%} -{%- if github -%} -{% if github.contributors | filter(attribute="is_first_time", value=true) | length != 0 %} - ## New Contributors ❤️ -{% endif %}\ -{% for contributor in github.contributors | filter(attribute="is_first_time", value=true) %} - * @{{ contributor.username }} made their first contribution - {%- if contributor.pr_number %} in \ - [#{{ contributor.pr_number }}]({{ self::remote_url() }}/pull/{{ contributor.pr_number }}) \ - {%- endif %} -{%- endfor -%} -{%- endif %} - - -""" -# template for the changelog footer -footer = """ -""" -# remove the leading and trailing whitespace from the templates -trim = true -# postprocessors -postprocessors = [ - { pattern = '', replace = "https://github.com/torrentpier/torrentpier" }, # replace repository URL -] - -[git] -# parse the commits based on https://www.conventionalcommits.org -conventional_commits = true -# filter out the commits that are not conventional -filter_unconventional = true -# process each line of a commit as an individual commit -split_commits = false -# regex for preprocessing the commit messages -commit_preprocessors = [ - # Replace issue numbers - { pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](/pull/${2}))" }, - # Check spelling of the commit with https://github.com/crate-ci/typos - # If the spelling is incorrect, it will be automatically fixed. - # { pattern = '.*', replace_command = 'typos --write-changes -' }, -] -# regex for parsing and grouping commits -commit_parsers = [ - { message = "^feat", group = "🚀 Features" }, - { message = "^fix", group = "🐛 Bug Fixes" }, - { message = "^doc", group = "📚 Documentation" }, - { message = "^perf", group = "⚡ Performance" }, - { message = "^refactor", group = "🚜 Refactor" }, - { message = "^style", group = "🎨 Styling" }, - { message = "^test", group = "🧪 Testing" }, - { message = "^ignore|^release", skip = true }, - { message = "^chore|^ci|^misc", group = "⚙️ Miscellaneous" }, - { body = ".*security", group = "🛡️ Security" }, - { message = "^revert", group = "◀️ Revert" }, - { message = "^crowdin", group = "🈳 New translations" }, # crowdin pulls supporting - { message = "^Composer", group = "📦 Dependencies" }, # dependabot pulls supporting - { message = "^rem|^drop|^removed", group = "🗑️ Removed" }, - { message = ".*", group = "💼 Other" }, -] -# protect breaking changes from being skipped due to matching a skipping commit_parser -protect_breaking_commits = false -# filter out the commits that are not matched by commit parsers -filter_commits = false -# regex for matching git tags -tag_pattern = "v[0-9].*" -# sort the tags topologically -topo_order = false -# sort the commits inside sections by oldest/newest order -sort_commits = "newest" diff --git a/cliff.toml b/cliff.toml index a36ef6aab..456ae56fb 100644 --- a/cliff.toml +++ b/cliff.toml @@ -12,6 +12,7 @@ repo = "torrentpier" [changelog] # template for the changelog header header = """ +[![TorrentPier](https://raw.githubusercontent.com/torrentpier/.github/refs/heads/main/versions/Cattle.png)](https://github.com/torrentpier)\n # 📖 Change Log\n > [!NOTE] > To view changelog from **v2.0.0** to **v2.4.5-rc.2** navigate to [HISTORY.md](HISTORY.md). @@ -111,7 +112,7 @@ commit_parsers = [ { message = "^chore|^ci|^misc", group = "⚙️ Miscellaneous" }, { body = ".*security", group = "🛡️ Security" }, { message = "^revert", group = "◀️ Revert" }, - { message = "^crowdin", group = "🈳 New translations" }, # crowdin pulls supporting + { message = "^crowdin|^crodwin", group = "🈳 New translations" }, # crowdin pulls supporting { message = "^Composer", group = "📦 Dependencies" }, # dependabot pulls supporting { message = "^rem|^drop|^removed", group = "🗑️ Removed" }, { message = ".*", group = "💼 Other" }, From cef041c0d128dca480ca40770f52385f868706b0 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Mon, 9 Jun 2025 13:48:25 +0300 Subject: [PATCH 136/216] misc(cliff): Completely removed `cliff-releases.toml` (#1929) --- .github/workflows/cd.yml | 2 +- _cleanup.php | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 47028004c..8e3c8daf8 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -21,7 +21,7 @@ jobs: uses: orhun/git-cliff-action@v4 id: git-cliff with: - config: cliff-releases.toml + config: cliff.toml args: -vv --latest --no-exec --github-repo ${{ github.repository }} - name: Print the changelog diff --git a/_cleanup.php b/_cleanup.php index cbaf5deac..3c30efdd0 100644 --- a/_cleanup.php +++ b/_cleanup.php @@ -24,7 +24,6 @@ $items = [ '.styleci.yml', 'CHANGELOG.md', 'cliff.toml', - 'cliff-releases.toml', 'CODE_OF_CONDUCT.md', 'CONTRIBUTING.md', 'crowdin.yml', From c9aff2a152151657acb2028d98bee36c9499d81f Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Mon, 9 Jun 2025 10:48:52 +0000 Subject: [PATCH 137/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0122a875d..47b708cb3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,5 @@ +[![TorrentPier](https://raw.githubusercontent.com/torrentpier/.github/refs/heads/main/versions/Cattle.png)](https://github.com/torrentpier) + # 📖 Change Log > [!NOTE] @@ -15,6 +17,7 @@ ### 🈳 New translations +- New Crowdin updates ([#1925](https://github.com/torrentpier/torrentpier/pull/1925)) - ([2487d13](https://github.com/torrentpier/torrentpier/commit/2487d130bb23bd82cedf0d114843bb48f6d2e61c)) - New Crowdin updates ([#1924](https://github.com/torrentpier/torrentpier/pull/1924)) - ([0515670](https://github.com/torrentpier/torrentpier/commit/0515670bee99faa5f0979162096114bc9d3ddf98)) - New translations main.php (Russian) ([#1922](https://github.com/torrentpier/torrentpier/pull/1922)) - ([8e965fb](https://github.com/torrentpier/torrentpier/commit/8e965fb1ceb5e82201c43b33fcdb044256646191)) - New Crowdin updates ([#1921](https://github.com/torrentpier/torrentpier/pull/1921)) - ([daeb7fe](https://github.com/torrentpier/torrentpier/commit/daeb7fe87e8da53745fe7aac0708cefa3392ffdc)) @@ -32,12 +35,10 @@ - *(deps)* Bump filp/whoops from 2.18.0 to 2.18.1 ([#1919](https://github.com/torrentpier/torrentpier/pull/1919)) - ([1253661](https://github.com/torrentpier/torrentpier/commit/125366147c6257abadd489f3802e4a0dab37a89c)) - *(deps)* Bump arokettu/bencode from 4.3.0 to 4.3.1 ([#1912](https://github.com/torrentpier/torrentpier/pull/1912)) - ([f76e351](https://github.com/torrentpier/torrentpier/commit/f76e351b32cfa2932bc1afde6c3c522cd993b8af)) -### 💼 Other - -- New Crowdin updates ([#1925](https://github.com/torrentpier/torrentpier/pull/1925)) - ([2487d13](https://github.com/torrentpier/torrentpier/commit/2487d130bb23bd82cedf0d114843bb48f6d2e61c)) - ### ⚙️ Miscellaneous +- *(cliff)* Completely removed `cliff-releases.toml` ([#1929](https://github.com/torrentpier/torrentpier/pull/1929)) - ([cef041c](https://github.com/torrentpier/torrentpier/commit/cef041c0d128dca480ca40770f52385f868706b0)) +- *(cliff)* Updated config ([#1928](https://github.com/torrentpier/torrentpier/pull/1928)) - ([212e5c5](https://github.com/torrentpier/torrentpier/commit/212e5c52832f32e8864850bf520b5c73f27f1609)) - Minor improvements ([#1918](https://github.com/torrentpier/torrentpier/pull/1918)) - ([46f29bc](https://github.com/torrentpier/torrentpier/commit/46f29bc68a18fdefad81e26a60fe44f122407ea7)) From 6adde35849811648bcb8fa1a72c3be0a886b7919 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Mon, 9 Jun 2025 15:21:17 +0300 Subject: [PATCH 138/216] misc(cliff): Added automated script for releases creation (#1930) * misc(cliff): Added automated script for releases creation * Updated * Update functions_cli.php * Updated * Updated * Update functions_cli.php * Updated * Update _release.php * Update cliff.toml * Update _release.php * Update _release.php * Update _release.php * Update _release.php * Update _release.php * Update _release.php * Update _release.php * Update _release.php * Update _release.php * Update _release.php * Update _release.php * Update _release.php * Update _release.php --- _cleanup.php | 51 ++------- _release.php | 118 +++++++++++++++++++++ cliff.toml | 3 - install.php | 128 ++--------------------- library/includes/functions_cli.php | 161 +++++++++++++++++++++++++++++ 5 files changed, 297 insertions(+), 164 deletions(-) create mode 100644 _release.php create mode 100644 library/includes/functions_cli.php diff --git a/_cleanup.php b/_cleanup.php index 3c30efdd0..928bc6cd9 100644 --- a/_cleanup.php +++ b/_cleanup.php @@ -9,6 +9,7 @@ if (!defined('BB_ROOT')) { define('BB_ROOT', __DIR__ . DIRECTORY_SEPARATOR); + define('BB_PATH', BB_ROOT); } // Check CLI mode @@ -16,12 +17,21 @@ if (php_sapi_name() !== 'cli') { exit; } +if (!function_exists('removeFile')) { + // Get all constants + require_once BB_ROOT . 'library/defines.php'; + + // Include CLI functions + require INC_DIR . '/functions_cli.php'; +} + $items = [ '.github', '.cliffignore', '.editorconfig', '.gitignore', '.styleci.yml', + '_release.php', 'CHANGELOG.md', 'cliff.toml', 'CODE_OF_CONDUCT.md', @@ -41,44 +51,3 @@ foreach ($items as $item) { removeDir($path); } } - -/** - * Remove target file - * - * @param string $file Path to file - */ -function removeFile(string $file): void -{ - if (unlink($file)) { - echo "- File removed: $file" . PHP_EOL; - } else { - echo "- File cannot be removed: $file" . PHP_EOL; - exit; - } -} - -/** - * Remove folder (recursively) - * - * @param string $dir Path to folder - */ -function removeDir(string $dir): void -{ - $it = new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS); - $files = new RecursiveIteratorIterator($it, RecursiveIteratorIterator::CHILD_FIRST); - - foreach ($files as $file) { - if ($file->isDir()) { - removeDir($file->getPathname()); - } else { - removeFile($file->getPathname()); - } - } - - if (rmdir($dir)) { - echo "- Folder removed: $dir" . PHP_EOL; - } else { - echo "- Folder cannot be removed: $dir" . PHP_EOL; - exit; - } -} diff --git a/_release.php b/_release.php new file mode 100644 index 000000000..af4b9cfd3 --- /dev/null +++ b/_release.php @@ -0,0 +1,118 @@ +php ' . basename(__FILE__) . ' in CLI mode'); +} + +// Get all constants +require_once BB_ROOT . 'library/defines.php'; + +// Include CLI functions +require INC_DIR . '/functions_cli.php'; + +// Welcoming message +out("--- Release creation tool ---\n", 'info'); + +$configFile = BB_PATH . '/library/config.php'; + +if (!is_file($configFile)) { + out('- Config file ' . basename($configFile) . ' not found', 'error'); + exit; +} +if (!is_readable($configFile)) { + out('- Config file ' . basename($configFile) . ' is not readable', 'error'); + exit; +} +if (!is_writable($configFile)) { + out('- Config file ' . basename($configFile) . ' is not writable', 'error'); + exit; +} + +// Ask for version +fwrite(STDOUT, 'Enter version number (e.g, v2.4.0): '); +$version = trim(fgets(STDIN)); + +if (empty($version)) { + out("- Version cannot be empty. Please enter a valid version number", 'error'); + exit; +} else { + // Add 'v' prefix if missing + if (!str_starts_with($version, 'v')) { + $version = 'v' . $version; + } + + out("- Using version: $version", 'info'); +} + +// Ask for release date or use today's date +fwrite(STDOUT, "Enter release date (e.g. 25-05-2025), leave empty to use today's date: "); +$date = trim(fgets(STDIN)); + +if (empty($date)) { + $date = date('d-m-Y'); + out("- Using current date: $date", 'info'); +} else { + // Validate date format (dd-mm-yyyy) + $dateObj = DateTime::createFromFormat('d-m-Y', $date); + if (!$dateObj || $dateObj->format('d-m-Y') !== $date) { + out("- Invalid date format. Expected format: DD-MM-YYYY", 'error'); + exit; + } + + out("- Using date: $date", 'info'); +} + +// Read config file content +$content = file_get_contents($configFile); + +// Update version +$content = preg_replace( + "/\\\$bb_cfg\['tp_version'\]\s*=\s*'[^']*';/", + "\$bb_cfg['tp_version'] = '$version';", + $content +); + +// Update release date +$content = preg_replace( + "/\\\$bb_cfg\['tp_release_date'\]\s*=\s*'[^']*';/", + "\$bb_cfg['tp_release_date'] = '$date';", + $content +); + +// Save updated config +$bytesWritten = file_put_contents($configFile, $content); + +if ($bytesWritten === false) { + out("- Failed to write to config file", 'error'); + exit; +} + +if ($bytesWritten === 0) { + out("- Config file was not updated (0 bytes written)", 'error'); + exit; +} + +out("\n- Config file has been updated!", 'success'); + +// Git add & commit +runProcess('git add -A && git commit -m "release: ' . escapeshellarg($version) . '"'); + +$userName = 'belomaxorka'; +$userEmail = 'roman25052006.kelesh@gmail.com'; + +$tagCmd = "git -c user.name=\"$userName\" -c user.email=\"$userEmail\" tag -a \"$version\" -m \"Release $version\""; +runProcess($tagCmd); +runProcess("git tag -v \"$version\""); + +out("\n- Release $version has been successfully prepared and committed!", 'success'); diff --git a/cliff.toml b/cliff.toml index 456ae56fb..6cbe23512 100644 --- a/cliff.toml +++ b/cliff.toml @@ -14,8 +14,6 @@ repo = "torrentpier" header = """ [![TorrentPier](https://raw.githubusercontent.com/torrentpier/.github/refs/heads/main/versions/Cattle.png)](https://github.com/torrentpier)\n # 📖 Change Log\n -> [!NOTE] -> To view changelog from **v2.0.0** to **v2.4.5-rc.2** navigate to [HISTORY.md](HISTORY.md). """ # template for the changelog body # https://keats.github.io/tera/docs/#introduction @@ -75,7 +73,6 @@ body = """ """ # template for the changelog footer footer = """ - """ # remove the leading and trailing whitespace from the templates trim = true diff --git a/install.php b/install.php index ff88365d3..009098420 100644 --- a/install.php +++ b/install.php @@ -8,12 +8,19 @@ */ define('BB_ROOT', __DIR__ . DIRECTORY_SEPARATOR); +define('BB_PATH', BB_ROOT); // Check CLI mode if (php_sapi_name() !== 'cli') { die('Please run php ' . basename(__FILE__) . ' in CLI mode'); } +// Get all constants +require_once BB_ROOT . 'library/defines.php'; + +// Include CLI functions +require INC_DIR . '/functions_cli.php'; + /** * System requirements */ @@ -34,125 +41,6 @@ define('CHECK_REQUIREMENTS', [ ], ]); -/** - * Colored console output - * - * @param string $str - * @param string $type - * @return void - */ -function out(string $str, string $type = ''): void -{ - echo match ($type) { - 'error' => "\033[31m$str \033[0m\n", - 'success' => "\033[32m$str \033[0m\n", - 'warning' => "\033[33m$str \033[0m\n", - 'info' => "\033[36m$str \033[0m\n", - 'debug' => "\033[90m$str \033[0m\n", - default => "$str\n", - }; -} - -/** - * Run process with realtime output - * - * @param string $cmd - * @param string|null $input - * @return void - */ -function runProcess(string $cmd, string $input = null): void -{ - $descriptorSpec = [ - 0 => ['pipe', 'r'], - 1 => ['pipe', 'w'], - 2 => ['pipe', 'w'], - ]; - - $process = proc_open($cmd, $descriptorSpec, $pipes); - - if (!is_resource($process)) { - out('- Could not start subprocess', 'error'); - return; - } - - // Write input if provided - if ($input !== null) { - fwrite($pipes[0], $input); - fclose($pipes[0]); - } - - // Read and print output in real-time - while (!feof($pipes[1])) { - echo stream_get_contents($pipes[1], 1); - flush(); // Flush output buffer for immediate display - } - - // Read and print error output - while (!feof($pipes[2])) { - echo stream_get_contents($pipes[2], 1); - flush(); - } - - fclose($pipes[1]); - fclose($pipes[2]); - - proc_close($process); -} - -/** - * Remove directory recursively - * - * @param string $dir - * @return void - */ -function rmdir_rec(string $dir): void -{ - $it = new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS); - $files = new RecursiveIteratorIterator($it, - RecursiveIteratorIterator::CHILD_FIRST); - foreach ($files as $file) { - if ($file->isDir()) { - rmdir($file->getPathname()); - } else { - unlink($file->getPathname()); - } - } - rmdir($dir); -} - -/** - * Setting permissions recursively - * - * @param string $dir - * @param int $dirPermissions - * @param int $filePermissions - * @return void - */ -function chmod_r(string $dir, int $dirPermissions, int $filePermissions): void -{ - $dp = opendir($dir); - while ($file = readdir($dp)) { - if (($file == '.') || ($file == '..')) { - continue; - } - - $fullPath = realpath($dir . '/' . $file); - if (is_dir($fullPath)) { - out("- Directory: $fullPath"); - chmod($fullPath, $dirPermissions); - chmod_r($fullPath, $dirPermissions, $filePermissions); - } elseif (is_file($fullPath)) { - // out("- File: $fullPath"); - chmod($fullPath, $filePermissions); - } else { - out("- Cannot find target path: $fullPath", 'error'); - return; - } - } - - closedir($dp); -} - // Welcoming message out("--- TorrentPier Installer ---\n", 'info'); @@ -207,7 +95,7 @@ if (is_file(BB_ROOT . '.env')) { } // composer dir if (is_dir(BB_ROOT . 'vendor')) { - rmdir_rec(BB_ROOT . 'vendor'); + removeDir(BB_ROOT . 'vendor', true); if (!is_dir(BB_ROOT . 'vendor')) { out("- Composer directory successfully removed!"); } else { diff --git a/library/includes/functions_cli.php b/library/includes/functions_cli.php new file mode 100644 index 000000000..d2adb0188 --- /dev/null +++ b/library/includes/functions_cli.php @@ -0,0 +1,161 @@ +isDir()) { + removeDir($file->getPathname(), $withoutOutput); + } else { + removeFile($file->getPathname(), $withoutOutput); + } + } + + if (rmdir($dir)) { + if ($withoutOutput === false) { + echo "- Folder removed: $dir" . PHP_EOL; + } + } else { + if ($withoutOutput === false) { + echo "- Folder cannot be removed: $dir" . PHP_EOL; + } + exit; + } +} + +/** + * Colored console output + * + * @param string $str + * @param string $type + * @return void + */ +function out(string $str, string $type = ''): void +{ + echo match ($type) { + 'error' => "\033[31m$str \033[0m\n", + 'success' => "\033[32m$str \033[0m\n", + 'warning' => "\033[33m$str \033[0m\n", + 'info' => "\033[36m$str \033[0m\n", + 'debug' => "\033[90m$str \033[0m\n", + default => "$str\n", + }; +} + +/** + * Run process with realtime output + * + * @param string $cmd + * @param string|null $input + * @return void + */ +function runProcess(string $cmd, ?string $input = null): void +{ + $descriptorSpec = [ + 0 => ['pipe', 'r'], + 1 => ['pipe', 'w'], + 2 => ['pipe', 'w'], + ]; + + $process = proc_open($cmd, $descriptorSpec, $pipes); + + if (!is_resource($process)) { + out('- Could not start subprocess', 'error'); + return; + } + + // Write input if provided + if ($input !== null) { + fwrite($pipes[0], $input); + fclose($pipes[0]); + } + + // Read and print output in real-time + while (!feof($pipes[1])) { + echo stream_get_contents($pipes[1], 1); + flush(); // Flush output buffer for immediate display + } + + // Read and print error output + while (!feof($pipes[2])) { + echo stream_get_contents($pipes[2], 1); + flush(); + } + + fclose($pipes[1]); + fclose($pipes[2]); + + proc_close($process); +} + +/** + * Setting permissions recursively + * + * @param string $dir + * @param int $dirPermissions + * @param int $filePermissions + * @return void + */ +function chmod_r(string $dir, int $dirPermissions, int $filePermissions): void +{ + $dp = opendir($dir); + while ($file = readdir($dp)) { + if (($file == '.') || ($file == '..')) { + continue; + } + + $fullPath = realpath($dir . '/' . $file); + if (is_dir($fullPath)) { + out("- Directory: $fullPath"); + chmod($fullPath, $dirPermissions); + chmod_r($fullPath, $dirPermissions, $filePermissions); + } elseif (is_file($fullPath)) { + // out("- File: $fullPath"); + chmod($fullPath, $filePermissions); + } else { + out("- Cannot find target path: $fullPath", 'error'); + return; + } + } + + closedir($dp); +} From bef5328d1e18e92395cc73d8fefb014ce8c40404 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Mon, 9 Jun 2025 12:22:30 +0000 Subject: [PATCH 139/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 47b708cb3..02990651e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,8 +2,6 @@ # 📖 Change Log -> [!NOTE] -> To view changelog from **v2.0.0** to **v2.4.5-rc.2** navigate to [HISTORY.md](HISTORY.md). ## [nightly](https://nightly.link/torrentpier/torrentpier/workflows/build/master/TorrentPier) ### 🚀 Features @@ -37,6 +35,7 @@ ### ⚙️ Miscellaneous +- *(cliff)* Added automated script for releases creation ([#1930](https://github.com/torrentpier/torrentpier/pull/1930)) - ([6adde35](https://github.com/torrentpier/torrentpier/commit/6adde35849811648bcb8fa1a72c3be0a886b7919)) - *(cliff)* Completely removed `cliff-releases.toml` ([#1929](https://github.com/torrentpier/torrentpier/pull/1929)) - ([cef041c](https://github.com/torrentpier/torrentpier/commit/cef041c0d128dca480ca40770f52385f868706b0)) - *(cliff)* Updated config ([#1928](https://github.com/torrentpier/torrentpier/pull/1928)) - ([212e5c5](https://github.com/torrentpier/torrentpier/commit/212e5c52832f32e8864850bf520b5c73f27f1609)) - Minor improvements ([#1918](https://github.com/torrentpier/torrentpier/pull/1918)) - ([46f29bc](https://github.com/torrentpier/torrentpier/commit/46f29bc68a18fdefad81e26a60fe44f122407ea7)) @@ -273,4 +272,4 @@ * @actions-user made their first contribution - + From 8ecc61719acb61e9a2ce115b28f1a82580c01110 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Mon, 9 Jun 2025 15:55:14 +0300 Subject: [PATCH 140/216] misc(_release.php): Added `GPG` sign for tags (#1931) --- _release.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_release.php b/_release.php index af4b9cfd3..8f4556b13 100644 --- a/_release.php +++ b/_release.php @@ -110,8 +110,9 @@ runProcess('git add -A && git commit -m "release: ' . escapeshellarg($version) . $userName = 'belomaxorka'; $userEmail = 'roman25052006.kelesh@gmail.com'; +$keyId = '0D496E7D57AEA4B6B017F379F34487C7A449A619'; -$tagCmd = "git -c user.name=\"$userName\" -c user.email=\"$userEmail\" tag -a \"$version\" -m \"Release $version\""; +$tagCmd = "git -c user.name=\"$userName\" -c user.email=\"$userEmail\" -c user.signingkey=\"$keyId\" tag -s -a \"$version\" -m \"Release $version\""; runProcess($tagCmd); runProcess("git tag -v \"$version\""); From 128f917d76eb5e0198b951816668056354da2629 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Mon, 9 Jun 2025 15:55:47 +0300 Subject: [PATCH 141/216] release: v2.4.6-alpha.1 --- library/config.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/config.php b/library/config.php index 62d6dd792..e5f41a1f7 100644 --- a/library/config.php +++ b/library/config.php @@ -18,8 +18,8 @@ $reserved_port = env('TP_PORT', 80); $bb_cfg = []; // Version info -$bb_cfg['tp_version'] = 'v2.4.5'; -$bb_cfg['tp_release_date'] = '11-05-2025'; +$bb_cfg['tp_version'] = 'v2.4.6-alpha.1'; +$bb_cfg['tp_release_date'] = '09-06-2025'; $bb_cfg['tp_release_codename'] = 'Cattle'; // Increase version number after changing JS or CSS From 5561e0022ca6a0a668f2dc5aee541609bb6c4d1e Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Mon, 9 Jun 2025 16:10:57 +0300 Subject: [PATCH 142/216] misc(_release.php): Added `push origin` command (#1932) --- _release.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/_release.php b/_release.php index 8f4556b13..a19f404d5 100644 --- a/_release.php +++ b/_release.php @@ -116,4 +116,7 @@ $tagCmd = "git -c user.name=\"$userName\" -c user.email=\"$userEmail\" -c user.s runProcess($tagCmd); runProcess("git tag -v \"$version\""); +runProcess("git push origin master"); +runProcess("git push origin $version"); + out("\n- Release $version has been successfully prepared and committed!", 'success'); From eecfc44046d64d5a00e3327bc8bfbc0b62695cc1 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Mon, 9 Jun 2025 13:12:00 +0000 Subject: [PATCH 143/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 02990651e..6feaed3ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,13 @@ ## [nightly](https://nightly.link/torrentpier/torrentpier/workflows/build/master/TorrentPier) +### ⚙️ Miscellaneous + +- *(_release.php)* Added `push origin` command ([#1932](https://github.com/torrentpier/torrentpier/pull/1932)) - ([5561e00](https://github.com/torrentpier/torrentpier/commit/5561e0022ca6a0a668f2dc5aee541609bb6c4d1e)) + + +## [v2.4.6-alpha.1](https://github.com/torrentpier/torrentpier/compare/v2.4.5..v2.4.6-alpha.1) (2025-06-09) + ### 🚀 Features - *(ACP)* Added `robots.txt` editor ([#1913](https://github.com/torrentpier/torrentpier/pull/1913)) - ([79bb13e](https://github.com/torrentpier/torrentpier/commit/79bb13e17d07505be4d3a3c67223b4f591b66bfb)) @@ -35,6 +42,7 @@ ### ⚙️ Miscellaneous +- *(_release.php)* Added `GPG` sign for tags ([#1931](https://github.com/torrentpier/torrentpier/pull/1931)) - ([8ecc617](https://github.com/torrentpier/torrentpier/commit/8ecc61719acb61e9a2ce115b28f1a82580c01110)) - *(cliff)* Added automated script for releases creation ([#1930](https://github.com/torrentpier/torrentpier/pull/1930)) - ([6adde35](https://github.com/torrentpier/torrentpier/commit/6adde35849811648bcb8fa1a72c3be0a886b7919)) - *(cliff)* Completely removed `cliff-releases.toml` ([#1929](https://github.com/torrentpier/torrentpier/pull/1929)) - ([cef041c](https://github.com/torrentpier/torrentpier/commit/cef041c0d128dca480ca40770f52385f868706b0)) - *(cliff)* Updated config ([#1928](https://github.com/torrentpier/torrentpier/pull/1928)) - ([212e5c5](https://github.com/torrentpier/torrentpier/commit/212e5c52832f32e8864850bf520b5c73f27f1609)) From 867359a89e480071cfd927e2cb6ef4fd761c0172 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Mon, 9 Jun 2025 17:05:12 +0300 Subject: [PATCH 144/216] misc(_release.php): Added automatic `CHANGELOG.md` update (#1933) --- _release.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/_release.php b/_release.php index a19f404d5..c80542a8f 100644 --- a/_release.php +++ b/_release.php @@ -105,6 +105,9 @@ if ($bytesWritten === 0) { out("\n- Config file has been updated!", 'success'); +// Update CHANGELOG.md +runProcess('npx git-cliff v2.4.5-rc.2.. --config cliff.toml --tag "' . $version . '" > CHANGELOG.md'); + // Git add & commit runProcess('git add -A && git commit -m "release: ' . escapeshellarg($version) . '"'); @@ -119,4 +122,4 @@ runProcess("git tag -v \"$version\""); runProcess("git push origin master"); runProcess("git push origin $version"); -out("\n- Release $version has been successfully prepared and committed!", 'success'); +out("\n- Release $version has been successfully prepared, committed and pushed!", 'success'); From 75ef57474c3a32e86ecc98a5ff2fab39a9a66282 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Mon, 9 Jun 2025 17:23:36 +0300 Subject: [PATCH 145/216] misc(_release.php): Added ability to set version emoji (#1934) --- _release.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/_release.php b/_release.php index c80542a8f..d7e3aa7ed 100644 --- a/_release.php +++ b/_release.php @@ -55,6 +55,14 @@ if (empty($version)) { out("- Using version: $version", 'info'); } +// Ask for version emoji +fwrite(STDOUT, 'Enter version emoji: '); +$versionEmoji = trim(fgets(STDIN)); + +if (!empty($versionEmoji)) { + out("- Using version emoji: $versionEmoji", 'info'); +} + // Ask for release date or use today's date fwrite(STDOUT, "Enter release date (e.g. 25-05-2025), leave empty to use today's date: "); $date = trim(fgets(STDIN)); @@ -109,7 +117,7 @@ out("\n- Config file has been updated!", 'success'); runProcess('npx git-cliff v2.4.5-rc.2.. --config cliff.toml --tag "' . $version . '" > CHANGELOG.md'); // Git add & commit -runProcess('git add -A && git commit -m "release: ' . escapeshellarg($version) . '"'); +runProcess('git add -A && git commit -m "release: ' . escapeshellarg($version) . ' ' . $versionEmoji . '"'); $userName = 'belomaxorka'; $userEmail = 'roman25052006.kelesh@gmail.com'; From dcd7002c2aa09ec187f3afd91fb7e3f5e03630e0 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Mon, 9 Jun 2025 18:46:51 +0300 Subject: [PATCH 146/216] misc(_release.php): Temporary removed automatic `push origin` (#1935) --- _release.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_release.php b/_release.php index d7e3aa7ed..cbd681d11 100644 --- a/_release.php +++ b/_release.php @@ -127,7 +127,7 @@ $tagCmd = "git -c user.name=\"$userName\" -c user.email=\"$userEmail\" -c user.s runProcess($tagCmd); runProcess("git tag -v \"$version\""); -runProcess("git push origin master"); -runProcess("git push origin $version"); +// runProcess("git push origin master"); +// runProcess("git push origin $version"); out("\n- Release $version has been successfully prepared, committed and pushed!", 'success'); From 4b16b847f542e3608c8bb4d97d1f27f7fd6c97b7 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Mon, 9 Jun 2025 21:47:02 +0300 Subject: [PATCH 147/216] removed: Extra `CFG_DIR` constant (#1936) --- library/defines.php | 1 - 1 file changed, 1 deletion(-) diff --git a/library/defines.php b/library/defines.php index 30d3d3ab2..df8813a64 100644 --- a/library/defines.php +++ b/library/defines.php @@ -20,7 +20,6 @@ define('LOG_DIR', BB_PATH . '/internal_data/log'); define('TRIGGERS_DIR', BB_PATH . '/internal_data/triggers'); define('AJAX_DIR', BB_PATH . '/library/ajax'); define('ATTACH_DIR', BB_PATH . '/library/attach_mod'); -define('CFG_DIR', BB_PATH . '/library/config'); define('INC_DIR', BB_PATH . '/library/includes'); define('UCP_DIR', BB_PATH . '/library/includes/ucp'); define('LANG_ROOT_DIR', BB_PATH . '/library/language'); From 74d3b76f732c86be20701541cc4774908b5bc672 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Mon, 9 Jun 2025 20:22:52 +0000 Subject: [PATCH 148/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6feaed3ec..f388b0f81 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,15 @@ ## [nightly](https://nightly.link/torrentpier/torrentpier/workflows/build/master/TorrentPier) +### 🗑️ Removed + +- Extra `CFG_DIR` constant ([#1936](https://github.com/torrentpier/torrentpier/pull/1936)) - ([4b16b84](https://github.com/torrentpier/torrentpier/commit/4b16b847f542e3608c8bb4d97d1f27f7fd6c97b7)) + ### ⚙️ Miscellaneous +- *(_release.php)* Temporary removed automatic `push origin` ([#1935](https://github.com/torrentpier/torrentpier/pull/1935)) - ([dcd7002](https://github.com/torrentpier/torrentpier/commit/dcd7002c2aa09ec187f3afd91fb7e3f5e03630e0)) +- *(_release.php)* Added ability to set version emoji ([#1934](https://github.com/torrentpier/torrentpier/pull/1934)) - ([75ef574](https://github.com/torrentpier/torrentpier/commit/75ef57474c3a32e86ecc98a5ff2fab39a9a66282)) +- *(_release.php)* Added automatic `CHANGELOG.md` update ([#1933](https://github.com/torrentpier/torrentpier/pull/1933)) - ([867359a](https://github.com/torrentpier/torrentpier/commit/867359a89e480071cfd927e2cb6ef4fd761c0172)) - *(_release.php)* Added `push origin` command ([#1932](https://github.com/torrentpier/torrentpier/pull/1932)) - ([5561e00](https://github.com/torrentpier/torrentpier/commit/5561e0022ca6a0a668f2dc5aee541609bb6c4d1e)) From bf328dd69ec42e417275f037dc59a15a2867d7f4 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Tue, 10 Jun 2025 13:47:57 +0300 Subject: [PATCH 149/216] fix: Set `$datastore->enqueue` before `$datastore->get` (#1937) --- library/ajax/index_data.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/ajax/index_data.php b/library/ajax/index_data.php index 609b3b63f..f66112b72 100644 --- a/library/ajax/index_data.php +++ b/library/ajax/index_data.php @@ -20,10 +20,10 @@ if (!$mode = (string)$this->request['mode']) { $html = ''; switch ($mode) { case 'birthday_week': - $stats = $datastore->get('stats'); $datastore->enqueue([ 'stats' ]); + $stats = $datastore->get('stats'); $users = []; @@ -38,10 +38,10 @@ switch ($mode) { break; case 'birthday_today': - $stats = $datastore->get('stats'); $datastore->enqueue([ 'stats' ]); + $stats = $datastore->get('stats'); $users = []; From f9db78d266ff3707e96b1b9d3d2330a507181012 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Tue, 10 Jun 2025 13:54:54 +0300 Subject: [PATCH 150/216] misc(_release.php): Minor improvements (#1938) --- _release.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_release.php b/_release.php index cbd681d11..3b7273a94 100644 --- a/_release.php +++ b/_release.php @@ -117,7 +117,7 @@ out("\n- Config file has been updated!", 'success'); runProcess('npx git-cliff v2.4.5-rc.2.. --config cliff.toml --tag "' . $version . '" > CHANGELOG.md'); // Git add & commit -runProcess('git add -A && git commit -m "release: ' . escapeshellarg($version) . ' ' . $versionEmoji . '"'); +runProcess('git add -A && git commit -m "release: ' . escapeshellarg($version) . (!empty($versionEmoji) ? (' ' . $versionEmoji) : '') . '"'); $userName = 'belomaxorka'; $userEmail = 'roman25052006.kelesh@gmail.com'; @@ -127,7 +127,7 @@ $tagCmd = "git -c user.name=\"$userName\" -c user.email=\"$userEmail\" -c user.s runProcess($tagCmd); runProcess("git tag -v \"$version\""); -// runProcess("git push origin master"); -// runProcess("git push origin $version"); +runProcess("git push origin master"); +runProcess("git push origin $version"); out("\n- Release $version has been successfully prepared, committed and pushed!", 'success'); From 1ece8ba830e66f2c76c10cc330e21cf265a53e64 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Wed, 11 Jun 2025 01:42:18 +0000 Subject: [PATCH 151/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f388b0f81..6bf4ff01c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,12 +4,17 @@ ## [nightly](https://nightly.link/torrentpier/torrentpier/workflows/build/master/TorrentPier) +### 🐛 Bug Fixes + +- Set `$datastore->enqueue` before `$datastore->get` ([#1937](https://github.com/torrentpier/torrentpier/pull/1937)) - ([bf328dd](https://github.com/torrentpier/torrentpier/commit/bf328dd69ec42e417275f037dc59a15a2867d7f4)) + ### 🗑️ Removed - Extra `CFG_DIR` constant ([#1936](https://github.com/torrentpier/torrentpier/pull/1936)) - ([4b16b84](https://github.com/torrentpier/torrentpier/commit/4b16b847f542e3608c8bb4d97d1f27f7fd6c97b7)) ### ⚙️ Miscellaneous +- *(_release.php)* Minor improvements ([#1938](https://github.com/torrentpier/torrentpier/pull/1938)) - ([f9db78d](https://github.com/torrentpier/torrentpier/commit/f9db78d266ff3707e96b1b9d3d2330a507181012)) - *(_release.php)* Temporary removed automatic `push origin` ([#1935](https://github.com/torrentpier/torrentpier/pull/1935)) - ([dcd7002](https://github.com/torrentpier/torrentpier/commit/dcd7002c2aa09ec187f3afd91fb7e3f5e03630e0)) - *(_release.php)* Added ability to set version emoji ([#1934](https://github.com/torrentpier/torrentpier/pull/1934)) - ([75ef574](https://github.com/torrentpier/torrentpier/commit/75ef57474c3a32e86ecc98a5ff2fab39a9a66282)) - *(_release.php)* Added automatic `CHANGELOG.md` update ([#1933](https://github.com/torrentpier/torrentpier/pull/1933)) - ([867359a](https://github.com/torrentpier/torrentpier/commit/867359a89e480071cfd927e2cb6ef4fd761c0172)) From 28e38aa78103c8233e15439ecd886187a55d5e12 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Wed, 11 Jun 2025 21:03:15 +0300 Subject: [PATCH 152/216] removed: `'cat_forums'` from enqueue list in `get_forum_mods` ajax (#1939) --- library/ajax/index_data.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/library/ajax/index_data.php b/library/ajax/index_data.php index f66112b72..42ec056c5 100644 --- a/library/ajax/index_data.php +++ b/library/ajax/index_data.php @@ -59,8 +59,7 @@ switch ($mode) { $forum_id = (int)$this->request['forum_id']; $datastore->enqueue([ - 'moderators', - 'cat_forums' + 'moderators' ]); $moderators = []; From 345dd1bc20928e25dc72befb705502156e47f1d7 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Wed, 11 Jun 2025 21:20:08 +0300 Subject: [PATCH 153/216] feat: Add console log for ajax actions when explain cookie is set (#1940) --- src/Ajax.php | 5 +++++ styles/js/main.js | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Ajax.php b/src/Ajax.php index e8e2960f9..84856a367 100644 --- a/src/Ajax.php +++ b/src/Ajax.php @@ -176,6 +176,11 @@ class Ajax { $this->response['action'] = $this->action; + // Show ajax action in console log + if (!empty($_COOKIE['explain'])) { + $this->response['console_log'] = 'ajax action: ' . $this->response['action']; + } + if (Dev::sqlDebugAllowed()) { $this->response['sql_log'] = Dev::getSqlLog(); } diff --git a/styles/js/main.js b/styles/js/main.js index 6c6f5489c..a9271fc15 100644 --- a/styles/js/main.js +++ b/styles/js/main.js @@ -343,12 +343,14 @@ Ajax.prototype = { } } else if (response.error_code) { ajax.showErrorMsg(response.error_msg); - console.log(response.console_log); $('.loading-1').removeClass('loading-1').html('error'); } else { ajax.callback[action](response); ajax.clearActionState(action); } + if (response.console_log) { + console.log(response.console_log); + } }, error: function (xml, desc) { From a27d504c7daff2c53aee3ce7a19d5aa394c4b452 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Wed, 11 Jun 2025 18:21:14 +0000 Subject: [PATCH 154/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6bf4ff01c..7ca8f0c8c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,12 +4,17 @@ ## [nightly](https://nightly.link/torrentpier/torrentpier/workflows/build/master/TorrentPier) +### 🚀 Features + +- Add console log for ajax actions when explain cookie is set ([#1940](https://github.com/torrentpier/torrentpier/pull/1940)) - ([345dd1b](https://github.com/torrentpier/torrentpier/commit/345dd1bc20928e25dc72befb705502156e47f1d7)) + ### 🐛 Bug Fixes - Set `$datastore->enqueue` before `$datastore->get` ([#1937](https://github.com/torrentpier/torrentpier/pull/1937)) - ([bf328dd](https://github.com/torrentpier/torrentpier/commit/bf328dd69ec42e417275f037dc59a15a2867d7f4)) ### 🗑️ Removed +- `'cat_forums'` from enqueue list in `get_forum_mods` ajax ([#1939](https://github.com/torrentpier/torrentpier/pull/1939)) - ([28e38aa](https://github.com/torrentpier/torrentpier/commit/28e38aa78103c8233e15439ecd886187a55d5e12)) - Extra `CFG_DIR` constant ([#1936](https://github.com/torrentpier/torrentpier/pull/1936)) - ([4b16b84](https://github.com/torrentpier/torrentpier/commit/4b16b847f542e3608c8bb4d97d1f27f7fd6c97b7)) ### ⚙️ Miscellaneous From 6f03f750bab400f5e8a74bd05c9ee167343959ab Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Wed, 11 Jun 2025 21:32:23 +0300 Subject: [PATCH 155/216] feat: Improved ajax debug (#1941) --- src/Ajax.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Ajax.php b/src/Ajax.php index 84856a367..8f50eebdf 100644 --- a/src/Ajax.php +++ b/src/Ajax.php @@ -178,7 +178,14 @@ class Ajax // Show ajax action in console log if (!empty($_COOKIE['explain'])) { - $this->response['console_log'] = 'ajax action: ' . $this->response['action']; + $console_log = []; + + $console_log['action_name'] = $this->response['action']; + if (!empty($this->request['mode'])) { + $console_log['mode'] = $this->request['mode']; + } + + $this->response['console_log'] = $console_log; } if (Dev::sqlDebugAllowed()) { From bcf4eb4e9baacf27e23a2b7c7135918ec3356c1a Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Wed, 11 Jun 2025 21:42:13 +0300 Subject: [PATCH 156/216] feat(ajax): Log full ajax request/response data to console in explain mode (#1942) * feat(ajax): log full ajax request data to console in explain mode * Update Ajax.php --- src/Ajax.php | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/Ajax.php b/src/Ajax.php index 8f50eebdf..a2f3e6090 100644 --- a/src/Ajax.php +++ b/src/Ajax.php @@ -178,14 +178,20 @@ class Ajax // Show ajax action in console log if (!empty($_COOKIE['explain'])) { - $console_log = []; + $console_log_request = $console_log_response = []; - $console_log['action_name'] = $this->response['action']; - if (!empty($this->request['mode'])) { - $console_log['mode'] = $this->request['mode']; + foreach ($this->request as $key => $value) { + $console_log_request[$key] = $value; } - $this->response['console_log'] = $console_log; + foreach ($this->response as $key => $value) { + $console_log_response[$key] = $value; + } + + $this->response['console_log'] = [ + 'request' => $console_log_request, + 'response' => $console_log_response, + ]; } if (Dev::sqlDebugAllowed()) { From 62ab9800276c107580b81c57f0c5742a2970844a Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Thu, 12 Jun 2025 01:41:04 +0000 Subject: [PATCH 157/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ca8f0c8c..13d4bea58 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ ### 🚀 Features +- *(ajax)* Log full ajax request/response data to console in explain mode ([#1942](https://github.com/torrentpier/torrentpier/pull/1942)) - ([bcf4eb4](https://github.com/torrentpier/torrentpier/commit/bcf4eb4e9baacf27e23a2b7c7135918ec3356c1a)) +- Improved ajax debug ([#1941](https://github.com/torrentpier/torrentpier/pull/1941)) - ([6f03f75](https://github.com/torrentpier/torrentpier/commit/6f03f750bab400f5e8a74bd05c9ee167343959ab)) - Add console log for ajax actions when explain cookie is set ([#1940](https://github.com/torrentpier/torrentpier/pull/1940)) - ([345dd1b](https://github.com/torrentpier/torrentpier/commit/345dd1bc20928e25dc72befb705502156e47f1d7)) ### 🐛 Bug Fixes From 9a529558b41f620e8347cc1091f59b1f2d864ca9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Jun 2025 20:33:12 +0700 Subject: [PATCH 158/216] Composer(deps): Bump filp/whoops from 2.18.1 to 2.18.2 (#1943) Bumps [filp/whoops](https://github.com/filp/whoops) from 2.18.1 to 2.18.2. - [Changelog](https://github.com/filp/whoops/blob/master/CHANGELOG.md) - [Commits](https://github.com/filp/whoops/compare/2.18.1...2.18.2) --- updated-dependencies: - dependency-name: filp/whoops dependency-version: 2.18.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/composer.lock b/composer.lock index 921fbc56a..565abcfbe 100644 --- a/composer.lock +++ b/composer.lock @@ -819,16 +819,16 @@ }, { "name": "filp/whoops", - "version": "2.18.1", + "version": "2.18.2", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "8fcc6a862f2e7b94eb4221fd0819ddba3d30ab26" + "reference": "89dabca1490bc77dbcab41c2b20968c7e44bf7c3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/8fcc6a862f2e7b94eb4221fd0819ddba3d30ab26", - "reference": "8fcc6a862f2e7b94eb4221fd0819ddba3d30ab26", + "url": "https://api.github.com/repos/filp/whoops/zipball/89dabca1490bc77dbcab41c2b20968c7e44bf7c3", + "reference": "89dabca1490bc77dbcab41c2b20968c7e44bf7c3", "shasum": "" }, "require": { @@ -878,7 +878,7 @@ ], "support": { "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.18.1" + "source": "https://github.com/filp/whoops/tree/2.18.2" }, "funding": [ { @@ -886,7 +886,7 @@ "type": "github" } ], - "time": "2025-06-03T18:56:14+00:00" + "time": "2025-06-11T20:42:19+00:00" }, { "name": "gemorroj/m3u-parser", From 5e6fb3ef424cbc84bb5e25625dcd22fd73ec98fa Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Thu, 12 Jun 2025 21:06:00 +0300 Subject: [PATCH 159/216] misc(cliff.toml): Use correct nightly link (#1944) --- cliff.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cliff.toml b/cliff.toml index 6cbe23512..1753dd8a4 100644 --- a/cliff.toml +++ b/cliff.toml @@ -23,7 +23,7 @@ body = """ {%- endmacro -%} {%- macro nightly_url() -%} - https://nightly.link/{{ remote.github.owner }}/{{ remote.github.repo }}/workflows/build/master/TorrentPier + https://nightly.link/{{ remote.github.owner }}/{{ remote.github.repo }}/workflows/ci/master/TorrentPier-master {%- endmacro -%} {% macro print_commit(commit) -%} From b6b38adea373692e3efa6bbda15659a2f4c5b0d4 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Thu, 12 Jun 2025 22:15:07 +0300 Subject: [PATCH 160/216] release: v2.4.6-alpha.2 --- CHANGELOG.md | 7 ++++++- library/config.php | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 13d4bea58..d3e879fc0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ # 📖 Change Log -## [nightly](https://nightly.link/torrentpier/torrentpier/workflows/build/master/TorrentPier) +## [v2.4.6-alpha.2](https://github.com/torrentpier/torrentpier/compare/v2.4.6-alpha.1..v2.4.6-alpha.2) (2025-06-12) ### 🚀 Features @@ -14,6 +14,10 @@ - Set `$datastore->enqueue` before `$datastore->get` ([#1937](https://github.com/torrentpier/torrentpier/pull/1937)) - ([bf328dd](https://github.com/torrentpier/torrentpier/commit/bf328dd69ec42e417275f037dc59a15a2867d7f4)) +### 📦 Dependencies + +- *(deps)* Bump filp/whoops from 2.18.1 to 2.18.2 ([#1943](https://github.com/torrentpier/torrentpier/pull/1943)) - ([9a52955](https://github.com/torrentpier/torrentpier/commit/9a529558b41f620e8347cc1091f59b1f2d864ca9)) + ### 🗑️ Removed - `'cat_forums'` from enqueue list in `get_forum_mods` ajax ([#1939](https://github.com/torrentpier/torrentpier/pull/1939)) - ([28e38aa](https://github.com/torrentpier/torrentpier/commit/28e38aa78103c8233e15439ecd886187a55d5e12)) @@ -26,6 +30,7 @@ - *(_release.php)* Added ability to set version emoji ([#1934](https://github.com/torrentpier/torrentpier/pull/1934)) - ([75ef574](https://github.com/torrentpier/torrentpier/commit/75ef57474c3a32e86ecc98a5ff2fab39a9a66282)) - *(_release.php)* Added automatic `CHANGELOG.md` update ([#1933](https://github.com/torrentpier/torrentpier/pull/1933)) - ([867359a](https://github.com/torrentpier/torrentpier/commit/867359a89e480071cfd927e2cb6ef4fd761c0172)) - *(_release.php)* Added `push origin` command ([#1932](https://github.com/torrentpier/torrentpier/pull/1932)) - ([5561e00](https://github.com/torrentpier/torrentpier/commit/5561e0022ca6a0a668f2dc5aee541609bb6c4d1e)) +- *(cliff.toml)* Use correct nightly link ([#1944](https://github.com/torrentpier/torrentpier/pull/1944)) - ([5e6fb3e](https://github.com/torrentpier/torrentpier/commit/5e6fb3ef424cbc84bb5e25625dcd22fd73ec98fa)) ## [v2.4.6-alpha.1](https://github.com/torrentpier/torrentpier/compare/v2.4.5..v2.4.6-alpha.1) (2025-06-09) diff --git a/library/config.php b/library/config.php index e5f41a1f7..f646f2fd2 100644 --- a/library/config.php +++ b/library/config.php @@ -18,8 +18,8 @@ $reserved_port = env('TP_PORT', 80); $bb_cfg = []; // Version info -$bb_cfg['tp_version'] = 'v2.4.6-alpha.1'; -$bb_cfg['tp_release_date'] = '09-06-2025'; +$bb_cfg['tp_version'] = 'v2.4.6-alpha.2'; +$bb_cfg['tp_release_date'] = '12-06-2025'; $bb_cfg['tp_release_codename'] = 'Cattle'; // Increase version number after changing JS or CSS From e5811f9c66eef7f228b51fb82ffda3bcddeb915d Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Fri, 13 Jun 2025 10:51:50 +0300 Subject: [PATCH 161/216] misc(_release.php): Minor improvements (#1945) * misc(_release.php): Minor improvements * Update _release.php --- _release.php | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/_release.php b/_release.php index 3b7273a94..7e2168c70 100644 --- a/_release.php +++ b/_release.php @@ -118,15 +118,10 @@ runProcess('npx git-cliff v2.4.5-rc.2.. --config cliff.toml --tag "' . $version // Git add & commit runProcess('git add -A && git commit -m "release: ' . escapeshellarg($version) . (!empty($versionEmoji) ? (' ' . $versionEmoji) : '') . '"'); - -$userName = 'belomaxorka'; -$userEmail = 'roman25052006.kelesh@gmail.com'; -$keyId = '0D496E7D57AEA4B6B017F379F34487C7A449A619'; - -$tagCmd = "git -c user.name=\"$userName\" -c user.email=\"$userEmail\" -c user.signingkey=\"$keyId\" tag -s -a \"$version\" -m \"Release $version\""; -runProcess($tagCmd); +runProcess("git tag -a \"$version\" -m \"Release $version\""); runProcess("git tag -v \"$version\""); +// Git push runProcess("git push origin master"); runProcess("git push origin $version"); From 374a74c91ff97930fc0731407279bba6b72254f8 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Fri, 13 Jun 2025 10:53:29 +0300 Subject: [PATCH 162/216] release: v2.4.6-alpha.3 --- CHANGELOG.md | 7 +++++++ library/config.php | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d3e879fc0..af49c3469 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ # 📖 Change Log +## [v2.4.6-alpha.3](https://github.com/torrentpier/torrentpier/compare/v2.4.6-alpha.2..v2.4.6-alpha.3) (2025-06-13) + +### ⚙️ Miscellaneous + +- *(_release.php)* Minor improvements ([#1945](https://github.com/torrentpier/torrentpier/pull/1945)) - ([e5811f9](https://github.com/torrentpier/torrentpier/commit/e5811f9c66eef7f228b51fb82ffda3bcddeb915d)) + + ## [v2.4.6-alpha.2](https://github.com/torrentpier/torrentpier/compare/v2.4.6-alpha.1..v2.4.6-alpha.2) (2025-06-12) ### 🚀 Features diff --git a/library/config.php b/library/config.php index f646f2fd2..5dae511ea 100644 --- a/library/config.php +++ b/library/config.php @@ -18,8 +18,8 @@ $reserved_port = env('TP_PORT', 80); $bb_cfg = []; // Version info -$bb_cfg['tp_version'] = 'v2.4.6-alpha.2'; -$bb_cfg['tp_release_date'] = '12-06-2025'; +$bb_cfg['tp_version'] = 'v2.4.6-alpha.3'; +$bb_cfg['tp_release_date'] = '13-06-2025'; $bb_cfg['tp_release_codename'] = 'Cattle'; // Increase version number after changing JS or CSS From 0271b21a5e8c9dce918da9954547d81dae2a1d4b Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Fri, 13 Jun 2025 11:04:49 +0300 Subject: [PATCH 163/216] misc(_release.php): Use `GPG` sign for tags by default (#1946) --- _release.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/_release.php b/_release.php index 7e2168c70..e8f3e6914 100644 --- a/_release.php +++ b/_release.php @@ -118,7 +118,13 @@ runProcess('npx git-cliff v2.4.5-rc.2.. --config cliff.toml --tag "' . $version // Git add & commit runProcess('git add -A && git commit -m "release: ' . escapeshellarg($version) . (!empty($versionEmoji) ? (' ' . $versionEmoji) : '') . '"'); -runProcess("git tag -a \"$version\" -m \"Release $version\""); + +$userName = 'Roman Kelesidis'; +$userEmail = 'roman25052006.kelesh@gmail.com'; +$keyId = '139C8E4A1A2B48233AE3EFEFD8157C4D4C4C6DB4'; + +$tagCmd = "git -c user.name=\"$userName\" -c user.email=\"$userEmail\" -c user.signingkey=\"$keyId\" tag -s -a \"$version\" -m \"Release $version\""; +runProcess($tagCmd); runProcess("git tag -v \"$version\""); // Git push From e7d3133aa8e8938c722842117784e61f91da4c31 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Fri, 13 Jun 2025 11:06:10 +0300 Subject: [PATCH 164/216] release: v2.4.6-alpha.4 --- CHANGELOG.md | 7 +++++++ library/config.php | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index af49c3469..3e545e1bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ # 📖 Change Log +## [v2.4.6-alpha.4](https://github.com/torrentpier/torrentpier/compare/v2.4.6-alpha.3..v2.4.6-alpha.4) (2025-06-13) + +### ⚙️ Miscellaneous + +- *(_release.php)* Use `GPG` sign for tags by default ([#1946](https://github.com/torrentpier/torrentpier/pull/1946)) - ([0271b21](https://github.com/torrentpier/torrentpier/commit/0271b21a5e8c9dce918da9954547d81dae2a1d4b)) + + ## [v2.4.6-alpha.3](https://github.com/torrentpier/torrentpier/compare/v2.4.6-alpha.2..v2.4.6-alpha.3) (2025-06-13) ### ⚙️ Miscellaneous diff --git a/library/config.php b/library/config.php index 5dae511ea..866c8ed75 100644 --- a/library/config.php +++ b/library/config.php @@ -18,7 +18,7 @@ $reserved_port = env('TP_PORT', 80); $bb_cfg = []; // Version info -$bb_cfg['tp_version'] = 'v2.4.6-alpha.3'; +$bb_cfg['tp_version'] = 'v2.4.6-alpha.4'; $bb_cfg['tp_release_date'] = '13-06-2025'; $bb_cfg['tp_release_codename'] = 'Cattle'; From 9c7d270598c0153fb82f4b7ad96f5b59399b2159 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Fri, 13 Jun 2025 11:20:11 +0300 Subject: [PATCH 165/216] misc(_release.php): Finally! Removed some useless params (#1947) --- _release.php | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/_release.php b/_release.php index e8f3e6914..a09f3c718 100644 --- a/_release.php +++ b/_release.php @@ -119,12 +119,8 @@ runProcess('npx git-cliff v2.4.5-rc.2.. --config cliff.toml --tag "' . $version // Git add & commit runProcess('git add -A && git commit -m "release: ' . escapeshellarg($version) . (!empty($versionEmoji) ? (' ' . $versionEmoji) : '') . '"'); -$userName = 'Roman Kelesidis'; -$userEmail = 'roman25052006.kelesh@gmail.com'; -$keyId = '139C8E4A1A2B48233AE3EFEFD8157C4D4C4C6DB4'; - -$tagCmd = "git -c user.name=\"$userName\" -c user.email=\"$userEmail\" -c user.signingkey=\"$keyId\" tag -s -a \"$version\" -m \"Release $version\""; -runProcess($tagCmd); +// Git tag +runProcess("git tag -a \"$version\" -m \"Release $version\""); runProcess("git tag -v \"$version\""); // Git push From b5302688268de48c929d7092f1ea99ff1ab0c2d2 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Fri, 13 Jun 2025 08:21:18 +0000 Subject: [PATCH 166/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3e545e1bd..ae833197d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ # 📖 Change Log +## [nightly](https://nightly.link/torrentpier/torrentpier/workflows/ci/master/TorrentPier-master) + +### ⚙️ Miscellaneous + +- *(_release.php)* Finally! Removed some useless params ([#1947](https://github.com/torrentpier/torrentpier/pull/1947)) - ([9c7d270](https://github.com/torrentpier/torrentpier/commit/9c7d270598c0153fb82f4b7ad96f5b59399b2159)) + + ## [v2.4.6-alpha.4](https://github.com/torrentpier/torrentpier/compare/v2.4.6-alpha.3..v2.4.6-alpha.4) (2025-06-13) ### ⚙️ Miscellaneous From 224f0ffa1f20d04f512a5c0e4788de824f11338b Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Sun, 15 Jun 2025 01:50:26 +0000 Subject: [PATCH 167/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ae833197d..7d9a30012 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -238,9 +238,6 @@ - Bring back missing `cache` & `log` directories ([#1832](https://github.com/torrentpier/torrentpier/pull/1832)) - ([249c988](https://github.com/torrentpier/torrentpier/commit/249c9889890291d56317dd703414bdb57ecaa41f)) - Some minor improvements ([#1829](https://github.com/torrentpier/torrentpier/pull/1829)) - ([3b8ee4c](https://github.com/torrentpier/torrentpier/commit/3b8ee4c4d3ab4631425fbe44f197b6a9bd7d158c)) -## New Contributors ❤️ - -* @xeddmc made their first contribution in [#1812](https://github.com/torrentpier/torrentpier/pull/1812) ## [v2.4.5-rc.3](https://github.com/torrentpier/torrentpier/compare/v2.4.5-rc.2..v2.4.5-rc.3) (2025-02-06) @@ -321,8 +318,5 @@ - Minor improvements ([#1743](https://github.com/torrentpier/torrentpier/pull/1743)) - ([e73d650](https://github.com/torrentpier/torrentpier/commit/e73d65011fff0a8b8e1368eef61bbfb67e87eab8)) - Enabled `$bb_cfg['integrity_check']` by defaul ([#1742](https://github.com/torrentpier/torrentpier/pull/1742)) - ([7e3601e](https://github.com/torrentpier/torrentpier/commit/7e3601e63aff73be1428969ca37dda3da2537d9b)) -## New Contributors ❤️ - -* @actions-user made their first contribution From 633051bb994636cf5ff182a68a30b542cd9ed173 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Mon, 16 Jun 2025 01:45:24 +0000 Subject: [PATCH 168/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d9a30012..ae833197d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -238,6 +238,9 @@ - Bring back missing `cache` & `log` directories ([#1832](https://github.com/torrentpier/torrentpier/pull/1832)) - ([249c988](https://github.com/torrentpier/torrentpier/commit/249c9889890291d56317dd703414bdb57ecaa41f)) - Some minor improvements ([#1829](https://github.com/torrentpier/torrentpier/pull/1829)) - ([3b8ee4c](https://github.com/torrentpier/torrentpier/commit/3b8ee4c4d3ab4631425fbe44f197b6a9bd7d158c)) +## New Contributors ❤️ + +* @xeddmc made their first contribution in [#1812](https://github.com/torrentpier/torrentpier/pull/1812) ## [v2.4.5-rc.3](https://github.com/torrentpier/torrentpier/compare/v2.4.5-rc.2..v2.4.5-rc.3) (2025-02-06) @@ -318,5 +321,8 @@ - Minor improvements ([#1743](https://github.com/torrentpier/torrentpier/pull/1743)) - ([e73d650](https://github.com/torrentpier/torrentpier/commit/e73d65011fff0a8b8e1368eef61bbfb67e87eab8)) - Enabled `$bb_cfg['integrity_check']` by defaul ([#1742](https://github.com/torrentpier/torrentpier/pull/1742)) - ([7e3601e](https://github.com/torrentpier/torrentpier/commit/7e3601e63aff73be1428969ca37dda3da2537d9b)) +## New Contributors ❤️ + +* @actions-user made their first contribution From b4776804a408217229caa327c79849cf13ce2aa5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Jun 2025 15:07:06 +0300 Subject: [PATCH 169/216] Composer(deps): Bump filp/whoops from 2.18.2 to 2.18.3 (#1948) Bumps [filp/whoops](https://github.com/filp/whoops) from 2.18.2 to 2.18.3. - [Changelog](https://github.com/filp/whoops/blob/master/CHANGELOG.md) - [Commits](https://github.com/filp/whoops/compare/2.18.2...2.18.3) --- updated-dependencies: - dependency-name: filp/whoops dependency-version: 2.18.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/composer.lock b/composer.lock index 565abcfbe..a3fa490ba 100644 --- a/composer.lock +++ b/composer.lock @@ -819,16 +819,16 @@ }, { "name": "filp/whoops", - "version": "2.18.2", + "version": "2.18.3", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "89dabca1490bc77dbcab41c2b20968c7e44bf7c3" + "reference": "59a123a3d459c5a23055802237cb317f609867e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/89dabca1490bc77dbcab41c2b20968c7e44bf7c3", - "reference": "89dabca1490bc77dbcab41c2b20968c7e44bf7c3", + "url": "https://api.github.com/repos/filp/whoops/zipball/59a123a3d459c5a23055802237cb317f609867e5", + "reference": "59a123a3d459c5a23055802237cb317f609867e5", "shasum": "" }, "require": { @@ -878,7 +878,7 @@ ], "support": { "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.18.2" + "source": "https://github.com/filp/whoops/tree/2.18.3" }, "funding": [ { @@ -886,7 +886,7 @@ "type": "github" } ], - "time": "2025-06-11T20:42:19+00:00" + "time": "2025-06-16T00:02:10+00:00" }, { "name": "gemorroj/m3u-parser", From d8b1489b06a30d735e0765db0dc078dcc72b7686 Mon Sep 17 00:00:00 2001 From: belomaxorka Date: Tue, 17 Jun 2025 01:42:31 +0000 Subject: [PATCH 170/216] =?UTF-8?q?Update=20CHANGELOG.md=20=F0=9F=93=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ae833197d..19f1dc9f6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ ## [nightly](https://nightly.link/torrentpier/torrentpier/workflows/ci/master/TorrentPier-master) +### 📦 Dependencies + +- *(deps)* Bump filp/whoops from 2.18.2 to 2.18.3 ([#1948](https://github.com/torrentpier/torrentpier/pull/1948)) - ([b477680](https://github.com/torrentpier/torrentpier/commit/b4776804a408217229caa327c79849cf13ce2aa5)) + ### ⚙️ Miscellaneous - *(_release.php)* Finally! Removed some useless params ([#1947](https://github.com/torrentpier/torrentpier/pull/1947)) - ([9c7d270](https://github.com/torrentpier/torrentpier/commit/9c7d270598c0153fb82f4b7ad96f5b59399b2159)) From 8907dbf9912c2ddb3177779962ce54064deecd8f Mon Sep 17 00:00:00 2001 From: Yury Pikhtarev Date: Tue, 17 Jun 2025 18:07:31 +0400 Subject: [PATCH 171/216] Update composer.lock and improve SQL queries in online_userlist.php and tr_cleanup_and_dlstat.php (#1949) - Updated plugin API version in composer.lock from 2.3.0 to 2.6.0. - Modified SQL queries in online_userlist.php to use MAX() for session data and adjusted GROUP BY clause for better accuracy. - Enhanced SQL logic in tr_cleanup_and_dlstat.php to utilize MAX() for determining the releaser status. --- composer.lock | 4 ++-- library/includes/cron/jobs/tr_cleanup_and_dlstat.php | 2 +- library/includes/online_userlist.php | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/composer.lock b/composer.lock index a3fa490ba..3721bdaa1 100644 --- a/composer.lock +++ b/composer.lock @@ -3746,6 +3746,6 @@ "platform": { "php": ">=8.1" }, - "platform-dev": [], - "plugin-api-version": "2.3.0" + "platform-dev": {}, + "plugin-api-version": "2.6.0" } diff --git a/library/includes/cron/jobs/tr_cleanup_and_dlstat.php b/library/includes/cron/jobs/tr_cleanup_and_dlstat.php index a0d7efd25..9d633bbed 100644 --- a/library/includes/cron/jobs/tr_cleanup_and_dlstat.php +++ b/library/includes/cron/jobs/tr_cleanup_and_dlstat.php @@ -39,7 +39,7 @@ if ($bb_cfg['tracker']['update_dlstat']) { INSERT INTO " . NEW_BB_BT_LAST_TORSTAT . " (topic_id, user_id, dl_status, up_add, down_add, release_add, speed_up, speed_down) SELECT - topic_id, user_id, IF(releaser, $releaser, seeder), SUM(up_add), SUM(down_add), IF(releaser, SUM(up_add), 0), SUM(speed_up), SUM(speed_down) + topic_id, user_id, IF(MAX(releaser), $releaser, seeder), SUM(up_add), SUM(down_add), IF(MAX(releaser), SUM(up_add), 0), SUM(speed_up), SUM(speed_down) FROM " . BB_BT_TRACKER . " WHERE (up_add != 0 OR down_add != 0) GROUP BY topic_id, user_id diff --git a/library/includes/online_userlist.php b/library/includes/online_userlist.php index ffa0cd2e4..7434f79ea 100644 --- a/library/includes/online_userlist.php +++ b/library/includes/online_userlist.php @@ -36,11 +36,11 @@ $online = $online_short = ['userlist' => '']; $sql = " SELECT u.username, u.user_id, u.user_opt, u.user_rank, u.user_level, - s.session_logged_in, s.session_ip, (s.session_time - s.session_start) AS ses_len, COUNT(s.session_id) AS sessions, COUNT(DISTINCT s.session_ip) AS ips + MAX(s.session_logged_in) AS session_logged_in, MAX(s.session_ip) AS session_ip, MAX(s.session_time - s.session_start) AS ses_len, COUNT(s.session_id) AS sessions, COUNT(DISTINCT s.session_ip) AS ips FROM " . BB_SESSIONS . " s, " . BB_USERS . " u WHERE s.session_time > $time_online AND u.user_id = s.session_user_id - GROUP BY s.session_user_id + GROUP BY s.session_user_id, u.username, u.user_id, u.user_opt, u.user_rank, u.user_level ORDER BY u.username "; From 5842994782dfa62788f8427c55045abdbfb5b8e9 Mon Sep 17 00:00:00 2001 From: Yury Pikhtarev Date: Tue, 17 Jun 2025 18:41:45 +0400 Subject: [PATCH 172/216] refactor(config): encapsulate global $bb_cfg array in Config class (#1950) - Create new TorrentPier\Config singleton class with dot notation support - Add config() helper function for global access - Replace direct $bb_cfg access in core files (common.php, Emailer.php, Ajax.php) - Implement methods: get(), set(), has(), all(), getSection(), merge() - Add magic methods for property-like access - Maintain backward compatibility with existing $bb_cfg usage BREAKING CHANGE: None - maintains full backward compatibility --- common.php | 37 ++++++---- src/Ajax.php | 6 +- src/Config.php | 182 ++++++++++++++++++++++++++++++++++++++++++++++++ src/Emailer.php | 45 ++++++------ 4 files changed, 231 insertions(+), 39 deletions(-) create mode 100644 src/Config.php diff --git a/common.php b/common.php index a455a7de2..e62800df7 100644 --- a/common.php +++ b/common.php @@ -86,6 +86,19 @@ if (is_file(BB_PATH . '/library/config.local.php')) { require_once BB_PATH . '/library/config.local.php'; } +// Initialize Config singleton +$config = \TorrentPier\Config::init($bb_cfg); + +/** + * Get the Config instance + * + * @return \TorrentPier\Config + */ +function config(): \TorrentPier\Config +{ + return \TorrentPier\Config::getInstance(); +} + /** * Initialize debug */ @@ -100,16 +113,16 @@ if (APP_ENV === 'local') { /** * Server variables initialize */ -$server_protocol = $bb_cfg['cookie_secure'] ? 'https://' : 'http://'; -$server_port = in_array((int)$bb_cfg['server_port'], [80, 443], true) ? '' : ':' . $bb_cfg['server_port']; -define('FORUM_PATH', $bb_cfg['script_path']); -define('FULL_URL', $server_protocol . $bb_cfg['server_name'] . $server_port . $bb_cfg['script_path']); +$server_protocol = config()->get('cookie_secure') ? 'https://' : 'http://'; +$server_port = in_array((int)config()->get('server_port'), [80, 443], true) ? '' : ':' . config()->get('server_port'); +define('FORUM_PATH', config()->get('script_path')); +define('FULL_URL', $server_protocol . config()->get('server_name') . $server_port . config()->get('script_path')); unset($server_protocol, $server_port); /** * Database */ -$DBS = new TorrentPier\Legacy\Dbs($bb_cfg); +$DBS = new TorrentPier\Legacy\Dbs(config()->all()); function DB(string $db_alias = 'db') { @@ -120,7 +133,7 @@ function DB(string $db_alias = 'db') /** * Cache */ -$CACHES = new TorrentPier\Legacy\Caches($bb_cfg); +$CACHES = new TorrentPier\Legacy\Caches(config()->all()); function CACHE(string $cache_name) { @@ -131,22 +144,22 @@ function CACHE(string $cache_name) /** * Datastore */ -switch ($bb_cfg['datastore_type']) { +switch (config()->get('datastore_type')) { case 'apcu': - $datastore = new TorrentPier\Legacy\Datastore\APCu($bb_cfg['cache']['prefix']); + $datastore = new TorrentPier\Legacy\Datastore\APCu(config()->get('cache.prefix')); break; case 'memcached': - $datastore = new TorrentPier\Legacy\Datastore\Memcached($bb_cfg['cache']['memcached'], $bb_cfg['cache']['prefix']); + $datastore = new TorrentPier\Legacy\Datastore\Memcached(config()->get('cache.memcached'), config()->get('cache.prefix')); break; case 'sqlite': - $datastore = new TorrentPier\Legacy\Datastore\Sqlite($bb_cfg['cache']['db_dir'] . 'datastore', $bb_cfg['cache']['prefix']); + $datastore = new TorrentPier\Legacy\Datastore\Sqlite(config()->get('cache.db_dir') . 'datastore', config()->get('cache.prefix')); break; case 'redis': - $datastore = new TorrentPier\Legacy\Datastore\Redis($bb_cfg['cache']['redis'], $bb_cfg['cache']['prefix']); + $datastore = new TorrentPier\Legacy\Datastore\Redis(config()->get('cache.redis'), config()->get('cache.prefix')); break; case 'filecache': default: - $datastore = new TorrentPier\Legacy\Datastore\File($bb_cfg['cache']['db_dir'] . 'datastore/', $bb_cfg['cache']['prefix']); + $datastore = new TorrentPier\Legacy\Datastore\File(config()->get('cache.db_dir') . 'datastore/', config()->get('cache.prefix')); } // Functions diff --git a/src/Ajax.php b/src/Ajax.php index a2f3e6090..a4005ee90 100644 --- a/src/Ajax.php +++ b/src/Ajax.php @@ -68,7 +68,7 @@ class Ajax */ public function exec() { - global $lang, $bb_cfg; + global $lang; // Exit if we already have errors if (!empty($this->response['error_code'])) { @@ -89,8 +89,8 @@ class Ajax } // Exit if board is disabled via ON/OFF trigger or by admin - if ($bb_cfg['board_disable'] || is_file(BB_DISABLED)) { - if ($bb_cfg['board_disable']) { + if (config()->get('board_disable') || is_file(BB_DISABLED)) { + if (config()->get('board_disable')) { $this->ajax_die($lang['BOARD_DISABLE']); } elseif (is_file(BB_DISABLED) && $this->action !== 'manage_admin') { $this->ajax_die($lang['BOARD_DISABLE_CRON']); diff --git a/src/Config.php b/src/Config.php new file mode 100644 index 000000000..2490e94c3 --- /dev/null +++ b/src/Config.php @@ -0,0 +1,182 @@ +config = $config; + } + + /** + * Get the singleton instance of Config + */ + public static function getInstance(array $config = []): Config + { + if (self::$instance === null) { + self::$instance = new self($config); + } + return self::$instance; + } + + /** + * Initialize the config with the global $bb_cfg array + */ + public static function init(array $bb_cfg): Config + { + self::$instance = new self($bb_cfg); + return self::$instance; + } + + /** + * Get a configuration value by key + * Supports dot notation for nested arrays (e.g., 'db.host') + */ + public function get(string $key, mixed $default = null): mixed + { + if (str_contains($key, '.')) { + return $this->getNestedValue($key, $default); + } + + return $this->config[$key] ?? $default; + } + + /** + * Set a configuration value by key + * Supports dot notation for nested arrays + */ + public function set(string $key, mixed $value): void + { + if (str_contains($key, '.')) { + $this->setNestedValue($key, $value); + } else { + $this->config[$key] = $value; + } + } + + /** + * Check if a configuration key exists + * Supports dot notation for nested arrays + */ + public function has(string $key): bool + { + if (str_contains($key, '.')) { + return $this->getNestedValue($key) !== null; + } + + return array_key_exists($key, $this->config); + } + + /** + * Get all configuration values + */ + public function all(): array + { + return $this->config; + } + + /** + * Get a nested value using dot notation + */ + private function getNestedValue(string $key, mixed $default = null): mixed + { + $keys = explode('.', $key); + $value = $this->config; + + foreach ($keys as $k) { + if (!is_array($value) || !array_key_exists($k, $value)) { + return $default; + } + $value = $value[$k]; + } + + return $value; + } + + /** + * Set a nested value using dot notation + */ + private function setNestedValue(string $key, mixed $value): void + { + $keys = explode('.', $key); + $target = &$this->config; + + foreach ($keys as $k) { + if (!isset($target[$k]) || !is_array($target[$k])) { + $target[$k] = []; + } + $target = &$target[$k]; + } + + $target = $value; + } + + /** + * Merge additional configuration values + */ + public function merge(array $config): void + { + $this->config = array_merge_recursive($this->config, $config); + } + + /** + * Get a section of the configuration + */ + public function getSection(string $section): array + { + return $this->config[$section] ?? []; + } + + /** + * Magic method to allow property access + */ + public function __get(string $key): mixed + { + return $this->get($key); + } + + /** + * Magic method to allow property setting + */ + public function __set(string $key, mixed $value): void + { + $this->set($key, $value); + } + + /** + * Magic method to check if property exists + */ + public function __isset(string $key): bool + { + return $this->has($key); + } + + /** + * Prevent cloning of the singleton instance + */ + private function __clone() {} + + /** + * Prevent unserialization of the singleton instance + */ + public function __wakeup() + { + throw new \Exception("Cannot unserialize a singleton."); + } +} \ No newline at end of file diff --git a/src/Emailer.php b/src/Emailer.php index 7330f9405..d31e3716e 100644 --- a/src/Emailer.php +++ b/src/Emailer.php @@ -87,17 +87,15 @@ class Emailer */ public function set_template(string $template_file, string $template_lang = ''): void { - global $bb_cfg; - if (!$template_lang) { - $template_lang = $bb_cfg['default_lang']; + $template_lang = config()->get('default_lang'); } if (empty($this->tpl_msg[$template_lang . $template_file])) { $tpl_file = LANG_ROOT_DIR . '/' . $template_lang . '/email/' . $template_file . '.html'; if (!is_file($tpl_file)) { - $tpl_file = LANG_ROOT_DIR . '/' . $bb_cfg['default_lang'] . '/email/' . $template_file . '.html'; + $tpl_file = LANG_ROOT_DIR . '/' . config()->get('default_lang') . '/email/' . $template_file . '.html'; if (!is_file($tpl_file)) { throw new Exception('Could not find email template file: ' . $template_file); @@ -125,9 +123,9 @@ class Emailer */ public function send(string $email_format = 'text/plain'): bool { - global $bb_cfg, $lang; + global $lang; - if (!$bb_cfg['emailer']['enabled']) { + if (!config()->get('emailer.enabled')) { return false; } @@ -142,24 +140,25 @@ class Emailer $this->subject = !empty($this->subject) ? $this->subject : $lang['EMAILER_SUBJECT']['EMPTY']; /** Prepare message */ - if ($bb_cfg['emailer']['smtp']['enabled']) { - if (!empty($bb_cfg['emailer']['smtp']['host'])) { - if (empty($bb_cfg['emailer']['smtp']['ssl_type'])) { - $bb_cfg['emailer']['smtp']['ssl_type'] = null; + if (config()->get('emailer.smtp.enabled')) { + if (!empty(config()->get('emailer.smtp.host'))) { + $sslType = config()->get('emailer.smtp.ssl_type'); + if (empty($sslType)) { + $sslType = null; } /** @var EsmtpTransport $transport external SMTP with SSL */ $transport = (new EsmtpTransport( - $bb_cfg['emailer']['smtp']['host'], - $bb_cfg['emailer']['smtp']['port'], - $bb_cfg['emailer']['smtp']['ssl_type'] + config()->get('emailer.smtp.host'), + config()->get('emailer.smtp.port'), + $sslType )) - ->setUsername($bb_cfg['emailer']['smtp']['username']) - ->setPassword($bb_cfg['emailer']['smtp']['password']); + ->setUsername(config()->get('emailer.smtp.username')) + ->setPassword(config()->get('emailer.smtp.password')); } else { $transport = new EsmtpTransport('localhost', 25); } } else { - $transport = new SendmailTransport($bb_cfg['emailer']['sendmail_command']); + $transport = new SendmailTransport(config()->get('emailer.sendmail_command')); } $mailer = new Mailer($transport); @@ -168,9 +167,9 @@ class Emailer $message = (new Email()) ->subject($this->subject) ->to($this->to) - ->from(new Address($bb_cfg['board_email'], $bb_cfg['board_email_sitename'])) - ->returnPath(new Address($bb_cfg['bounce_email'])) - ->replyTo($this->reply ?? new Address($bb_cfg['board_email'])); + ->from(new Address(config()->get('board_email'), config()->get('board_email_sitename'))) + ->returnPath(new Address(config()->get('bounce_email'))) + ->replyTo($this->reply ?? new Address(config()->get('board_email'))); /** * This non-standard header tells compliant autoresponders ("email holiday mode") to not @@ -209,12 +208,10 @@ class Emailer */ public function assign_vars($vars): void { - global $bb_cfg; - $this->vars = array_merge([ - 'BOARD_EMAIL' => $bb_cfg['board_email'], - 'SITENAME' => $bb_cfg['board_email_sitename'], - 'EMAIL_SIG' => !empty($bb_cfg['board_email_sig']) ? "-- \n{$bb_cfg['board_email_sig']}" : '', + 'BOARD_EMAIL' => config()->get('board_email'), + 'SITENAME' => config()->get('board_email_sitename'), + 'EMAIL_SIG' => !empty(config()->get('board_email_sig')) ? "-- \n" . config()->get('board_email_sig') : '', ], $vars); } } From 81bf67c2be85d49e988b7802ca7e9738ff580031 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Tue, 17 Jun 2025 18:14:47 +0300 Subject: [PATCH 173/216] fix(installer): Strip protocol from TP_HOST to keep only hostname (#1952) --- install.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/install.php b/install.php index 009098420..327c0fb5d 100644 --- a/install.php +++ b/install.php @@ -206,6 +206,12 @@ if (is_file(BB_ROOT . '.env')) { $newValue = trim(readline()); if (!empty($newValue) || $key === 'DB_PASSWORD') { + if ($key === 'TP_HOST') { + if (!preg_match('/^https?:\/\//', $newValue)) { + $newValue = 'https://' . $newValue; + } + $newValue = parse_url($newValue, PHP_URL_HOST); + } $line = "$key=$newValue"; $$key = $newValue; } else { From 37a0675adfb02014e7068f4aa82301e29f39eab6 Mon Sep 17 00:00:00 2001 From: Yury Pikhtarev Date: Tue, 17 Jun 2025 20:28:14 +0400 Subject: [PATCH 174/216] fix(sql): resolve only_full_group_by compatibility issues in tracker cleanup (#1951) - Replace non-aggregated 'seeder' column with MAX(seeder) in GROUP BY query - Remove ORDER BY clause incompatible with GROUP BY in seeder update query Fixes MySQL 5.7+ strict SQL mode errors in tr_cleanup_and_dlstat cron job. --- library/includes/cron/jobs/tr_cleanup_and_dlstat.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/library/includes/cron/jobs/tr_cleanup_and_dlstat.php b/library/includes/cron/jobs/tr_cleanup_and_dlstat.php index 9d633bbed..a0a64251f 100644 --- a/library/includes/cron/jobs/tr_cleanup_and_dlstat.php +++ b/library/includes/cron/jobs/tr_cleanup_and_dlstat.php @@ -39,7 +39,7 @@ if ($bb_cfg['tracker']['update_dlstat']) { INSERT INTO " . NEW_BB_BT_LAST_TORSTAT . " (topic_id, user_id, dl_status, up_add, down_add, release_add, speed_up, speed_down) SELECT - topic_id, user_id, IF(MAX(releaser), $releaser, seeder), SUM(up_add), SUM(down_add), IF(MAX(releaser), SUM(up_add), 0), SUM(speed_up), SUM(speed_down) + topic_id, user_id, IF(MAX(releaser), $releaser, MAX(seeder)), SUM(up_add), SUM(down_add), IF(MAX(releaser), SUM(up_add), 0), SUM(speed_up), SUM(speed_down) FROM " . BB_BT_TRACKER . " WHERE (up_add != 0 OR down_add != 0) GROUP BY topic_id, user_id @@ -61,7 +61,6 @@ DB()->query(" FROM " . BB_BT_TRACKER . " WHERE seeder = 1 GROUP BY topic_id, user_id - ORDER BY update_time DESC "); // Clean peers table From bf9100fbfa74768edb01c62636198a44739d9923 Mon Sep 17 00:00:00 2001 From: Yury Pikhtarev Date: Wed, 18 Jun 2025 01:19:49 +0400 Subject: [PATCH 175/216] feat: implement centralized Config class to replace global $bb_cfg array (#1953) * feat: implement centralized Config class to replace global $bb_cfg array - Add singleton Config class with dot notation support for nested configuration - Implement thread-safe configuration access with magic methods (__get, __set, __isset) - Add global config() helper function for convenient access - Support for getSection(), merge(), has(), all() methods with type safety BREAKING CHANGE: While $bb_cfg global array still works for backward compatibility, new code should use config()->get() method with dot notation Updated files: - src/Config.php: New Config singleton class implementation - common.php: Initialize Config singleton and add global helper - src/Emailer.php: Replace $bb_cfg with config()->get() - src/Ajax.php: Replace $bb_cfg with config()->get() - src/Censor.php: Replace $bb_cfg with config()->get() - src/Validate.php: Replace $bb_cfg with config()->get() - src/Dev.php: Replace $bb_cfg with config()->get() - src/Sitemap.php: Replace $bb_cfg with config()->get() - src/TorrServerAPI.php: Replace $bb_cfg with config()->get() - src/Sessions.php: Replace $bb_cfg with config()->get() - src/Legacy/TorrentFileList.php: Replace $bb_cfg with config()->get() - src/Legacy/Poll.php: Replace $bb_cfg with config()->get() - src/Legacy/Torrent.php: Replace $bb_cfg with config()->get() - src/Legacy/Common/User.php: Replace $bb_cfg with config()->get() - src/Legacy/Template.php: Replace $bb_cfg with config()->get() - src/Legacy/Atom.php: Replace $bb_cfg with config()->get() - src/Legacy/Admin/Common.php: Replace $bb_cfg with config()->get() - viewforum.php: Replace $bb_cfg with config()->get() - posting.php: Replace $bb_cfg with config()->get() - dl.php: Replace $bb_cfg with config()->get() - feed.php: Replace $bb_cfg with config()->get() - filelist.php: Replace $bb_cfg with config()->get() - group_edit.php: Replace $bb_cfg with config()->get() - group.php: Replace $bb_cfg with config()->get() - index.php: Replace $bb_cfg with config()->get() - login.php: Replace $bb_cfg with config()->get() - memberlist.php: Replace $bb_cfg with config()->get() - modcp.php: Replace $bb_cfg with config()->get() - playback_m3u.php: Replace $bb_cfg with config()->get() - poll.php: Replace $bb_cfg with config()->get() * refactor: replace $bb_cfg with config() in various admin files - Updated multiple admin files to utilize the new Config class for configuration access. - Replaced instances of $bb_cfg with config()->get() for improved maintainability and consistency. - Ensured backward compatibility while transitioning to the new configuration system. Files modified: - common.php - index.php - admin_attach_cp.php - admin_log.php - admin_mass_email.php - admin_sitemap.php - admin_smilies.php - admin_terms.php - admin_user_search.php - admin_words.php - admin/index.php - admin/stats/tracker.php * refactor: update init_bb.php to use config() for configuration management - Replaced the merging of $bb_cfg with a call to config()->merge() for improved clarity and maintainability. - Updated the retrieval of all configuration settings to use config()->all(). This change continues the transition towards a centralized configuration system. * refactor: replace $bb_cfg with config() in various files - Updated multiple files to utilize the new Config class for configuration access. - Replaced instances of $bb_cfg with config()->get() for improved maintainability and consistency. - Ensured backward compatibility while transitioning to the new configuration system. Files modified: - privmsg.php - search.php - terms.php - tracker.php - viewtopic.php - bt/announce.php - bt/scrape.php - bt/includes/init_tr.php - library/ajax/*.php - src/Config.php * refactor: replace $bb_cfg with config() in attachment and display files - Updated multiple files to utilize the new Config class for configuration access. - Replaced instances of $bb_cfg with config()->get() for improved maintainability and consistency. - Ensured backward compatibility while transitioning to the new configuration system. Files modified: - attachment_mod.php - displaying_torrent.php - functions_delete.php - bbcode.php - functions.php - init_bb.php - online_userlist.php - page_footer.php - page_header.php - torrent_show_dl_list.php - cron jobs (various files) - datastore build files (various files) * refactor: replace $bb_cfg with config() in user control panel files - Updated multiple user control panel files to utilize the new Config class for configuration access. - Replaced instances of $bb_cfg with config()->get() for improved maintainability and consistency. - Ensured backward compatibility while transitioning to the new configuration system. Files modified: - bonus.php - email.php - register.php - sendpasswd.php - topic_watch.php - viewprofile.php * refactor: replace $bb_cfg with config() in various legacy files - Updated multiple legacy files to utilize the new Config class for configuration access. - Replaced instances of $bb_cfg with config()->get() for improved maintainability and consistency. - Ensured backward compatibility while transitioning to the new configuration system. Files modified: - sidebar2.html - BBCode.php - LogAction.php - Post.php - Template.php - Torrent.php - Common/User.php - Common/Select.php - Common/Upload.php - Admin/Common.php - tpl_config.php * refactor: remove legacy DOCUMENTATION.md and add UPGRADE_GUIDE.md - Deleted the outdated DOCUMENTATION.md file, which contained legacy configuration information. - Introduced a new UPGRADE_GUIDE.md to assist users in migrating to the new configuration system. - The upgrade guide includes migration strategies, breaking changes, and best practices for using the new Config class. Files modified: - DOCUMENTATION.md (deleted) - UPGRADE_GUIDE.md (new) * refactor: update legacy files to maintain compatibility with bb_cfg deprecation - Added comments in init_bb.php, Template.php, and Cron.php to indicate that bb_cfg is deprecated but retained for compatibility with non-adapted code. - Ensured clarity in documentation for future reference while transitioning to the new configuration system. Files modified: - init_bb.php - Template.php - Cron.php --- UPGRADE_GUIDE.md | 165 ++++++++++++++++++ admin/admin_attach_cp.php | 26 +-- admin/admin_log.php | 2 +- admin/admin_mass_email.php | 4 +- admin/admin_sitemap.php | 2 +- admin/admin_smilies.php | 2 +- admin/admin_terms.php | 6 +- admin/admin_user_search.php | 6 +- admin/admin_words.php | 4 +- admin/index.php | 14 +- admin/stats/tracker.php | 2 +- bt/announce.php | 72 ++++---- bt/includes/init_tr.php | 6 +- bt/scrape.php | 8 +- common.php | 6 +- dl.php | 6 +- feed.php | 12 +- filelist.php | 8 +- group.php | 12 +- group_edit.php | 6 +- index.php | 40 ++--- library/ajax/avatar.php | 2 +- library/ajax/callseed.php | 6 +- library/ajax/change_tor_status.php | 14 +- library/ajax/change_torrent.php | 2 +- library/ajax/edit_group_profile.php | 2 +- library/ajax/edit_user_profile.php | 14 +- library/ajax/ffprobe_info.php | 6 +- library/ajax/index_data.php | 20 +-- library/ajax/manage_admin.php | 18 +- library/ajax/manage_user.php | 2 +- library/ajax/mod_action.php | 18 +- library/ajax/posts.php | 24 +-- library/ajax/sitemap.php | 4 +- library/ajax/thanks.php | 8 +- library/ajax/user_register.php | 2 +- library/ajax/view_post.php | 4 +- library/attach_mod/attachment_mod.php | 10 +- library/attach_mod/displaying_torrent.php | 44 ++--- .../attach_mod/includes/functions_delete.php | 4 +- library/includes/bbcode.php | 25 +-- .../includes/cron/jobs/attach_maintenance.php | 2 +- .../includes/cron/jobs/board_maintenance.php | 6 +- library/includes/cron/jobs/clean_dlstat.php | 10 +- library/includes/cron/jobs/clean_log.php | 2 +- library/includes/cron/jobs/clean_pm.php | 2 +- library/includes/cron/jobs/demo_mode.php | 2 +- library/includes/cron/jobs/prune_forums.php | 2 +- .../cron/jobs/prune_inactive_users.php | 4 +- .../includes/cron/jobs/prune_topic_moved.php | 4 +- .../includes/cron/jobs/sessions_cleanup.php | 6 +- .../cron/jobs/tr_cleanup_and_dlstat.php | 10 +- library/includes/cron/jobs/tr_maintenance.php | 6 +- .../includes/cron/jobs/tr_make_snapshot.php | 8 +- library/includes/cron/jobs/tr_seed_bonus.php | 10 +- .../includes/cron/jobs/update_forums_atom.php | 10 +- .../includes/datastore/build_cat_forums.php | 12 +- .../datastore/build_check_updates.php | 8 +- library/includes/datastore/build_smilies.php | 4 +- library/includes/datastore/build_stats.php | 10 +- library/includes/functions.php | 141 +++++++-------- library/includes/init_bb.php | 35 ++-- library/includes/online_userlist.php | 2 +- library/includes/page_footer.php | 10 +- library/includes/page_header.php | 34 ++-- library/includes/torrent_show_dl_list.php | 20 +-- library/includes/ucp/bonus.php | 6 +- library/includes/ucp/email.php | 2 +- library/includes/ucp/register.php | 90 +++++----- library/includes/ucp/sendpasswd.php | 4 +- library/includes/ucp/topic_watch.php | 6 +- library/includes/ucp/viewprofile.php | 12 +- library/language/source/html/sidebar2.html | 2 +- login.php | 10 +- memberlist.php | 14 +- modcp.php | 18 +- playback_m3u.php | 4 +- poll.php | 4 +- posting.php | 22 +-- privmsg.php | 32 ++-- search.php | 22 ++- src/Censor.php | 4 +- src/Config.php | 4 +- src/Dev.php | 22 +-- src/Legacy/Admin/Common.php | 8 +- src/Legacy/Admin/Cron.php | 1 + src/Legacy/Atom.php | 20 +-- src/Legacy/BBCode.php | 8 +- src/Legacy/Common/Select.php | 14 +- src/Legacy/Common/Upload.php | 4 +- src/Legacy/Common/User.php | 63 +++---- src/Legacy/LogAction.php | 2 +- src/Legacy/Poll.php | 6 +- src/Legacy/Post.php | 40 ++--- src/Legacy/Template.php | 12 +- src/Legacy/Torrent.php | 54 +++--- src/Legacy/TorrentFileList.php | 8 +- src/Sessions.php | 4 +- src/Sitemap.php | 6 +- src/TorrServerAPI.php | 20 +-- src/Validate.php | 16 +- styles/templates/default/tpl_config.php | 40 ++--- terms.php | 4 +- tracker.php | 16 +- viewforum.php | 26 +-- viewtopic.php | 40 ++--- 106 files changed, 885 insertions(+), 803 deletions(-) create mode 100644 UPGRADE_GUIDE.md diff --git a/UPGRADE_GUIDE.md b/UPGRADE_GUIDE.md new file mode 100644 index 000000000..98bf8ca1c --- /dev/null +++ b/UPGRADE_GUIDE.md @@ -0,0 +1,165 @@ +# 🚀 TorrentPier Upgrade Guide + +This guide helps you upgrade your TorrentPier installation to the latest version, covering breaking changes, new features, and migration strategies. + +## 📖 Table of Contents + +- [Configuration System Migration](#configuration-system-migration) +- [Breaking Changes](#breaking-changes) +- [Best Practices](#best-practices) + +## ⚙️ Configuration System Migration + +The new TorrentPier features a modern, centralized configuration system with full backward compatibility. + +### Quick Migration Overview + +```php +// ❌ Old way (still works, but not recommended) +global $bb_cfg; +$announceUrl = $bb_cfg['bt_announce_url']; +$dbHost = $bb_cfg['database']['host']; + +// ✅ New way (recommended) +$announceUrl = config()->get('bt_announce_url'); +$dbHost = config()->get('database.host'); +``` + +### Key Configuration Changes + +#### Basic Usage +```php +// Get configuration values using dot notation +$siteName = config()->get('sitename'); +$dbHost = config()->get('database.host'); +$cacheTimeout = config()->get('cache.timeout'); + +// Get with default value if key doesn't exist +$maxUsers = config()->get('max_users_online', 100); +$debugMode = config()->get('debug.enabled', false); +``` + +#### Setting Values +```php +// Set configuration values +config()->set('sitename', 'My Awesome Tracker'); +config()->set('database.port', 3306); +config()->set('cache.enabled', true); +``` + +#### Working with Sections +```php +// Get entire configuration section +$dbConfig = config()->getSection('database'); +$trackerConfig = config()->getSection('tracker'); + +// Check if configuration exists +if (config()->has('bt_announce_url')) { + $announceUrl = config()->get('bt_announce_url'); +} +``` + +### Common Configuration Mappings + +| Old Syntax | New Syntax | +|------------|------------| +| `$bb_cfg['sitename']` | `config()->get('sitename')` | +| `$bb_cfg['database']['host']` | `config()->get('database.host')` | +| `$bb_cfg['tracker']['enabled']` | `config()->get('tracker.enabled')` | +| `$bb_cfg['cache']['timeout']` | `config()->get('cache.timeout')` | +| `$bb_cfg['torr_server']['url']` | `config()->get('torr_server.url')` | + +### Magic Methods Support +```php +// Magic getter +$siteName = config()->sitename; +$dbHost = config()->{'database.host'}; + +// Magic setter +config()->sitename = 'New Site Name'; +config()->{'database.port'} = 3306; + +// Magic isset +if (isset(config()->bt_announce_url)) { + // Configuration exists +} +``` + +## ⚠️ Breaking Changes + +### Deprecated Functions +- `get_config()` → Use `config()->get()` +- `set_config()` → Use `config()->set()` +- Direct `$bb_cfg` access → Use `config()` methods + +### File Structure Changes +- New `/src/` directory for modern PHP classes +- Reorganized template structure + +### Template Changes +- Updated template syntax in some areas +- New template variables available +- Deprecated template functions + +## 📋 Best Practices + +### Configuration Management +```php +// ✅ Always provide defaults +$timeout = config()->get('api.timeout', 30); + +// ✅ Use type hints +function getMaxUploadSize(): int { + return (int) config()->get('upload.max_size', 10485760); +} + +// ✅ Cache frequently used values +class TrackerService { + private string $announceUrl; + + public function __construct() { + $this->announceUrl = config()->get('bt_announce_url'); + } +} +``` + +### Error Handling +```php +// ✅ Graceful error handling +try { + $dbConfig = config()->getSection('database'); + // Database operations +} catch (Exception $e) { + error_log("Database configuration error: " . $e->getMessage()); + // Fallback behavior +} +``` + +### Performance Optimization +```php +// ✅ Minimize configuration calls in loops +$cacheEnabled = config()->get('cache.enabled', false); +for ($i = 0; $i < 1000; $i++) { + if ($cacheEnabled) { + // Use cached value + } +} +``` + +### Security Considerations +```php +// ✅ Validate configuration values +$maxFileSize = min( + config()->get('upload.max_size', 1048576), + 1048576 * 100 // Hard limit: 100MB +); + +// ✅ Sanitize user-configurable values +$siteName = htmlspecialchars(config()->get('sitename', 'TorrentPier')); +``` + +--- + +**Important**: Always test the upgrade process in a staging environment before applying it to production. Keep backups of your database and files until you're confident the upgrade was successful. + +For additional support, visit our [Official Forum](https://torrentpier.com) or check our [GitHub Repository](https://github.com/torrentpier/torrentpier) for the latest updates and community discussions. diff --git a/admin/admin_attach_cp.php b/admin/admin_attach_cp.php index 6928a253b..a7f1ab498 100644 --- a/admin/admin_attach_cp.php +++ b/admin/admin_attach_cp.php @@ -69,44 +69,44 @@ $order_by = ''; if ($view === 'username') { switch ($mode) { case 'username': - $order_by = 'ORDER BY u.username ' . $sort_order . ' LIMIT ' . $start . ', ' . $bb_cfg['topics_per_page']; + $order_by = 'ORDER BY u.username ' . $sort_order . ' LIMIT ' . $start . ', ' . config()->get('topics_per_page'); break; case 'attachments': - $order_by = 'ORDER BY total_attachments ' . $sort_order . ' LIMIT ' . $start . ', ' . $bb_cfg['topics_per_page']; + $order_by = 'ORDER BY total_attachments ' . $sort_order . ' LIMIT ' . $start . ', ' . config()->get('topics_per_page'); break; case 'filesize': - $order_by = 'ORDER BY total_size ' . $sort_order . ' LIMIT ' . $start . ', ' . $bb_cfg['topics_per_page']; + $order_by = 'ORDER BY total_size ' . $sort_order . ' LIMIT ' . $start . ', ' . config()->get('topics_per_page'); break; default: $mode = 'attachments'; $sort_order = 'DESC'; - $order_by = 'ORDER BY total_attachments ' . $sort_order . ' LIMIT ' . $start . ', ' . $bb_cfg['topics_per_page']; + $order_by = 'ORDER BY total_attachments ' . $sort_order . ' LIMIT ' . $start . ', ' . config()->get('topics_per_page'); break; } } elseif ($view === 'attachments') { switch ($mode) { case 'real_filename': - $order_by = 'ORDER BY a.real_filename ' . $sort_order . ' LIMIT ' . $start . ', ' . $bb_cfg['topics_per_page']; + $order_by = 'ORDER BY a.real_filename ' . $sort_order . ' LIMIT ' . $start . ', ' . config()->get('topics_per_page'); break; case 'comment': - $order_by = 'ORDER BY a.comment ' . $sort_order . ' LIMIT ' . $start . ', ' . $bb_cfg['topics_per_page']; + $order_by = 'ORDER BY a.comment ' . $sort_order . ' LIMIT ' . $start . ', ' . config()->get('topics_per_page'); break; case 'extension': - $order_by = 'ORDER BY a.extension ' . $sort_order . ' LIMIT ' . $start . ', ' . $bb_cfg['topics_per_page']; + $order_by = 'ORDER BY a.extension ' . $sort_order . ' LIMIT ' . $start . ', ' . config()->get('topics_per_page'); break; case 'filesize': - $order_by = 'ORDER BY a.filesize ' . $sort_order . ' LIMIT ' . $start . ', ' . $bb_cfg['topics_per_page']; + $order_by = 'ORDER BY a.filesize ' . $sort_order . ' LIMIT ' . $start . ', ' . config()->get('topics_per_page'); break; case 'downloads': - $order_by = 'ORDER BY a.download_count ' . $sort_order . ' LIMIT ' . $start . ', ' . $bb_cfg['topics_per_page']; + $order_by = 'ORDER BY a.download_count ' . $sort_order . ' LIMIT ' . $start . ', ' . config()->get('topics_per_page'); break; case 'post_time': - $order_by = 'ORDER BY a.filetime ' . $sort_order . ' LIMIT ' . $start . ', ' . $bb_cfg['topics_per_page']; + $order_by = 'ORDER BY a.filetime ' . $sort_order . ' LIMIT ' . $start . ', ' . config()->get('topics_per_page'); break; default: $mode = 'a.real_filename'; $sort_order = 'ASC'; - $order_by = 'ORDER BY a.real_filename ' . $sort_order . ' LIMIT ' . $start . ', ' . $bb_cfg['topics_per_page']; + $order_by = 'ORDER BY a.real_filename ' . $sort_order . ' LIMIT ' . $start . ', ' . config()->get('topics_per_page'); break; } } @@ -470,8 +470,8 @@ if ($view === 'attachments') { } // Generate Pagination -if ($do_pagination && $total_rows > $bb_cfg['topics_per_page']) { - generate_pagination('admin_attach_cp.php?view=' . $view . '&mode=' . $mode . '&order=' . $sort_order . '&uid=' . $uid, $total_rows, $bb_cfg['topics_per_page'], $start); +if ($do_pagination && $total_rows > config()->get('topics_per_page')) { + generate_pagination('admin_attach_cp.php?view=' . $view . '&mode=' . $mode . '&order=' . $sort_order . '&uid=' . $uid, $total_rows, config()->get('topics_per_page'), $start); } print_page('admin_attach_cp.tpl', 'admin'); diff --git a/admin/admin_log.php b/admin/admin_log.php index 517a4b9bb..89f0e8b0b 100644 --- a/admin/admin_log.php +++ b/admin/admin_log.php @@ -151,7 +151,7 @@ if ($var =& $_REQUEST[$daysback_key] && $var != $def_days) { $url = url_arg($url, $daysback_key, $daysback_val); } if ($var =& $_REQUEST[$datetime_key] && $var != $def_datetime) { - $tz = TIMENOW + (3600 * $bb_cfg['board_timezone']); + $tz = TIMENOW + (3600 * config()->get('board_timezone')); if (($tmp_timestamp = strtotime($var, $tz)) > 0) { $datetime_val = $tmp_timestamp; $url = url_arg($url, $datetime_key, date($dt_format, $datetime_val)); diff --git a/admin/admin_mass_email.php b/admin/admin_mass_email.php index d2765f9d6..51902d960 100644 --- a/admin/admin_mass_email.php +++ b/admin/admin_mass_email.php @@ -14,7 +14,7 @@ if (!empty($setmodules)) { require __DIR__ . '/pagestart.php'; -if (!$bb_cfg['emailer']['enabled']) { +if (!config()->get('emailer.enabled')) { bb_die($lang['EMAILER_DISABLED']); } @@ -23,7 +23,7 @@ set_time_limit(1200); $subject = trim(request_var('subject', '')); $message = (string)request_var('message', ''); $group_id = (int)request_var(POST_GROUPS_URL, 0); -$reply_to = (string)request_var('reply_to', $bb_cfg['board_email']); +$reply_to = (string)request_var('reply_to', config()->get('board_email')); $message_type = (string)request_var('message_type', ''); $errors = $user_id_sql = []; diff --git a/admin/admin_sitemap.php b/admin/admin_sitemap.php index 3e3fd1fb6..66e2f800b 100644 --- a/admin/admin_sitemap.php +++ b/admin/admin_sitemap.php @@ -39,7 +39,7 @@ if (!$result = DB()->sql_query($sql)) { } } -$s_mess = $lang['SITEMAP_CREATED'] . ': ' . bb_date($new['sitemap_time'], $bb_cfg['post_date_format']) . ' ' . $lang['SITEMAP_AVAILABLE'] . ': ' . make_url('sitemap/sitemap.xml') . ''; +$s_mess = $lang['SITEMAP_CREATED'] . ': ' . bb_date($new['sitemap_time'], config()->get('post_date_format')) . ' ' . $lang['SITEMAP_AVAILABLE'] . ': ' . make_url('sitemap/sitemap.xml') . ''; $message = is_file(SITEMAP_DIR . '/sitemap.xml') ? $s_mess : $lang['SITEMAP_NOT_CREATED']; $template->assign_vars([ diff --git a/admin/admin_smilies.php b/admin/admin_smilies.php index e53c24223..9e84c3ea0 100644 --- a/admin/admin_smilies.php +++ b/admin/admin_smilies.php @@ -26,7 +26,7 @@ if ($mode == 'delete' && isset($_POST['cancel'])) { $mode = ''; } -$pathToSmilesDir = BB_ROOT . $bb_cfg['smilies_path']; +$pathToSmilesDir = BB_ROOT . config()->get('smilies_path'); $delimeter = '=+:'; $s_hidden_fields = ''; $smiley_paks = $smiley_images = []; diff --git a/admin/admin_terms.php b/admin/admin_terms.php index 4e294c3a5..45acd875c 100644 --- a/admin/admin_terms.php +++ b/admin/admin_terms.php @@ -17,15 +17,15 @@ require INC_DIR . '/bbcode.php'; $preview = isset($_POST['preview']); -if (isset($_POST['post']) && ($bb_cfg['terms'] !== $_POST['message'])) { +if (isset($_POST['post']) && (config()->get('terms') !== $_POST['message'])) { bb_update_config(['terms' => $_POST['message']]); bb_die($lang['TERMS_UPDATED_SUCCESSFULLY'] . '

      ' . sprintf($lang['CLICK_RETURN_TERMS_CONFIG'], '', '') . '

      ' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '')); } $template->assign_vars([ 'S_ACTION' => 'admin_terms.php', - 'EXT_LINK_NW' => $bb_cfg['ext_link_new_win'], - 'MESSAGE' => $preview ? $_POST['message'] : $bb_cfg['terms'], + 'EXT_LINK_NW' => config()->get('ext_link_new_win'), + 'MESSAGE' => $preview ? $_POST['message'] : config()->get('terms'), 'PREVIEW_HTML' => $preview ? bbcode2html($_POST['message']) : '', ]); diff --git a/admin/admin_user_search.php b/admin/admin_user_search.php index f89f3f669..d383e5a29 100644 --- a/admin/admin_user_search.php +++ b/admin/admin_user_search.php @@ -841,10 +841,10 @@ if (!isset($_REQUEST['dosearch'])) { if ($page == 1) { $offset = 0; } else { - $offset = (($page - 1) * $bb_cfg['topics_per_page']); + $offset = (($page - 1) * config()->get('topics_per_page')); } - $limit = "LIMIT $offset, " . $bb_cfg['topics_per_page']; + $limit = "LIMIT $offset, " . config()->get('topics_per_page'); $select_sql .= " $limit"; @@ -859,7 +859,7 @@ if (!isset($_REQUEST['dosearch'])) { bb_die($lang['SEARCH_NO_RESULTS']); } } - $num_pages = ceil($total_pages['total'] / $bb_cfg['topics_per_page']); + $num_pages = ceil($total_pages['total'] / config()->get('topics_per_page')); $pagination = ''; diff --git a/admin/admin_words.php b/admin/admin_words.php index 919afb64b..ba0746ca1 100644 --- a/admin/admin_words.php +++ b/admin/admin_words.php @@ -14,8 +14,8 @@ if (!empty($setmodules)) { require __DIR__ . '/pagestart.php'; -if (!$bb_cfg['use_word_censor']) { - bb_die('Word censor disabled

      ($bb_cfg[\'use_word_censor\'] in config.php)'); +if (!config()->get('use_word_censor')) { + bb_die('Word censor disabled

      (use_word_censor in config.php)'); } $mode = request_var('mode', ''); diff --git a/admin/index.php b/admin/index.php index ea3d0a2aa..3d3ddba58 100644 --- a/admin/index.php +++ b/admin/index.php @@ -78,7 +78,7 @@ if (isset($_GET['pane']) && $_GET['pane'] == 'left') { } elseif (isset($_GET['pane']) && $_GET['pane'] == 'right') { $template->assign_vars([ 'TPL_ADMIN_MAIN' => true, - 'ADMIN_LOCK' => (bool)$bb_cfg['board_disable'], + 'ADMIN_LOCK' => (bool)config()->get('board_disable'), 'ADMIN_LOCK_CRON' => is_file(BB_DISABLED), ]); @@ -98,8 +98,8 @@ if (isset($_GET['pane']) && $_GET['pane'] == 'left') { $total_posts = $stats['postcount']; $total_topics = $stats['topiccount']; $total_users = $stats['usercount']; - $start_date = bb_date($bb_cfg['board_startdate']); - $boarddays = (TIMENOW - $bb_cfg['board_startdate']) / 86400; + $start_date = bb_date(config()->get('board_startdate')); + $boarddays = (TIMENOW - config()->get('board_startdate')) / 86400; $posts_per_day = sprintf('%.2f', $total_posts / $boarddays); $topics_per_day = sprintf('%.2f', $total_topics / $boarddays); @@ -107,10 +107,10 @@ if (isset($_GET['pane']) && $_GET['pane'] == 'left') { $avatar_dir_size = 0; - if ($avatar_dir = opendir($bb_cfg['avatars']['upload_path'])) { + if ($avatar_dir = opendir(config()->get('avatars.upload_path'))) { while ($file = readdir($avatar_dir)) { if ($file != '.' && $file != '..') { - $avatar_dir_size += @filesize($bb_cfg['avatars']['upload_path'] . $file); + $avatar_dir_size += @filesize(config()->get('avatars.upload_path') . $file); } } closedir($avatar_dir); @@ -187,7 +187,7 @@ if (isset($_GET['pane']) && $_GET['pane'] == 'left') { 'STARTED' => bb_date($onlinerow_reg[$i]['session_start'], 'd-M-Y H:i', false), 'LASTUPDATE' => bb_date($onlinerow_reg[$i]['user_session_time'], 'd-M-Y H:i', false), 'IP_ADDRESS' => $reg_ip, - 'U_WHOIS_IP' => $bb_cfg['whois_info'] . $reg_ip, + 'U_WHOIS_IP' => config()->get('whois_info') . $reg_ip, ]); } } @@ -206,7 +206,7 @@ if (isset($_GET['pane']) && $_GET['pane'] == 'left') { 'STARTED' => bb_date($onlinerow_guest[$i]['session_start'], 'd-M-Y H:i', false), 'LASTUPDATE' => bb_date($onlinerow_guest[$i]['session_time'], 'd-M-Y H:i', false), 'IP_ADDRESS' => $guest_ip, - 'U_WHOIS_IP' => $bb_cfg['whois_info'] . $guest_ip, + 'U_WHOIS_IP' => config()->get('whois_info') . $guest_ip, ]); } } diff --git a/admin/stats/tracker.php b/admin/stats/tracker.php index 977856b4c..677373d78 100644 --- a/admin/stats/tracker.php +++ b/admin/stats/tracker.php @@ -21,7 +21,7 @@ if (!IS_ADMIN) { $peers_in_last_minutes = [30, 15, 5, 1]; $peers_in_last_sec_limit = 300; -$announce_interval = (int)$bb_cfg['announce_interval']; +$announce_interval = (int)config()->get('announce_interval'); $stat = []; define('TMP_TRACKER_TABLE', 'tmp_tracker'); diff --git a/bt/announce.php b/bt/announce.php index 91d9d1e23..ea1cca19a 100644 --- a/bt/announce.php +++ b/bt/announce.php @@ -11,8 +11,6 @@ define('IN_TRACKER', true); define('BB_ROOT', './../'); require dirname(__DIR__) . '/common.php'; -global $bb_cfg; - // Check User-Agent for existence $userAgent = (string)$_SERVER['HTTP_USER_AGENT']; if (empty($userAgent)) { @@ -20,8 +18,8 @@ if (empty($userAgent)) { die; } -$announce_interval = $bb_cfg['announce_interval']; -$passkey_key = $bb_cfg['passkey_key']; +$announce_interval = config()->get('announce_interval'); +$passkey_key = config()->get('passkey_key'); // Recover info_hash if (isset($_GET['?info_hash']) && !isset($_GET['info_hash'])) { @@ -67,10 +65,10 @@ if (strlen($peer_id) !== 20) { } // Check for client ban -if ($bb_cfg['client_ban']['enabled']) { +if (config()->get('client_ban.enabled')) { $targetClient = []; - foreach ($bb_cfg['client_ban']['clients'] as $clientId => $banReason) { + foreach (config()->get('client_ban.clients') as $clientId => $banReason) { if (str_starts_with($peer_id, $clientId)) { $targetClient = [ 'peer_id' => $clientId, @@ -80,7 +78,7 @@ if ($bb_cfg['client_ban']['enabled']) { } } - if ($bb_cfg['client_ban']['only_allow_mode']) { + if (config()->get('client_ban.only_allow_mode')) { if (empty($targetClient['peer_id'])) { msg_die('Your BitTorrent client has been banned!'); } @@ -131,7 +129,7 @@ if ( || !is_numeric($port) || ($port < 1024 && !$stopped) || $port > 0xFFFF - || (!empty($bb_cfg['disallowed_ports']) && in_array($port, $bb_cfg['disallowed_ports'])) + || (!empty(config()->get('disallowed_ports')) && in_array($port, config()->get('disallowed_ports'))) ) { msg_die('Invalid port: ' . $port); } @@ -170,13 +168,13 @@ if (preg_match('/(Mozilla|Browser|Chrome|Safari|AppleWebKit|Opera|Links|Lynx|Bot $ip = $_SERVER['REMOTE_ADDR']; // 'ip' query handling -if (!$bb_cfg['ignore_reported_ip'] && isset($_GET['ip']) && $ip !== $_GET['ip']) { - if (!$bb_cfg['verify_reported_ip'] && isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { +if (!config()->get('ignore_reported_ip') && isset($_GET['ip']) && $ip !== $_GET['ip']) { + if (!config()->get('verify_reported_ip') && isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $x_ip = $_SERVER['HTTP_X_FORWARDED_FOR']; if ($x_ip === $_GET['ip']) { $filteredIp = filter_var($x_ip, FILTER_VALIDATE_IP); - if ($filteredIp !== false && ($bb_cfg['allow_internal_ip'] || !filter_var($filteredIp, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE))) { + if ($filteredIp !== false && (config()->get('allow_internal_ip') || !filter_var($filteredIp, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE))) { $ip = $filteredIp; } } @@ -272,7 +270,7 @@ if ($lp_info) { define('IS_MOD', !IS_GUEST && (int)$row['user_level'] === MOD); define('IS_GROUP_MEMBER', !IS_GUEST && (int)$row['user_level'] === GROUP_MEMBER); define('IS_USER', !IS_GUEST && (int)$row['user_level'] === USER); - define('IS_SUPER_ADMIN', IS_ADMIN && isset($bb_cfg['super_admins'][$user_id])); + define('IS_SUPER_ADMIN', IS_ADMIN && isset(config()->get('super_admins')[$user_id])); define('IS_AM', IS_ADMIN || IS_MOD); $topic_id = $row['topic_id']; $releaser = (int)($user_id == $row['poster_id']); @@ -280,13 +278,13 @@ if ($lp_info) { $tor_status = $row['tor_status']; // Check tor status - if (!IS_AM && isset($bb_cfg['tor_frozen'][$tor_status]) && !(isset($bb_cfg['tor_frozen_author_download'][$tor_status]) && $releaser)) { + if (!IS_AM && isset(config()->get('tor_frozen')[$tor_status]) && !(isset(config()->get('tor_frozen_author_download')[$tor_status]) && $releaser)) { msg_die('Torrent frozen and cannot be downloaded'); } // Check hybrid status if (!empty($row['info_hash']) && !empty($row['info_hash_v2'])) { - $stat_protocol = match ((int)$bb_cfg['tracker']['hybrid_stat_protocol']) { + $stat_protocol = match ((int)config()->get('tracker.hybrid_stat_protocol')) { 2 => substr($row['info_hash_v2'], 0, 20), default => $row['info_hash'] // 1 }; @@ -296,7 +294,7 @@ if ($lp_info) { } // Ratio limits - if ((RATIO_ENABLED || $bb_cfg['tracker']['limit_concurrent_ips']) && !$stopped) { + if ((RATIO_ENABLED || config()->get('tracker.limit_concurrent_ips')) && !$stopped) { $user_ratio = get_bt_ratio($row); if ($user_ratio === null) { $user_ratio = 1; @@ -304,10 +302,10 @@ if ($lp_info) { $rating_msg = ''; if (!$seeder) { - foreach ($bb_cfg['rating'] as $ratio => $limit) { + foreach (config()->get('rating') as $ratio => $limit) { if ($user_ratio < $ratio) { - $bb_cfg['tracker']['limit_active_tor'] = 1; - $bb_cfg['tracker']['limit_leech_count'] = $limit; + config()->set('tracker.limit_active_tor', 1); + config()->set('tracker.limit_leech_count', $limit); $rating_msg = " (ratio < $ratio)"; break; } @@ -315,29 +313,29 @@ if ($lp_info) { } // Limit active torrents - if (!isset($bb_cfg['unlimited_users'][$user_id]) && $bb_cfg['tracker']['limit_active_tor'] && (($bb_cfg['tracker']['limit_seed_count'] && $seeder) || ($bb_cfg['tracker']['limit_leech_count'] && !$seeder))) { + if (!isset(config()->get('unlimited_users')[$user_id]) && config()->get('tracker.limit_active_tor') && ((config()->get('tracker.limit_seed_count') && $seeder) || (config()->get('tracker.limit_leech_count') && !$seeder))) { $sql = "SELECT COUNT(DISTINCT topic_id) AS active_torrents FROM " . BB_BT_TRACKER . " WHERE user_id = $user_id AND seeder = $seeder AND topic_id != $topic_id"; - if (!$seeder && $bb_cfg['tracker']['leech_expire_factor'] && $user_ratio < 0.5) { - $sql .= " AND update_time > " . (TIMENOW - 60 * $bb_cfg['tracker']['leech_expire_factor']); + if (!$seeder && config()->get('tracker.leech_expire_factor') && $user_ratio < 0.5) { + $sql .= " AND update_time > " . (TIMENOW - 60 * config()->get('tracker.leech_expire_factor')); } $sql .= " GROUP BY user_id"; if ($row = DB()->fetch_row($sql)) { - if ($seeder && $bb_cfg['tracker']['limit_seed_count'] && $row['active_torrents'] >= $bb_cfg['tracker']['limit_seed_count']) { - msg_die('Only ' . $bb_cfg['tracker']['limit_seed_count'] . ' torrent(s) allowed for seeding'); - } elseif (!$seeder && $bb_cfg['tracker']['limit_leech_count'] && $row['active_torrents'] >= $bb_cfg['tracker']['limit_leech_count']) { - msg_die('Only ' . $bb_cfg['tracker']['limit_leech_count'] . ' torrent(s) allowed for leeching' . $rating_msg); + if ($seeder && config()->get('tracker.limit_seed_count') && $row['active_torrents'] >= config()->get('tracker.limit_seed_count')) { + msg_die('Only ' . config()->get('tracker.limit_seed_count') . ' torrent(s) allowed for seeding'); + } elseif (!$seeder && config()->get('tracker.limit_leech_count') && $row['active_torrents'] >= config()->get('tracker.limit_leech_count')) { + msg_die('Only ' . config()->get('tracker.limit_leech_count') . ' torrent(s) allowed for leeching' . $rating_msg); } } } // Limit concurrent IPs - if ($bb_cfg['tracker']['limit_concurrent_ips'] && (($bb_cfg['tracker']['limit_seed_ips'] && $seeder) || ($bb_cfg['tracker']['limit_leech_ips'] && !$seeder))) { + if (config()->get('tracker.limit_concurrent_ips') && ((config()->get('tracker.limit_seed_ips') && $seeder) || (config()->get('tracker.limit_leech_ips') && !$seeder))) { $sql = "SELECT COUNT(DISTINCT ip) AS ips FROM " . BB_BT_TRACKER . " WHERE topic_id = $topic_id @@ -345,16 +343,16 @@ if ($lp_info) { AND seeder = $seeder AND $ip_version != '$ip_sql'"; - if (!$seeder && $bb_cfg['tracker']['leech_expire_factor']) { - $sql .= " AND update_time > " . (TIMENOW - 60 * $bb_cfg['tracker']['leech_expire_factor']); + if (!$seeder && config()->get('tracker.leech_expire_factor')) { + $sql .= " AND update_time > " . (TIMENOW - 60 * config()->get('tracker.leech_expire_factor')); } $sql .= " GROUP BY topic_id"; if ($row = DB()->fetch_row($sql)) { - if ($seeder && $bb_cfg['tracker']['limit_seed_ips'] && $row['ips'] >= $bb_cfg['tracker']['limit_seed_ips']) { - msg_die('You can seed only from ' . $bb_cfg['tracker']['limit_seed_ips'] . " IP's"); - } elseif (!$seeder && $bb_cfg['tracker']['limit_leech_ips'] && $row['ips'] >= $bb_cfg['tracker']['limit_leech_ips']) { - msg_die('You can leech only from ' . $bb_cfg['tracker']['limit_leech_ips'] . " IP's"); + if ($seeder && config()->get('tracker.limit_seed_ips') && $row['ips'] >= config()->get('tracker.limit_seed_ips')) { + msg_die('You can seed only from ' . config()->get('tracker.limit_seed_ips') . " IP's"); + } elseif (!$seeder && config()->get('tracker.limit_leech_ips') && $row['ips'] >= config()->get('tracker.limit_leech_ips')) { + msg_die('You can leech only from ' . config()->get('tracker.limit_leech_ips') . " IP's"); } } } @@ -378,7 +376,7 @@ $up_add = ($lp_info && $uploaded > $lp_info['uploaded']) ? $uploaded - $lp_info[ $down_add = ($lp_info && $downloaded > $lp_info['downloaded']) ? $downloaded - $lp_info['downloaded'] : 0; // Gold/Silver releases -if ($bb_cfg['tracker']['gold_silver_enabled'] && $down_add) { +if (config()->get('tracker.gold_silver_enabled') && $down_add) { if ($tor_type == TOR_TYPE_GOLD) { $down_add = 0; } // Silver releases @@ -388,7 +386,7 @@ if ($bb_cfg['tracker']['gold_silver_enabled'] && $down_add) { } // Freeleech -if ($bb_cfg['tracker']['freeleech'] && $down_add) { +if (config()->get('tracker.freeleech') && $down_add) { $down_add = 0; } @@ -466,8 +464,8 @@ $output = CACHE('tr_cache')->get(PEERS_LIST_PREFIX . $topic_id); if (!$output) { // Retrieve peers - $numwant = (int)$bb_cfg['tracker']['numwant']; - $compact_mode = ($bb_cfg['tracker']['compact_mode'] || !empty($compact)); + $numwant = (int)config()->get('tracker.numwant'); + $compact_mode = (config()->get('tracker.compact_mode') || !empty($compact)); $rowset = DB()->fetch_rowset(" SELECT ip, ipv6, port @@ -512,7 +510,7 @@ if (!$output) { $seeders = $leechers = $client_completed = 0; - if ($bb_cfg['tracker']['scrape']) { + if (config()->get('tracker.scrape')) { $row = DB()->fetch_row(" SELECT seeders, leechers, completed FROM " . BB_BT_TRACKER_SNAP . " diff --git a/bt/includes/init_tr.php b/bt/includes/init_tr.php index 43e6bf43b..283c71ede 100644 --- a/bt/includes/init_tr.php +++ b/bt/includes/init_tr.php @@ -11,11 +11,9 @@ if (!defined('IN_TRACKER')) { die(basename(__FILE__)); } -global $bb_cfg; - // Exit if tracker is disabled -if ($bb_cfg['tracker']['bt_off']) { - msg_die($bb_cfg['tracker']['bt_off_reason']); +if (config()->get('tracker.bt_off')) { + msg_die(config()->get('tracker.bt_off_reason')); } // diff --git a/bt/scrape.php b/bt/scrape.php index 534cd57fd..dd94ab8ff 100644 --- a/bt/scrape.php +++ b/bt/scrape.php @@ -11,9 +11,7 @@ define('IN_TRACKER', true); define('BB_ROOT', './../'); require dirname(__DIR__) . '/common.php'; -global $bb_cfg; - -if (!$bb_cfg['tracker']['scrape']) { +if (!config()->get('tracker.scrape')) { msg_die('Please disable SCRAPE!'); } @@ -60,8 +58,8 @@ foreach ($info_hash_array[1] as $hash) { $info_hash_count = count($info_hashes); if (!empty($info_hash_count)) { - if ($info_hash_count > $bb_cfg['max_scrapes']) { - $info_hashes = array_slice($info_hashes, 0, $bb_cfg['max_scrapes']); + if ($info_hash_count > config()->get('max_scrapes')) { + $info_hashes = array_slice($info_hashes, 0, config()->get('max_scrapes')); } $info_hashes_sql = implode('\', \'', $info_hashes); diff --git a/common.php b/common.php index e62800df7..b896f4194 100644 --- a/common.php +++ b/common.php @@ -377,9 +377,9 @@ if (!defined('IN_TRACKER')) { } else { define('DUMMY_PEER', pack('Nn', \TorrentPier\Helpers\IPHelper::ip2long($_SERVER['REMOTE_ADDR']), !empty($_GET['port']) ? (int)$_GET['port'] : random_int(1000, 65000))); - define('PEER_HASH_EXPIRE', round($bb_cfg['announce_interval'] * (0.85 * $bb_cfg['tracker']['expire_factor']))); - define('PEERS_LIST_EXPIRE', round($bb_cfg['announce_interval'] * 0.7)); - define('SCRAPE_LIST_EXPIRE', round($bb_cfg['scrape_interval'] * 0.7)); + define('PEER_HASH_EXPIRE', round(config()->get('announce_interval') * (0.85 * config()->get('tracker.expire_factor')))); + define('PEERS_LIST_EXPIRE', round(config()->get('announce_interval') * 0.7)); + define('SCRAPE_LIST_EXPIRE', round(config()->get('scrape_interval') * 0.7)); define('PEER_HASH_PREFIX', 'peer_'); define('PEERS_LIST_PREFIX', 'peers_list_'); diff --git a/dl.php b/dl.php index 2812f1fa0..bfc0ef678 100644 --- a/dl.php +++ b/dl.php @@ -25,7 +25,7 @@ $m3u = isset($_GET['m3u']) && $_GET['m3u']; // Send file to browser function send_file_to_browser($attachment, $upload_dir) { - global $bb_cfg, $lang; + global $lang; $filename = $upload_dir . '/' . $attachment['physical_filename']; $gotit = false; @@ -170,7 +170,7 @@ if (!IS_AM && ($attachment['mimetype'] === TORRENT_MIMETYPE)) { $row = DB()->sql_fetchrow($result); - if (isset($bb_cfg['tor_frozen'][$row['tor_status']]) && !(isset($bb_cfg['tor_frozen_author_download'][$row['tor_status']]) && $userdata['user_id'] === $row['poster_id'])) { + if (isset(config()->get('tor_frozen')[$row['tor_status']]) && !(isset(config()->get('tor_frozen_author_download')[$row['tor_status']]) && $userdata['user_id'] === $row['poster_id'])) { bb_die($lang['TOR_STATUS_FORBIDDEN'] . $lang['TOR_STATUS_NAME'][$row['tor_status']]); } @@ -219,7 +219,7 @@ switch ($download_mode) { header('Location: ' . $url); exit; case INLINE_LINK: - if (IS_GUEST && !$bb_cfg['captcha']['disabled'] && !bb_captcha('check')) { + if (IS_GUEST && !config()->get('captcha.disabled') && !bb_captcha('check')) { global $template; $redirect_url = $_POST['redirect_url'] ?? $_SERVER['HTTP_REFERER'] ?? '/'; diff --git a/feed.php b/feed.php index 366518ef0..bbd9eb3e0 100644 --- a/feed.php +++ b/feed.php @@ -34,11 +34,11 @@ if ($mode === 'get_feed_url' && ($type === 'f' || $type === 'u') && $id >= 0) { bb_simple_die($lang['ATOM_ERROR'] . ' #1'); } } - if (is_file($bb_cfg['atom']['path'] . '/f/' . $id . '.atom') && filemtime($bb_cfg['atom']['path'] . '/f/' . $id . '.atom') > $timecheck) { - redirect($bb_cfg['atom']['url'] . '/f/' . $id . '.atom'); + if (is_file(config()->get('atom.path') . '/f/' . $id . '.atom') && filemtime(config()->get('atom.path') . '/f/' . $id . '.atom') > $timecheck) { + redirect(config()->get('atom.url') . '/f/' . $id . '.atom'); } else { if (\TorrentPier\Legacy\Atom::update_forum_feed($id, $forum_data)) { - redirect($bb_cfg['atom']['url'] . '/f/' . $id . '.atom'); + redirect(config()->get('atom.url') . '/f/' . $id . '.atom'); } else { bb_simple_die($lang['ATOM_NO_FORUM']); } @@ -52,11 +52,11 @@ if ($mode === 'get_feed_url' && ($type === 'f' || $type === 'u') && $id >= 0) { if (!$username = get_username($id)) { bb_simple_die($lang['ATOM_ERROR'] . ' #3'); } - if (is_file($bb_cfg['atom']['path'] . '/u/' . floor($id / 5000) . '/' . ($id % 100) . '/' . $id . '.atom') && filemtime($bb_cfg['atom']['path'] . '/u/' . floor($id / 5000) . '/' . ($id % 100) . '/' . $id . '.atom') > $timecheck) { - redirect($bb_cfg['atom']['url'] . '/u/' . floor($id / 5000) . '/' . ($id % 100) . '/' . $id . '.atom'); + if (is_file(config()->get('atom.path') . '/u/' . floor($id / 5000) . '/' . ($id % 100) . '/' . $id . '.atom') && filemtime(config()->get('atom.path') . '/u/' . floor($id / 5000) . '/' . ($id % 100) . '/' . $id . '.atom') > $timecheck) { + redirect(config()->get('atom.url') . '/u/' . floor($id / 5000) . '/' . ($id % 100) . '/' . $id . '.atom'); } else { if (\TorrentPier\Legacy\Atom::update_user_feed($id, $username)) { - redirect($bb_cfg['atom']['url'] . '/u/' . floor($id / 5000) . '/' . ($id % 100) . '/' . $id . '.atom'); + redirect(config()->get('atom.url') . '/u/' . floor($id / 5000) . '/' . ($id % 100) . '/' . $id . '.atom'); } else { bb_simple_die($lang['ATOM_NO_USER']); } diff --git a/filelist.php b/filelist.php index 8e256dc67..81a241d20 100644 --- a/filelist.php +++ b/filelist.php @@ -14,7 +14,7 @@ require __DIR__ . '/common.php'; // Start session management $user->session_start(); -if ($bb_cfg['bt_disable_dht'] && IS_GUEST) { +if (config()->get('bt_disable_dht') && IS_GUEST) { bb_die($lang['BT_PRIVATE_TRACKER'], 403); } @@ -55,7 +55,7 @@ if (!is_file($file_path)) { } $file_contents = file_get_contents($file_path); -if ($bb_cfg['flist_max_files']) { +if (config()->get('flist_max_files')) { $filetree_pos = $meta_v2 ? strpos($file_contents, '9:file tree') : false; $files_pos = $meta_v1 ? strpos($file_contents, '5:files', $filetree_pos) : false; @@ -65,8 +65,8 @@ if ($bb_cfg['flist_max_files']) { $file_count = substr_count($file_contents, '6:length', $files_pos); } - if ($file_count > $bb_cfg['flist_max_files']) { - bb_die(sprintf($lang['BT_FLIST_LIMIT'], $bb_cfg['flist_max_files'], $file_count), 410); + if ($file_count > config()->get('flist_max_files')) { + bb_die(sprintf($lang['BT_FLIST_LIMIT'], config()->get('flist_max_files'), $file_count), 410); } } diff --git a/group.php b/group.php index b674c823d..e88bb6de7 100644 --- a/group.php +++ b/group.php @@ -24,7 +24,7 @@ set_die_append_msg(); $group_id = isset($_REQUEST[POST_GROUPS_URL]) ? (int)$_REQUEST[POST_GROUPS_URL] : null; $start = isset($_REQUEST['start']) ? abs((int)$_REQUEST['start']) : 0; -$per_page = $bb_cfg['group_members_per_page']; +$per_page = config()->get('group_members_per_page'); $view_mode = isset($_REQUEST['view']) ? (string)$_REQUEST['view'] : null; $rel_limit = 50; @@ -168,7 +168,7 @@ if (!$group_id) { \TorrentPier\Legacy\Group::add_user_into_group($group_id, $userdata['user_id'], 1, TIMENOW); - if ($bb_cfg['group_send_email']) { + if (config()->get('group_send_email')) { // Sending email $emailer = new TorrentPier\Emailer(); @@ -224,7 +224,7 @@ if (!$group_id) { \TorrentPier\Legacy\Group::add_user_into_group($group_id, $row['user_id']); - if ($bb_cfg['group_send_email']) { + if (config()->get('group_send_email')) { // Sending email $emailer = new TorrentPier\Emailer(); @@ -273,10 +273,10 @@ if (!$group_id) { } } // Email users when they are approved - if (!empty($_POST['approve']) && $bb_cfg['group_send_email']) { + if (!empty($_POST['approve']) && config()->get('group_send_email')) { $sql_select = "SELECT username, user_email, user_lang - FROM " . BB_USERS . " - WHERE user_id IN($sql_in)"; + FROM " . BB_USERS . " + WHERE user_id IN($sql_in)"; if (!$result = DB()->sql_query($sql_select)) { bb_die('Could not get user email information'); diff --git a/group_edit.php b/group_edit.php index f98e69aed..041365bf4 100644 --- a/group_edit.php +++ b/group_edit.php @@ -35,10 +35,10 @@ if ($group_id) { if ($is_moderator) { // Avatar if ($submit) { - if (!empty($_FILES['avatar']['name']) && $bb_cfg['group_avatars']['up_allowed']) { + if (!empty($_FILES['avatar']['name']) && config()->get('group_avatars.up_allowed')) { $upload = new TorrentPier\Legacy\Common\Upload(); - if ($upload->init($bb_cfg['group_avatars'], $_FILES['avatar']) and $upload->store('avatar', ['user_id' => GROUP_AVATAR_MASK . $group_id, 'avatar_ext_id' => $group_info['avatar_ext_id']])) { + if ($upload->init(config()->get('group_avatars'), $_FILES['avatar']) and $upload->store('avatar', ['user_id' => GROUP_AVATAR_MASK . $group_id, 'avatar_ext_id' => $group_info['avatar_ext_id']])) { $avatar_ext_id = (int)$upload->file_ext_id; DB()->query("UPDATE " . BB_GROUPS . " SET avatar_ext_id = $avatar_ext_id WHERE group_id = $group_id LIMIT 1"); } else { @@ -76,7 +76,7 @@ if ($is_moderator) { 'S_HIDDEN_FIELDS' => $s_hidden_fields, 'S_GROUP_CONFIG_ACTION' => "group_edit.php?" . POST_GROUPS_URL . "=$group_id", - 'AVATAR_EXPLAIN' => sprintf($lang['AVATAR_EXPLAIN'], $bb_cfg['group_avatars']['max_width'], $bb_cfg['group_avatars']['max_height'], humn_size($bb_cfg['group_avatars']['max_size'])), + 'AVATAR_EXPLAIN' => sprintf($lang['AVATAR_EXPLAIN'], config()->get('group_avatars.max_width'), config()->get('group_avatars.max_height'), humn_size(config()->get('group_avatars.max_size'))), 'AVATAR_IMG' => get_avatar(GROUP_AVATAR_MASK . $group_id, $group_info['avatar_ext_id']), ]); diff --git a/index.php b/index.php index 2c752341c..c946c758f 100644 --- a/index.php +++ b/index.php @@ -31,12 +31,12 @@ $datastore->enqueue([ 'cat_forums' ]); -if ($bb_cfg['show_latest_news']) { +if (config()->get('show_latest_news')) { $datastore->enqueue([ 'latest_news' ]); } -if ($bb_cfg['show_network_news']) { +if (config()->get('show_network_news')) { $datastore->enqueue([ 'network_news' ]); @@ -46,7 +46,7 @@ if ($bb_cfg['show_network_news']) { $user->session_start(); // Set meta description -$page_cfg['meta_description'] = $bb_cfg['site_desc']; +$page_cfg['meta_description'] = config()->get('site_desc'); // Init main vars $viewcat = isset($_GET[POST_CAT_URL]) ? (int)$_GET[POST_CAT_URL] : 0; @@ -57,7 +57,7 @@ $req_page = 'index_page'; $req_page .= $viewcat ? "_c{$viewcat}" : ''; define('REQUESTED_PAGE', $req_page); -caching_output(IS_GUEST, 'send', REQUESTED_PAGE . '_guest_' . $bb_cfg['default_lang']); +caching_output(IS_GUEST, 'send', REQUESTED_PAGE . '_guest_' . config()->get('default_lang')); $hide_cat_opt = isset($user->opt_js['h_cat']) ? (string)$user->opt_js['h_cat'] : 0; $hide_cat_user = array_flip(explode('-', $hide_cat_opt)); @@ -259,7 +259,7 @@ foreach ($cat_forums as $cid => $c) { 'LAST_TOPIC_ID' => $f['last_topic_id'], 'LAST_TOPIC_TIP' => $f['last_topic_title'], 'LAST_TOPIC_TITLE' => str_short($f['last_topic_title'], $last_topic_max_len), - 'LAST_POST_TIME' => bb_date($f['last_post_time'], $bb_cfg['last_post_date_format']), + 'LAST_POST_TIME' => bb_date($f['last_post_time'], config()->get('last_post_date_format')), 'LAST_POST_USER' => profile_url(['username' => str_short($f['last_post_username'], 15), 'user_id' => $f['last_post_user_id'], 'user_rank' => $f['last_post_user_rank']]), ]); } @@ -275,7 +275,7 @@ $template->assign_vars([ 'TOTAL_TOPICS' => sprintf($lang['POSTED_TOPICS_TOTAL'], $stats['topiccount']), 'TOTAL_POSTS' => sprintf($lang['POSTED_ARTICLES_TOTAL'], $stats['postcount']), 'TOTAL_USERS' => sprintf($lang['REGISTERED_USERS_TOTAL'], $stats['usercount']), - 'TOTAL_GENDER' => $bb_cfg['gender'] ? sprintf( + 'TOTAL_GENDER' => config()->get('gender') ? sprintf( $lang['USERS_TOTAL_GENDER'], $stats['male'], $stats['female'], @@ -284,22 +284,22 @@ $template->assign_vars([ 'NEWEST_USER' => sprintf($lang['NEWEST_USER'], profile_url($stats['newestuser'])), // Tracker stats - 'TORRENTS_STAT' => $bb_cfg['tor_stats'] ? sprintf( + 'TORRENTS_STAT' => config()->get('tor_stats') ? sprintf( $lang['TORRENTS_STAT'], $stats['torrentcount'], humn_size($stats['size']) ) : '', - 'PEERS_STAT' => $bb_cfg['tor_stats'] ? sprintf( + 'PEERS_STAT' => config()->get('tor_stats') ? sprintf( $lang['PEERS_STAT'], $stats['peers'], $stats['seeders'], $stats['leechers'] ) : '', - 'SPEED_STAT' => $bb_cfg['tor_stats'] ? sprintf( + 'SPEED_STAT' => config()->get('tor_stats') ? sprintf( $lang['SPEED_STAT'], humn_size($stats['speed']) . '/s' ) : '', - 'SHOW_MOD_INDEX' => $bb_cfg['show_mod_index'], + 'SHOW_MOD_INDEX' => config()->get('show_mod_index'), 'FORUM_IMG' => $images['forum'], 'FORUM_NEW_IMG' => $images['forum_new'], 'FORUM_LOCKED_IMG' => $images['forum_locked'], @@ -312,19 +312,19 @@ $template->assign_vars([ 'U_SEARCH_SELF_BY_MY' => "search.php?uid={$userdata['user_id']}&o=1", 'U_SEARCH_LATEST' => 'search.php?search_id=latest', 'U_SEARCH_UNANSWERED' => 'search.php?search_id=unanswered', - 'U_ATOM_FEED' => is_file($bb_cfg['atom']['path'] . '/f/0.atom') ? make_url($bb_cfg['atom']['url'] . '/f/0.atom') : false, + 'U_ATOM_FEED' => is_file(config()->get('atom.path') . '/f/0.atom') ? make_url(config()->get('atom.url') . '/f/0.atom') : false, 'SHOW_LAST_TOPIC' => $show_last_topic, - 'BOARD_START' => $bb_cfg['show_board_start_index'] ? ($lang['BOARD_STARTED'] . ': ' . '' . bb_date($bb_cfg['board_startdate']) . '') : false, + 'BOARD_START' => config()->get('show_board_start_index') ? ($lang['BOARD_STARTED'] . ': ' . '' . bb_date(config()->get('board_startdate')) . '') : false, ]); // Set tpl vars for bt_userdata -if ($bb_cfg['bt_show_dl_stat_on_index'] && !IS_GUEST) { +if (config()->get('bt_show_dl_stat_on_index') && !IS_GUEST) { show_bt_userdata($userdata['user_id']); } // Latest news -if ($bb_cfg['show_latest_news']) { +if (config()->get('show_latest_news')) { if (!$latest_news = $datastore->get('latest_news')) { $datastore->update('latest_news'); $latest_news = $datastore->get('latest_news'); @@ -339,7 +339,7 @@ if ($bb_cfg['show_latest_news']) { $template->assign_block_vars('news', [ 'NEWS_TOPIC_ID' => $news['topic_id'], - 'NEWS_TITLE' => str_short($wordCensor->censorString($news['topic_title']), $bb_cfg['max_news_title']), + 'NEWS_TITLE' => str_short($wordCensor->censorString($news['topic_title']), config()->get('max_news_title')), 'NEWS_TIME' => bb_date($news['topic_time'], 'd-M', false), 'NEWS_IS_NEW' => is_unread($news['topic_time'], $news['topic_id'], $news['forum_id']), ]); @@ -347,7 +347,7 @@ if ($bb_cfg['show_latest_news']) { } // Network news -if ($bb_cfg['show_network_news']) { +if (config()->get('show_network_news')) { if (!$network_news = $datastore->get('network_news')) { $datastore->update('network_news'); $network_news = $datastore->get('network_news'); @@ -362,14 +362,14 @@ if ($bb_cfg['show_network_news']) { $template->assign_block_vars('net', [ 'NEWS_TOPIC_ID' => $net['topic_id'], - 'NEWS_TITLE' => str_short($wordCensor->censorString($net['topic_title']), $bb_cfg['max_net_title']), + 'NEWS_TITLE' => str_short($wordCensor->censorString($net['topic_title']), config()->get('max_net_title')), 'NEWS_TIME' => bb_date($net['topic_time'], 'd-M', false), 'NEWS_IS_NEW' => is_unread($net['topic_time'], $net['topic_id'], $net['forum_id']), ]); } } -if ($bb_cfg['birthday_check_day'] && $bb_cfg['birthday_enabled']) { +if (config()->get('birthday_check_day') && config()->get('birthday_enabled')) { $week_list = $today_list = []; $week_all = $today_all = false; @@ -383,9 +383,9 @@ if ($bb_cfg['birthday_check_day'] && $bb_cfg['birthday_enabled']) { $week_list[] = profile_url($week) . ' (' . birthday_age(date('Y-m-d', strtotime('-1 year', strtotime($week['user_birthday'])))) . ')'; } $week_all = $week_all ? ' ...' : ''; - $week_list = sprintf($lang['BIRTHDAY_WEEK'], $bb_cfg['birthday_check_day'], implode(', ', $week_list)) . $week_all; + $week_list = sprintf($lang['BIRTHDAY_WEEK'], config()->get('birthday_check_day'), implode(', ', $week_list)) . $week_all; } else { - $week_list = sprintf($lang['NOBIRTHDAY_WEEK'], $bb_cfg['birthday_check_day']); + $week_list = sprintf($lang['NOBIRTHDAY_WEEK'], config()->get('birthday_check_day')); } if (!empty($stats['birthday_today_list'])) { diff --git a/library/ajax/avatar.php b/library/ajax/avatar.php index 1b35c8bd1..08ae4a057 100644 --- a/library/ajax/avatar.php +++ b/library/ajax/avatar.php @@ -11,7 +11,7 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $bb_cfg, $lang, $user; +global $lang, $user; if (!$mode = (string)$this->request['mode']) { $this->ajax_die('invalid mode (empty)'); diff --git a/library/ajax/callseed.php b/library/ajax/callseed.php index a2e523612..9ef54a72d 100644 --- a/library/ajax/callseed.php +++ b/library/ajax/callseed.php @@ -11,9 +11,9 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $bb_cfg, $userdata, $lang; +global $userdata, $lang; -if (!$bb_cfg['callseed']) { +if (!config()->get('callseed')) { $this->ajax_die($lang['MODULE_OFF']); } @@ -32,7 +32,7 @@ if ($t_data['seeders'] >= 3) { } elseif ($t_data['call_seed_time'] >= (TIMENOW - 86400)) { $time_left = delta_time($t_data['call_seed_time'] + 86400, TIMENOW, 'days'); $this->ajax_die(sprintf($lang['CALLSEED_MSG_SPAM'], $time_left)); -} elseif (isset($bb_cfg['tor_no_tor_act'][$t_data['tor_status']])) { +} elseif (isset(config()->get('tor_no_tor_act')[$t_data['tor_status']])) { $this->ajax_die($lang['NOT_AVAILABLE']); } diff --git a/library/ajax/change_tor_status.php b/library/ajax/change_tor_status.php index 0ece009cb..ae534774c 100644 --- a/library/ajax/change_tor_status.php +++ b/library/ajax/change_tor_status.php @@ -11,7 +11,7 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $userdata, $bb_cfg, $lang, $log_action; +global $userdata, $lang, $log_action; if (!$attach_id = (int)$this->request['attach_id']) { $this->ajax_die($lang['EMPTY_ATTACH_ID']); @@ -22,7 +22,7 @@ if (!$mode = (string)$this->request['mode']) { } $comment = false; -if ($bb_cfg['tor_comment']) { +if (config()->get('tor_comment')) { $comment = (string)$this->request['comment']; } @@ -88,7 +88,7 @@ switch ($mode) { \TorrentPier\Legacy\Torrent::change_tor_status($attach_id, $new_status); // Log action - $log_msg = sprintf($lang['TOR_STATUS_LOG_ACTION'], $bb_cfg['tor_icons'][$new_status] . ' ' . $lang['TOR_STATUS_NAME'][$new_status] . '', $bb_cfg['tor_icons'][$tor['tor_status']] . ' ' . $lang['TOR_STATUS_NAME'][$tor['tor_status']] . ''); + $log_msg = sprintf($lang['TOR_STATUS_LOG_ACTION'], config()->get('tor_icons')[$new_status] . ' ' . $lang['TOR_STATUS_NAME'][$new_status] . '', config()->get('tor_icons')[$tor['tor_status']] . ' ' . $lang['TOR_STATUS_NAME'][$tor['tor_status']] . ''); if ($comment && $comment != $lang['COMMENT']) { $log_msg .= "
      {$lang['COMMENT']}: $comment."; } @@ -99,12 +99,12 @@ switch ($mode) { 'log_msg' => $log_msg . '
      -------------', ]); - $this->response['status'] = $bb_cfg['tor_icons'][$new_status] . ' ' . $lang['TOR_STATUS_NAME'][$new_status] . ' · ' . profile_url($userdata) . ' · ' . delta_time(TIMENOW) . $lang['TOR_BACK'] . ''; + $this->response['status'] = config()->get('tor_icons')[$new_status] . ' ' . $lang['TOR_STATUS_NAME'][$new_status] . ' · ' . profile_url($userdata) . ' · ' . delta_time(TIMENOW) . $lang['TOR_BACK'] . ''; - if ($bb_cfg['tor_comment'] && (($comment && $comment != $lang['COMMENT']) || in_array($new_status, $bb_cfg['tor_reply']))) { + if (config()->get('tor_comment') && (($comment && $comment != $lang['COMMENT']) || in_array($new_status, config()->get('tor_reply')))) { if ($tor['poster_id'] > 0) { $subject = sprintf($lang['TOR_MOD_TITLE'], $tor['topic_title']); - $message = sprintf($lang['TOR_MOD_MSG'], get_username($tor['poster_id']), make_url(TOPIC_URL . $tor['topic_id']), $bb_cfg['tor_icons'][$new_status] . ' ' . $lang['TOR_STATUS_NAME'][$new_status]); + $message = sprintf($lang['TOR_MOD_MSG'], get_username($tor['poster_id']), make_url(TOPIC_URL . $tor['topic_id']), config()->get('tor_icons')[$new_status] . ' ' . $lang['TOR_STATUS_NAME'][$new_status]); if ($comment && $comment != $lang['COMMENT']) { $message .= "\n\n[b]" . $lang['COMMENT'] . '[/b]: ' . $comment; @@ -117,7 +117,7 @@ switch ($mode) { break; case 'status_reply': - if (!$bb_cfg['tor_comment']) { + if (!config()->get('tor_comment')) { $this->ajax_die($lang['MODULE_OFF']); } diff --git a/library/ajax/change_torrent.php b/library/ajax/change_torrent.php index ca26b7c24..dbcef89c8 100644 --- a/library/ajax/change_torrent.php +++ b/library/ajax/change_torrent.php @@ -11,7 +11,7 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $userdata, $bb_cfg, $lang, $log_action; +global $userdata, $lang, $log_action; if (!isset($this->request['attach_id'])) { $this->ajax_die($lang['EMPTY_ATTACH_ID']); diff --git a/library/ajax/edit_group_profile.php b/library/ajax/edit_group_profile.php index 1a40f941f..f66911ed1 100644 --- a/library/ajax/edit_group_profile.php +++ b/library/ajax/edit_group_profile.php @@ -11,7 +11,7 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $bb_cfg, $userdata, $lang; +global $userdata, $lang; if (!$group_id = (int)$this->request['group_id'] or !$group_info = \TorrentPier\Legacy\Group::get_group_data($group_id)) { $this->ajax_die($lang['NO_GROUP_ID_SPECIFIED']); diff --git a/library/ajax/edit_user_profile.php b/library/ajax/edit_user_profile.php index 9b7f24b5a..8cfc342f7 100644 --- a/library/ajax/edit_user_profile.php +++ b/library/ajax/edit_user_profile.php @@ -11,7 +11,7 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $bb_cfg, $lang; +global $lang; if (!$user_id = (int)$this->request['user_id'] or !$profiledata = get_userdata($user_id)) { $this->ajax_die($lang['NO_USER_ID_SPECIFIED']); @@ -55,7 +55,7 @@ switch ($field) { break; case 'user_gender': - if (!$bb_cfg['gender']) { + if (!config()->get('gender')) { $this->ajax_die($lang['MODULE_OFF']); } if (!isset($lang['GENDER_SELECT'][$value])) { @@ -65,7 +65,7 @@ switch ($field) { break; case 'user_birthday': - if (!$bb_cfg['birthday_enabled']) { + if (!config()->get('birthday_enabled')) { $this->ajax_die($lang['MODULE_OFF']); } $birthday_date = date_parse($value); @@ -73,10 +73,10 @@ switch ($field) { if (!empty($birthday_date['year'])) { if (strtotime($value) >= TIMENOW) { $this->ajax_die($lang['WRONG_BIRTHDAY_FORMAT']); - } elseif (bb_date(TIMENOW, 'Y', false) - $birthday_date['year'] > $bb_cfg['birthday_max_age']) { - $this->ajax_die(sprintf($lang['BIRTHDAY_TO_HIGH'], $bb_cfg['birthday_max_age'])); - } elseif (bb_date(TIMENOW, 'Y', false) - $birthday_date['year'] < $bb_cfg['birthday_min_age']) { - $this->ajax_die(sprintf($lang['BIRTHDAY_TO_LOW'], $bb_cfg['birthday_min_age'])); + } elseif (bb_date(TIMENOW, 'Y', false) - $birthday_date['year'] > config()->get('birthday_max_age')) { + $this->ajax_die(sprintf($lang['BIRTHDAY_TO_HIGH'], config()->get('birthday_max_age'))); + } elseif (bb_date(TIMENOW, 'Y', false) - $birthday_date['year'] < config()->get('birthday_min_age')) { + $this->ajax_die(sprintf($lang['BIRTHDAY_TO_LOW'], config()->get('birthday_min_age'))); } } diff --git a/library/ajax/ffprobe_info.php b/library/ajax/ffprobe_info.php index d6bf8067d..c2b8e7e5c 100644 --- a/library/ajax/ffprobe_info.php +++ b/library/ajax/ffprobe_info.php @@ -11,13 +11,13 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $bb_cfg, $lang; +global $lang; -if (!$bb_cfg['torr_server']['enabled']) { +if (!config()->get('torr_server.enabled')) { $this->ajax_die($lang['MODULE_OFF']); } -if ($bb_cfg['torr_server']['disable_for_guest'] && IS_GUEST) { +if (config()->get('torr_server.disable_for_guest') && IS_GUEST) { $this->ajax_die($lang['NEED_TO_LOGIN_FIRST']); } diff --git a/library/ajax/index_data.php b/library/ajax/index_data.php index 42ec056c5..95fdaacda 100644 --- a/library/ajax/index_data.php +++ b/library/ajax/index_data.php @@ -11,7 +11,7 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $bb_cfg, $lang, $userdata, $datastore; +global $lang, $userdata, $datastore; if (!$mode = (string)$this->request['mode']) { $this->ajax_die('invalid mode (empty)'); @@ -31,9 +31,9 @@ switch ($mode) { foreach ($stats['birthday_week_list'] as $week) { $users[] = profile_url($week) . ' (' . birthday_age(date('Y-m-d', strtotime('-1 year', strtotime($week['user_birthday'])))) . ')'; } - $html = sprintf($lang['BIRTHDAY_WEEK'], $bb_cfg['birthday_check_day'], implode(', ', $users)); + $html = sprintf($lang['BIRTHDAY_WEEK'], config()->get('birthday_check_day'), implode(', ', $users)); } else { - $html = sprintf($lang['NOBIRTHDAY_WEEK'], $bb_cfg['birthday_check_day']); + $html = sprintf($lang['NOBIRTHDAY_WEEK'], config()->get('birthday_check_day')); } break; @@ -84,7 +84,7 @@ switch ($mode) { break; case 'null_ratio': - if (!$bb_cfg['ratio_null_enabled'] || !RATIO_ENABLED) { + if (!config()->get('ratio_null_enabled') || !RATIO_ENABLED) { $this->ajax_die($lang['MODULE_OFF']); } if (empty($this->request['confirmed'])) { @@ -106,8 +106,8 @@ switch ($mode) { if ($ratio_nulled && !IS_ADMIN) { $this->ajax_die($lang['BT_NULL_RATIO_AGAIN']); } - if (($user_ratio >= $bb_cfg['ratio_to_null']) && !IS_ADMIN) { - $this->ajax_die(sprintf($lang['BT_NULL_RATIO_NOT_NEEDED'], $bb_cfg['ratio_to_null'])); + if (($user_ratio >= config()->get('ratio_to_null')) && !IS_ADMIN) { + $this->ajax_die(sprintf($lang['BT_NULL_RATIO_NOT_NEEDED'], config()->get('ratio_to_null'))); } $ratio_nulled_sql = !IS_ADMIN ? ', ratio_nulled = 1' : ''; @@ -172,7 +172,7 @@ switch ($mode) { ' . $lang['UPLOADED'] . ' ' . $lang['RELEASED'] . ' ' . $lang['BONUS'] . ''; - $html .= $bb_cfg['seed_bonus_enabled'] ? '' . $lang['SEED_BONUS'] . '' : ''; + $html .= config()->get('seed_bonus_enabled') ? '' . $lang['SEED_BONUS'] . '' : ''; $html .= ' ' . $lang['TOTAL_TRAF'] . ' @@ -180,17 +180,17 @@ switch ($mode) { ' . humn_size($btu['u_up_total']) . ' ' . humn_size($btu['u_up_release']) . ' ' . humn_size($btu['u_up_bonus']) . ''; - $html .= $bb_cfg['seed_bonus_enabled'] ? '' . $profiledata['user_points'] . '
      ' : ''; + $html .= config()->get('seed_bonus_enabled') ? '' . $profiledata['user_points'] . '' : ''; $html .= ' ' . $lang['MAX_SPEED'] . ' ' . $lang['DL_DL_SPEED'] . ': ' . $speed_down . ' ' . $lang['DL_UL_SPEED'] . ': ' . $speed_up . ''; - $html .= $bb_cfg['seed_bonus_enabled'] ? '' : ''; + $html .= config()->get('seed_bonus_enabled') ? '' : ''; $html .= ''; $this->response['user_ratio'] = ' - ' . $lang['USER_RATIO'] . ': + ' . $lang['USER_RATIO'] . ': ' . $user_ratio . ' '; break; diff --git a/library/ajax/manage_admin.php b/library/ajax/manage_admin.php index cb0249239..29ecbb3bc 100644 --- a/library/ajax/manage_admin.php +++ b/library/ajax/manage_admin.php @@ -11,7 +11,7 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $userdata, $lang, $bb_cfg; +global $userdata, $lang; if (!$mode = (string)$this->request['mode']) { $this->ajax_die('invalid mode (empty)'); @@ -19,7 +19,7 @@ if (!$mode = (string)$this->request['mode']) { switch ($mode) { case 'clear_cache': - foreach ($bb_cfg['cache']['engines'] as $cache_name => $cache_val) { + foreach (config()->get('cache.engines') as $cache_name => $cache_val) { CACHE($cache_name)->rm(); } @@ -48,20 +48,20 @@ switch ($mode) { $this->response['template_cache_html'] = '' . $lang['ALL_TEMPLATE_CLEARED'] . ''; break; case 'indexer': - exec("indexer --config {$bb_cfg['sphinx_config_path']} --all --rotate", $result); + exec("indexer --config " . config()->get('sphinx_config_path') . " --all --rotate", $result); - if (!is_file($bb_cfg['sphinx_config_path'] . ".log")) { - file_put_contents($bb_cfg['sphinx_config_path'] . ".log", "##############################" . date("H:i:s", TIMENOW) . "##############################\r\n\r\n\r\n\r\n", FILE_APPEND); + if (!is_file(config()->get('sphinx_config_path') . ".log")) { + file_put_contents(config()->get('sphinx_config_path') . ".log", "##############################" . date("H:i:s", TIMENOW) . "##############################\r\n\r\n\r\n\r\n", FILE_APPEND); } - file_put_contents($bb_cfg['sphinx_config_path'] . ".log", "##############################" . date("H:i:s", TIMENOW) . "##############################\r\n", FILE_APPEND); + file_put_contents(config()->get('sphinx_config_path') . ".log", "##############################" . date("H:i:s", TIMENOW) . "##############################\r\n", FILE_APPEND); foreach ($result as $row) { - file_put_contents($bb_cfg['sphinx_config_path'] . ".log", $row . "\r\n", FILE_APPEND); + file_put_contents(config()->get('sphinx_config_path') . ".log", $row . "\r\n", FILE_APPEND); } - file_put_contents($bb_cfg['sphinx_config_path'] . ".log", "\r\n", FILE_APPEND); - file_put_contents($bb_cfg['sphinx_config_path'] . ".log", "\r\n", FILE_APPEND); + file_put_contents(config()->get('sphinx_config_path') . ".log", "\r\n", FILE_APPEND); + file_put_contents(config()->get('sphinx_config_path') . ".log", "\r\n", FILE_APPEND); $this->response['indexer_html'] = '' . $lang['INDEXER'] . ''; break; diff --git a/library/ajax/manage_user.php b/library/ajax/manage_user.php index 8a1e4b25e..3925b739f 100644 --- a/library/ajax/manage_user.php +++ b/library/ajax/manage_user.php @@ -11,7 +11,7 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $userdata, $lang, $bb_cfg; +global $userdata, $lang; if (!$mode = (string)$this->request['mode']) { $this->ajax_die('invalid mode (empty)'); diff --git a/library/ajax/mod_action.php b/library/ajax/mod_action.php index 0817f7e4e..a82c122a0 100644 --- a/library/ajax/mod_action.php +++ b/library/ajax/mod_action.php @@ -11,7 +11,7 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $userdata, $bb_cfg, $lang, $datastore, $log_action; +global $userdata, $lang, $datastore, $log_action; if (!$mode = (string)$this->request['mode']) { $this->ajax_die('invalid mode (empty)'); @@ -44,7 +44,7 @@ switch ($mode) { \TorrentPier\Legacy\Torrent::change_tor_status($attach_id, $status); // Log action - $log_msg = sprintf($lang['TOR_STATUS_LOG_ACTION'], $bb_cfg['tor_icons'][$status] . ' ' . $lang['TOR_STATUS_NAME'][$status] . '', $bb_cfg['tor_icons'][$tor['tor_status']] . ' ' . $lang['TOR_STATUS_NAME'][$tor['tor_status']] . ''); + $log_msg = sprintf($lang['TOR_STATUS_LOG_ACTION'], config()->get('tor_icons')[$status] . ' ' . $lang['TOR_STATUS_NAME'][$status] . '', config()->get('tor_icons')[$tor['tor_status']] . ' ' . $lang['TOR_STATUS_NAME'][$tor['tor_status']] . ''); $log_action->mod('mod_topic_change_tor_status', [ 'forum_id' => $tor['forum_id'], 'topic_id' => $tor['topic_id'], @@ -52,7 +52,7 @@ switch ($mode) { 'log_msg' => $log_msg . '
      -------------', ]); } - $this->response['status'] = $bb_cfg['tor_icons'][$status]; + $this->response['status'] = config()->get('tor_icons')[$status]; $this->response['topics'] = explode(',', $topics); break; @@ -78,16 +78,16 @@ switch ($mode) { DB()->query("UPDATE " . BB_TOPICS . " SET topic_title = '$topic_title_sql' WHERE topic_id = $topic_id LIMIT 1"); // Update the news cache on the index page - $news_forums = array_flip(explode(',', $bb_cfg['latest_news_forum_id'])); - if (isset($news_forums[$t_data['forum_id']]) && $bb_cfg['show_latest_news']) { + $news_forums = array_flip(explode(',', config()->get('latest_news_forum_id'))); + if (isset($news_forums[$t_data['forum_id']]) && config()->get('show_latest_news')) { $datastore->enqueue([ 'latest_news' ]); $datastore->update('latest_news'); } - $net_forums = array_flip(explode(',', $bb_cfg['network_news_forum_id'])); - if (isset($net_forums[$t_data['forum_id']]) && $bb_cfg['show_network_news']) { + $net_forums = array_flip(explode(',', config()->get('network_news_forum_id'))); + if (isset($net_forums[$t_data['forum_id']]) && config()->get('show_network_news')) { $datastore->enqueue([ 'network_news' ]); @@ -151,8 +151,8 @@ switch ($mode) { } else { $user_reg_ip = \TorrentPier\Helpers\IPHelper::long2ip_extended($profiledata['user_reg_ip']); $user_last_ip = \TorrentPier\Helpers\IPHelper::long2ip_extended($profiledata['user_last_ip']); - $reg_ip = '' . $user_reg_ip . ''; - $last_ip = '' . $user_last_ip . ''; + $reg_ip = '' . $user_reg_ip . ''; + $last_ip = '' . $user_last_ip . ''; } $this->response['ip_list_html'] = ' diff --git a/library/ajax/posts.php b/library/ajax/posts.php index e34b8b2c1..2c5405df3 100644 --- a/library/ajax/posts.php +++ b/library/ajax/posts.php @@ -11,7 +11,7 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $lang, $bb_cfg, $userdata, $wordCensor; +global $lang, $userdata, $wordCensor; if (!isset($this->request['type'])) { $this->ajax_die('empty type'); @@ -76,7 +76,7 @@ switch ($this->request['type']) { $message = "[quote=\"" . $quote_username . "\"][qpost=" . $post['post_id'] . "]" . $post['post_text'] . "[/quote]\r"; // hide user passkey - $message = preg_replace('#(?<=[\?&;]' . $bb_cfg['passkey_key'] . '=)[a-zA-Z0-9]#', 'passkey', $message); + $message = preg_replace('#(?<=[\?&;]' . config()->get('passkey_key') . '=)[a-zA-Z0-9]#', 'passkey', $message); // hide sid $message = preg_replace('#(?<=[\?&;]sid=)[a-zA-Z0-9]#', 'sid', $message); @@ -120,10 +120,10 @@ switch ($this->request['type']) { if (mb_strlen($text) > 2) { if ($text != $post['post_text']) { - if ($bb_cfg['max_smilies']) { - $count_smilies = substr_count(bbcode2html($text), 'request['type']) { $sql = "SELECT MAX(p.post_time) AS last_post_time FROM " . BB_POSTS . " p WHERE $where_sql"; if ($row = DB()->fetch_row($sql) and $row['last_post_time']) { if ($userdata['user_level'] == USER) { - if ((TIMENOW - $row['last_post_time']) < $bb_cfg['flood_interval']) { + if ((TIMENOW - $row['last_post_time']) < config()->get('flood_interval')) { $this->ajax_die($lang['FLOOD_ERROR']); } } @@ -251,10 +251,10 @@ switch ($this->request['type']) { } } - if ($bb_cfg['max_smilies']) { - $count_smilies = substr_count(bbcode2html($message), '' . make_url('sitemap/sitemap.xml') . ''; + $html .= $lang['SITEMAP_CREATED'] . ': ' . bb_date(TIMENOW, config()->get('post_date_format')) . ' ' . $lang['SITEMAP_AVAILABLE'] . ': ' . make_url('sitemap/sitemap.xml') . ''; } else { $html .= $lang['SITEMAP_NOT_CREATED']; } diff --git a/library/ajax/thanks.php b/library/ajax/thanks.php index cbe29ac01..c4eb38689 100644 --- a/library/ajax/thanks.php +++ b/library/ajax/thanks.php @@ -11,9 +11,9 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $bb_cfg, $lang, $userdata; +global $lang, $userdata; -if (!$bb_cfg['tor_thank']) { +if (!config()->get('tor_thank')) { $this->ajax_die($lang['MODULE_OFF']); } @@ -49,12 +49,12 @@ switch ($mode) { // Limit voters per topic $thanks_count = DB()->fetch_row('SELECT COUNT(*) as thx FROM ' . BB_THX . " WHERE topic_id = $topic_id")['thx']; - if ($thanks_count > (int)$bb_cfg['tor_thank_limit_per_topic']) { + if ($thanks_count > (int)config()->get('tor_thank_limit_per_topic')) { DB()->query('DELETE FROM ' . BB_THX . " WHERE topic_id = $topic_id ORDER BY time ASC LIMIT 1"); } break; case 'get': - if (IS_GUEST && !$bb_cfg['tor_thanks_list_guests']) { + if (IS_GUEST && !config()->get('tor_thanks_list_guests')) { $this->ajax_die($lang['NEED_TO_LOGIN_FIRST']); } diff --git a/library/ajax/user_register.php b/library/ajax/user_register.php index 9491e3b57..ef03c683d 100644 --- a/library/ajax/user_register.php +++ b/library/ajax/user_register.php @@ -11,7 +11,7 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $bb_cfg, $lang, $userdata; +global $lang, $userdata; if (!$mode = (string)$this->request['mode']) { $this->ajax_die('invalid mode (empty)'); diff --git a/library/ajax/view_post.php b/library/ajax/view_post.php index 916ce6cb6..e5d3e8462 100644 --- a/library/ajax/view_post.php +++ b/library/ajax/view_post.php @@ -11,11 +11,11 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $user, $lang, $bb_cfg; +global $user, $lang; $post_id = isset($this->request['post_id']) ? (int)$this->request['post_id'] : null; $topic_id = isset($this->request['topic_id']) ? (int)$this->request['topic_id'] : null; -$return_text = $bb_cfg['show_post_bbcode_button']['enabled'] && isset($this->request['return_text']) && (bool)$this->request['return_text']; +$return_text = config()->get('show_post_bbcode_button.enabled') && isset($this->request['return_text']) && (bool)$this->request['return_text']; if (is_null($post_id)) { $post_id = DB()->fetch_row("SELECT topic_first_post_id FROM " . BB_TOPICS . " WHERE topic_id = $topic_id", 'topic_first_post_id'); diff --git a/library/attach_mod/attachment_mod.php b/library/attach_mod/attachment_mod.php index b59d273ca..16fa06a8b 100644 --- a/library/attach_mod/attachment_mod.php +++ b/library/attach_mod/attachment_mod.php @@ -25,11 +25,11 @@ if (defined('ATTACH_INSTALL')) { */ function attach_mod_get_lang($language_file) { - global $attach_config, $bb_cfg; + global $attach_config; - $file = LANG_ROOT_DIR . '/' . $bb_cfg['default_lang'] . '/' . $language_file . '.php'; + $file = LANG_ROOT_DIR . '/' . config()->get('default_lang') . '/' . $language_file . '.php'; if (file_exists($file)) { - return $bb_cfg['default_lang']; + return config()->get('default_lang'); } $file = LANG_ROOT_DIR . '/' . $attach_config['board_lang'] . '/' . $language_file . '.php'; @@ -45,8 +45,6 @@ function attach_mod_get_lang($language_file) */ function get_config() { - global $bb_cfg; - $attach_config = []; $sql = 'SELECT * FROM ' . BB_ATTACH_CONFIG; @@ -60,7 +58,7 @@ function get_config() } // We assign the original default board language here, because it gets overwritten later with the users default language - $attach_config['board_lang'] = trim($bb_cfg['default_lang']); + $attach_config['board_lang'] = trim(config()->get('default_lang')); return $attach_config; } diff --git a/library/attach_mod/displaying_torrent.php b/library/attach_mod/displaying_torrent.php index 06a670266..edded7f47 100644 --- a/library/attach_mod/displaying_torrent.php +++ b/library/attach_mod/displaying_torrent.php @@ -11,7 +11,7 @@ if (!defined('BB_ROOT')) { die(basename(__FILE__)); } -global $bb_cfg, $t_data, $poster_id, $is_auth, $dl_link_css, $dl_status_css, $lang, $images; +global $t_data, $poster_id, $is_auth, $dl_link_css, $dl_status_css, $lang, $images; $tor_status_by_for_all = true; $change_peers_bgr_over = true; @@ -40,7 +40,7 @@ $template->assign_vars([ ]); // Define show peers mode (count only || user names with complete % || full details) -$cfg_sp_mode = $bb_cfg['bt_show_peers_mode']; +$cfg_sp_mode = config()->get('bt_show_peers_mode'); $get_sp_mode = $_GET['spmode'] ?? ''; $s_mode = 'count'; @@ -51,7 +51,7 @@ if ($cfg_sp_mode == SHOW_PEERS_NAMES) { $s_mode = 'full'; } -if ($bb_cfg['bt_allow_spmode_change']) { +if (config()->get('bt_allow_spmode_change')) { if ($get_sp_mode == 'names') { $s_mode = 'names'; } elseif ($get_sp_mode == 'full') { @@ -68,7 +68,7 @@ $tor_file_size = humn_size($attachments['_' . $post_id][$i]['filesize']); $tor_file_time = bb_date($attachments['_' . $post_id][$i]['filetime']); $tor_reged = (bool)$tracker_status; -$show_peers = (bool)$bb_cfg['bt_show_peers']; +$show_peers = (bool)config()->get('bt_show_peers'); $locked = ($t_data['forum_status'] == FORUM_LOCKED || $t_data['topic_status'] == TOPIC_LOCKED); $tor_auth = ($bt_user_id != GUEST_UID && (($bt_user_id == $poster_id && !$locked) || $is_auth['auth_mod'])); @@ -88,10 +88,10 @@ if ($tor_auth_reg || $tor_auth_del) { $tracker_link = ($tor_reged) ? $unreg_tor_url : $reg_tor_url; } -if ($bb_cfg['tracker']['use_old_torrent_name_format']) { - $display_name = '[' . $bb_cfg['server_name'] . '].t' . $bt_topic_id . '.' . TORRENT_EXT; +if (config()->get('tracker.use_old_torrent_name_format')) { + $display_name = '[' . config()->get('server_name') . '].t' . $bt_topic_id . '.' . TORRENT_EXT; } else { - $display_name = $t_data['topic_title'] . ' [' . $bb_cfg['server_name'] . '-' . $bt_topic_id . ']' . '.' . TORRENT_EXT; + $display_name = $t_data['topic_title'] . ' [' . config()->get('server_name') . '-' . $bt_topic_id . ']' . '.' . TORRENT_EXT; } if (!$tor_reged) { @@ -152,8 +152,8 @@ if ($tor_reged && $tor_info) { $tor_magnet = create_magnet($tor_info['info_hash'], $tor_info['info_hash_v2'], $user_passkey, html_ent_decode($t_data['topic_title']), $tor_size); // ratio limits - $min_ratio_dl = $bb_cfg['bt_min_ratio_allow_dl_tor']; - $min_ratio_warn = $bb_cfg['bt_min_ratio_warning']; + $min_ratio_dl = config()->get('bt_min_ratio_allow_dl_tor'); + $min_ratio_warn = config()->get('bt_min_ratio_warning'); $dl_allowed = true; $user_ratio = 0; @@ -182,7 +182,7 @@ if ($tor_reged && $tor_info) { if ((isset($user_ratio, $min_ratio_warn) && $user_ratio < $min_ratio_warn && TR_RATING_LIMITS) || ($bt_userdata['u_down_total'] < MIN_DL_FOR_RATIO)) { $template->assign_vars([ 'SHOW_RATIO_WARN' => true, - 'RATIO_WARN_MSG' => sprintf($lang['BT_RATIO_WARNING_MSG'], $min_ratio_dl, $bb_cfg['ratio_url_help']), + 'RATIO_WARN_MSG' => sprintf($lang['BT_RATIO_WARNING_MSG'], $min_ratio_dl, config()->get('ratio_url_help')), ]); } } @@ -202,12 +202,12 @@ if ($tor_reged && $tor_info) { 'TOR_TYPE' => is_gold($tor_type), // torrent status mod - 'TOR_FROZEN' => !IS_AM ? (isset($bb_cfg['tor_frozen'][$tor_info['tor_status']]) && !(isset($bb_cfg['tor_frozen_author_download'][$tor_info['tor_status']]) && $userdata['user_id'] == $tor_info['poster_id'])) ? true : '' : '', + 'TOR_FROZEN' => !IS_AM ? (isset(config()->get('tor_frozen')[$tor_info['tor_status']]) && !(isset(config()->get('tor_frozen_author_download')[$tor_info['tor_status']]) && $userdata['user_id'] == $tor_info['poster_id'])) ? true : '' : '', 'TOR_STATUS_TEXT' => $lang['TOR_STATUS_NAME'][$tor_info['tor_status']], - 'TOR_STATUS_ICON' => $bb_cfg['tor_icons'][$tor_info['tor_status']], + 'TOR_STATUS_ICON' => config()->get('tor_icons')[$tor_info['tor_status']], 'TOR_STATUS_BY' => ($tor_info['checked_user_id'] && ($is_auth['auth_mod'] || $tor_status_by_for_all)) ? (' · ' . profile_url($tor_info) . ' · ' . delta_time($tor_info['checked_time']) . $lang['TOR_BACK'] . '') : '', 'TOR_STATUS_SELECT' => build_select('sel_status', array_flip($lang['TOR_STATUS_NAME']), TOR_APPROVED), - 'TOR_STATUS_REPLY' => $bb_cfg['tor_comment'] && !IS_GUEST && in_array($tor_info['tor_status'], $bb_cfg['tor_reply']) && $userdata['user_id'] == $tor_info['poster_id'] && $t_data['topic_status'] != TOPIC_LOCKED, + 'TOR_STATUS_REPLY' => config()->get('tor_comment') && !IS_GUEST && in_array($tor_info['tor_status'], config()->get('tor_reply')) && $userdata['user_id'] == $tor_info['poster_id'] && $t_data['topic_status'] != TOPIC_LOCKED, //end torrent status mod 'S_UPLOAD_IMAGE' => $upload_image, @@ -227,7 +227,7 @@ if ($tor_reged && $tor_info) { ]); // TorrServer integration - if ($bb_cfg['torr_server']['enabled'] && (!IS_GUEST || !$bb_cfg['torr_server']['disable_for_guest']) && (new \TorrentPier\TorrServerAPI())->getM3UPath($attach_id)) { + if (config()->get('torr_server.enabled') && (!IS_GUEST || !config()->get('torr_server.disable_for_guest')) && (new \TorrentPier\TorrServerAPI())->getM3UPath($attach_id)) { $template->assign_block_vars('postrow.attach.tor_reged.tor_server', [ 'TORR_SERVER_M3U_LINK' => PLAYBACK_M3U_URL . $bt_topic_id, 'TORR_SERVER_M3U_ICON' => $images['icon_tor_m3u_icon'], @@ -239,7 +239,7 @@ if ($tor_reged && $tor_info) { } } - if ($bb_cfg['show_tor_info_in_dl_list']) { + if (config()->get('show_tor_info_in_dl_list')) { $template->assign_vars([ 'SHOW_DL_LIST' => true, 'SHOW_DL_LIST_TOR_INFO' => true, @@ -470,7 +470,7 @@ if ($tor_reged && $tor_info) { } $peerCountry = $lang['HIDDEN_USER']; - if ($bb_cfg['ip2country_settings']['enabled']) { + if (config()->get('ip2country_settings.enabled')) { if (IS_AM || $peer['user_id'] == $userdata['user_id'] || !bf($peer['user_opt'], 'user_opt', 'user_hide_peer_country')) { if ($infoByIP = infoByIP((!empty($peer['ipv6']) ? $peer['ipv6'] : $peer['ip']), $peer['port'])) { if (!empty($infoByIP['countryCode'])) { @@ -500,7 +500,7 @@ if ($tor_reged && $tor_info) { if ($ip) { $template->assign_block_vars("$x_full.$x_row.ip", [ - 'U_WHOIS_IP' => $bb_cfg['whois_info'] . $ip, + 'U_WHOIS_IP' => config()->get('whois_info') . $ip, 'IP' => $ip ]); } @@ -563,7 +563,7 @@ if ($tor_reged && $tor_info) { } } -if ($bb_cfg['bt_allow_spmode_change'] && $s_mode != 'full') { +if (config()->get('bt_allow_spmode_change') && $s_mode != 'full') { $template->assign_vars([ 'PEERS_FULL_LINK' => true, 'SPMODE_FULL_HREF' => TOPIC_URL . "$bt_topic_id&spmode=full#seeders" @@ -571,14 +571,14 @@ if ($bb_cfg['bt_allow_spmode_change'] && $s_mode != 'full') { } $template->assign_vars([ - 'SHOW_DL_LIST_LINK' => (($bb_cfg['bt_show_dl_list'] || $bb_cfg['allow_dl_list_names_mode']) && $t_data['topic_dl_type'] == TOPIC_DL_TYPE_DL), - 'SHOW_TOR_ACT' => ($tor_reged && $show_peers && (!isset($bb_cfg['tor_no_tor_act'][$tor_info['tor_status']]) || IS_AM)), + 'SHOW_DL_LIST_LINK' => ((config()->get('bt_show_dl_list') || config()->get('allow_dl_list_names_mode')) && $t_data['topic_dl_type'] == TOPIC_DL_TYPE_DL), + 'SHOW_TOR_ACT' => ($tor_reged && $show_peers && (!isset(config()->get('tor_no_tor_act')[$tor_info['tor_status']]) || IS_AM)), 'S_MODE_COUNT' => ($s_mode == 'count'), 'S_MODE_NAMES' => ($s_mode == 'names'), 'S_MODE_FULL' => ($s_mode == 'full'), 'PEER_EXIST' => ($seeders || $leechers || defined('SEEDER_EXIST') || defined('LEECHER_EXIST')), 'SEED_EXIST' => ($seeders || defined('SEEDER_EXIST')), 'LEECH_EXIST' => ($leechers || defined('LEECHER_EXIST')), - 'TOR_HELP_LINKS' => $bb_cfg['tor_help_links'], - 'CALL_SEED' => (!IS_GUEST && $bb_cfg['callseed'] && $tor_reged && !isset($bb_cfg['tor_no_tor_act'][$tor_info['tor_status']]) && $seed_count < 3 && $tor_info['call_seed_time'] < (TIMENOW - 86400)), + 'TOR_HELP_LINKS' => config()->get('tor_help_links'), + 'CALL_SEED' => (!IS_GUEST && config()->get('callseed') && $tor_reged && !isset(config()->get('tor_no_tor_act')[$tor_info['tor_status']]) && $seed_count < 3 && $tor_info['call_seed_time'] < (TIMENOW - 86400)), ]); diff --git a/library/attach_mod/includes/functions_delete.php b/library/attach_mod/includes/functions_delete.php index 4a2b7ae0c..79679db2a 100644 --- a/library/attach_mod/includes/functions_delete.php +++ b/library/attach_mod/includes/functions_delete.php @@ -16,7 +16,7 @@ */ function delete_attachment($post_id_array = 0, $attach_id_array = 0, $page = 0, $user_id = 0) { - global $lang, $bb_cfg; + global $lang; // Generate Array, if it's not an array if ($post_id_array === 0 && $attach_id_array === 0 && $page === 0) { @@ -215,7 +215,7 @@ function delete_attachment($post_id_array = 0, $attach_id_array = 0, $page = 0, } // TorrServer integration - if ($bb_cfg['torr_server']['enabled']) { + if (config()->get('torr_server.enabled')) { $torrServer = new \TorrentPier\TorrServerAPI(); $torrServer->removeM3U($attachments[$j]['attach_id']); } diff --git a/library/includes/bbcode.php b/library/includes/bbcode.php index d2465c275..7e5a40916 100644 --- a/library/includes/bbcode.php +++ b/library/includes/bbcode.php @@ -123,7 +123,7 @@ function prepare_message($message) // Either in a window or inline function generate_smilies($mode) { - global $bb_cfg, $template, $lang, $user, $datastore; + global $template, $lang, $user, $datastore; $inline_columns = 4; $inline_rows = 7; @@ -160,7 +160,7 @@ function generate_smilies($mode) $template->assign_block_vars('smilies_row.smilies_col', [ 'SMILEY_CODE' => $data['code'], - 'SMILEY_IMG' => $bb_cfg['smilies_path'] . '/' . $smile_url, + 'SMILEY_IMG' => config()->get('smilies_path') . '/' . $smile_url, 'SMILEY_DESC' => $data['emoticon'], ]); @@ -341,11 +341,9 @@ function strip_bbcode($message, $stripquotes = true, $fast_and_dirty = false, $s function extract_search_words($text) { - global $bb_cfg; - - $max_words_count = $bb_cfg['max_search_words_per_post']; - $min_word_len = max(2, $bb_cfg['search_min_word_len'] - 1); - $max_word_len = $bb_cfg['search_max_word_len']; + $max_words_count = config()->get('max_search_words_per_post'); + $min_word_len = max(2, config()->get('search_min_word_len') - 1); + $max_word_len = config()->get('search_max_word_len'); $text = ' ' . str_compact(strip_tags(mb_strtolower($text))) . ' '; $text = str_replace(['[', ']'], ['[', ']'], $text); @@ -382,12 +380,10 @@ function extract_search_words($text) function add_search_words($post_id, $post_message, $topic_title = '', $only_return_words = false) { - global $bb_cfg; - $text = $topic_title . ' ' . $post_message; $words = ($text) ? extract_search_words($text) : []; - if ($only_return_words || $bb_cfg['search_engine_type'] == 'sphinx') { + if ($only_return_words || config()->get('search_engine_type') == 'sphinx') { return implode("\n", $words); } @@ -425,22 +421,19 @@ function get_words_rate($text) function hide_passkey($str) { - global $bb_cfg; - return preg_replace("#\?{$bb_cfg['passkey_key']}=[a-zA-Z0-9]{" . BT_AUTH_KEY_LENGTH . "}#", "?{$bb_cfg['passkey_key']}=passkey", $str); + return preg_replace("#\?{config()->get('passkey_key')}=[a-zA-Z0-9]{" . BT_AUTH_KEY_LENGTH . "}#", "?{config()->get('passkey_key')}=passkey", $str); } function get_parsed_post($postrow, $mode = 'full', $return_chars = 600) { - global $bb_cfg; - - if ($bb_cfg['use_posts_cache'] && !empty($postrow['post_html'])) { + if (config()->get('use_posts_cache') && !empty($postrow['post_html'])) { return $postrow['post_html']; } $message = bbcode2html($postrow['post_text']); // Posts cache - if ($bb_cfg['use_posts_cache']) { + if (config()->get('use_posts_cache')) { DB()->shutdown['post_html'][] = [ 'post_id' => (int)$postrow['post_id'], 'post_html' => (string)$message diff --git a/library/includes/cron/jobs/attach_maintenance.php b/library/includes/cron/jobs/attach_maintenance.php index 99e9a7168..84987405e 100644 --- a/library/includes/cron/jobs/attach_maintenance.php +++ b/library/includes/cron/jobs/attach_maintenance.php @@ -144,7 +144,7 @@ if ($check_attachments) { $orphan_db_attach[] = $row['attach_id']; } // Delete all orphan attachments - if ($bb_cfg['torr_server']['enabled'] && $fix_errors) { + if (config()->get('torr_server.enabled') && $fix_errors) { foreach ($orphan_db_attach as $attach_id) { // TorrServer integration $torrServer = new \TorrentPier\TorrServerAPI(); diff --git a/library/includes/cron/jobs/board_maintenance.php b/library/includes/cron/jobs/board_maintenance.php index de789f9f8..e25cf5f75 100644 --- a/library/includes/cron/jobs/board_maintenance.php +++ b/library/includes/cron/jobs/board_maintenance.php @@ -17,7 +17,7 @@ if (!defined('BB_ROOT')) { \TorrentPier\Legacy\Admin\Common::sync_all_forums(); // Cleaning bb_poll_users -if ($poll_max_days = (int)$bb_cfg['poll_max_days']) { +if ($poll_max_days = (int)config()->get('poll_max_days')) { $per_cycle = 20000; $row = DB()->fetch_row("SELECT MIN(topic_id) AS start_id, MAX(topic_id) AS finish_id FROM " . BB_POLL_USERS); $start_id = (int)$row['start_id']; @@ -45,12 +45,12 @@ if ($poll_max_days = (int)$bb_cfg['poll_max_days']) { DB()->query("UPDATE " . BB_USERS . " SET user_newpasswd = '' WHERE user_lastvisit < " . (TIMENOW - 7 * 86400)); // Cleaning post cache -if ($posts_days = (int)$bb_cfg['posts_cache_days_keep']) { +if ($posts_days = (int)config()->get('posts_cache_days_keep')) { DB()->query("DELETE FROM " . BB_POSTS_HTML . " WHERE post_html_time < DATE_SUB(NOW(), INTERVAL $posts_days DAY)"); } // Autofill announcer url -if (empty($bb_cfg['bt_announce_url']) || ($bb_cfg['bt_announce_url'] === 'https://localhost/bt/announce.php')) { +if (empty(config()->get('bt_announce_url')) || (config()->get('bt_announce_url') === 'https://localhost/bt/announce.php')) { bb_update_config(['bt_announce_url' => FULL_URL . 'bt/announce.php']); } diff --git a/library/includes/cron/jobs/clean_dlstat.php b/library/includes/cron/jobs/clean_dlstat.php index 2c2c433b2..490254561 100644 --- a/library/includes/cron/jobs/clean_dlstat.php +++ b/library/includes/cron/jobs/clean_dlstat.php @@ -13,10 +13,10 @@ if (!defined('BB_ROOT')) { // Delete staled dl-status records $keeping_dlstat = [ - DL_STATUS_WILL => (int)$bb_cfg['dl_will_days_keep'], - DL_STATUS_DOWN => (int)$bb_cfg['dl_down_days_keep'], - DL_STATUS_COMPLETE => (int)$bb_cfg['dl_complete_days_keep'], - DL_STATUS_CANCEL => (int)$bb_cfg['dl_cancel_days_keep'] + DL_STATUS_WILL => (int)config()->get('dl_will_days_keep'), + DL_STATUS_DOWN => (int)config()->get('dl_down_days_keep'), + DL_STATUS_COMPLETE => (int)config()->get('dl_complete_days_keep'), + DL_STATUS_CANCEL => (int)config()->get('dl_cancel_days_keep') ]; $delete_dlstat_sql = []; @@ -51,7 +51,7 @@ DB()->query(" "); // Tor-Stats cleanup -if ($torstat_days_keep = (int)$bb_cfg['torstat_days_keep']) { +if ($torstat_days_keep = (int)config()->get('torstat_days_keep')) { DB()->query("DELETE QUICK FROM " . BB_BT_TORSTAT . " WHERE last_modified_torstat < DATE_SUB(NOW(), INTERVAL $torstat_days_keep DAY)"); } diff --git a/library/includes/cron/jobs/clean_log.php b/library/includes/cron/jobs/clean_log.php index c21ee2b5f..b136c298b 100644 --- a/library/includes/cron/jobs/clean_log.php +++ b/library/includes/cron/jobs/clean_log.php @@ -11,7 +11,7 @@ if (!defined('BB_ROOT')) { die(basename(__FILE__)); } -$log_days_keep = (int)$bb_cfg['log_days_keep']; +$log_days_keep = (int)config()->get('log_days_keep'); if ($log_days_keep !== 0) { DB()->query("DELETE FROM " . BB_LOG . " WHERE log_time < " . (TIMENOW - 86400 * $log_days_keep)); diff --git a/library/includes/cron/jobs/clean_pm.php b/library/includes/cron/jobs/clean_pm.php index 1d4203995..abbe6d343 100644 --- a/library/includes/cron/jobs/clean_pm.php +++ b/library/includes/cron/jobs/clean_pm.php @@ -11,7 +11,7 @@ if (!defined('BB_ROOT')) { die(basename(__FILE__)); } -$pm_days_keep = (int)$bb_cfg['pm_days_keep']; +$pm_days_keep = (int)config()->get('pm_days_keep'); if ($pm_days_keep !== 0) { $per_cycle = 20000; diff --git a/library/includes/cron/jobs/demo_mode.php b/library/includes/cron/jobs/demo_mode.php index cbdb252ea..ec02cc498 100644 --- a/library/includes/cron/jobs/demo_mode.php +++ b/library/includes/cron/jobs/demo_mode.php @@ -23,7 +23,7 @@ if (!IN_DEMO_MODE || !is_file($dump_path) || !is_readable($dump_path)) { // Clean cache & datastore $datastore->clean(); -foreach ($bb_cfg['cache']['engines'] as $cache_name => $cache_val) { +foreach (config()->get('cache.engines') as $cache_name => $cache_val) { CACHE($cache_name)->rm(); } diff --git a/library/includes/cron/jobs/prune_forums.php b/library/includes/cron/jobs/prune_forums.php index 722aef2c5..473bb4156 100644 --- a/library/includes/cron/jobs/prune_forums.php +++ b/library/includes/cron/jobs/prune_forums.php @@ -11,7 +11,7 @@ if (!defined('BB_ROOT')) { die(basename(__FILE__)); } -if ($bb_cfg['prune_enable']) { +if (config()->get('prune_enable')) { $sql = "SELECT forum_id, prune_days FROM " . BB_FORUMS . " WHERE prune_days != 0"; foreach (DB()->fetch_rowset($sql) as $row) { diff --git a/library/includes/cron/jobs/prune_inactive_users.php b/library/includes/cron/jobs/prune_inactive_users.php index 92b271a91..527ba0609 100644 --- a/library/includes/cron/jobs/prune_inactive_users.php +++ b/library/includes/cron/jobs/prune_inactive_users.php @@ -17,7 +17,7 @@ while (true) { set_time_limit(600); $prune_users = $not_activated_users = $not_active_users = []; - if ($not_activated_days = (int)$bb_cfg['user_not_activated_days_keep']) { + if ($not_activated_days = (int)config()->get('user_not_activated_days_keep')) { $sql = DB()->fetch_rowset("SELECT user_id FROM " . BB_USERS . " WHERE user_level = 0 AND user_lastvisit = 0 @@ -31,7 +31,7 @@ while (true) { } } - if ($not_active_days = (int)$bb_cfg['user_not_active_days_keep']) { + if ($not_active_days = (int)config()->get('user_not_active_days_keep')) { $sql = DB()->fetch_rowset("SELECT user_id FROM " . BB_USERS . " WHERE user_level = 0 AND user_posts = 0 diff --git a/library/includes/cron/jobs/prune_topic_moved.php b/library/includes/cron/jobs/prune_topic_moved.php index 9c1f6cb76..d43fa07ce 100644 --- a/library/includes/cron/jobs/prune_topic_moved.php +++ b/library/includes/cron/jobs/prune_topic_moved.php @@ -11,8 +11,8 @@ if (!defined('BB_ROOT')) { die(basename(__FILE__)); } -if ($bb_cfg['topic_moved_days_keep']) { - $prune_time = TIMENOW - 86400 * $bb_cfg['topic_moved_days_keep']; +if (config()->get('topic_moved_days_keep')) { + $prune_time = TIMENOW - 86400 * config()->get('topic_moved_days_keep'); DB()->query(" DELETE FROM " . BB_TOPICS . " diff --git a/library/includes/cron/jobs/sessions_cleanup.php b/library/includes/cron/jobs/sessions_cleanup.php index 07fc2a76d..1f6adbc5e 100644 --- a/library/includes/cron/jobs/sessions_cleanup.php +++ b/library/includes/cron/jobs/sessions_cleanup.php @@ -11,10 +11,10 @@ if (!defined('BB_ROOT')) { die(basename(__FILE__)); } -$user_session_expire_time = TIMENOW - (int)$bb_cfg['user_session_duration']; -$admin_session_expire_time = TIMENOW - (int)$bb_cfg['admin_session_duration']; +$user_session_expire_time = TIMENOW - (int)config()->get('user_session_duration'); +$admin_session_expire_time = TIMENOW - (int)config()->get('admin_session_duration'); -$user_session_gc_time = $user_session_expire_time - (int)$bb_cfg['user_session_gc_ttl']; +$user_session_gc_time = $user_session_expire_time - (int)config()->get('user_session_gc_ttl'); $admin_session_gc_time = $admin_session_expire_time; // ############################ Tables LOCKED ################################ diff --git a/library/includes/cron/jobs/tr_cleanup_and_dlstat.php b/library/includes/cron/jobs/tr_cleanup_and_dlstat.php index a0a64251f..ecd557c71 100644 --- a/library/includes/cron/jobs/tr_cleanup_and_dlstat.php +++ b/library/includes/cron/jobs/tr_cleanup_and_dlstat.php @@ -27,7 +27,7 @@ DB()->query("CREATE TABLE " . NEW_BB_BT_LAST_USERSTAT . " LIKE " . BB_BT_LAST_US DB()->expect_slow_query(600); // Update dlstat (part 1) -if ($bb_cfg['tracker']['update_dlstat']) { +if (config()->get('tracker.update_dlstat')) { // ############################ Tables LOCKED ################################ DB()->lock([ BB_BT_TRACKER, @@ -64,16 +64,16 @@ DB()->query(" "); // Clean peers table -if ($bb_cfg['tracker']['autoclean']) { - $announce_interval = max((int)$bb_cfg['announce_interval'], 60); - $expire_factor = max((float)$bb_cfg['tracker']['expire_factor'], 1); +if (config()->get('tracker.autoclean')) { + $announce_interval = max((int)config()->get('announce_interval'), 60); + $expire_factor = max((float)config()->get('tracker.expire_factor'), 1); $peer_expire_time = TIMENOW - floor($announce_interval * $expire_factor); DB()->query("DELETE FROM " . BB_BT_TRACKER . " WHERE update_time < $peer_expire_time"); } // Update dlstat (part 2) -if ($bb_cfg['tracker']['update_dlstat']) { +if (config()->get('tracker.update_dlstat')) { // Set "only 1 seeder" bonus DB()->query(" UPDATE diff --git a/library/includes/cron/jobs/tr_maintenance.php b/library/includes/cron/jobs/tr_maintenance.php index 04dd77857..0e7e20dab 100644 --- a/library/includes/cron/jobs/tr_maintenance.php +++ b/library/includes/cron/jobs/tr_maintenance.php @@ -11,12 +11,12 @@ if (!defined('BB_ROOT')) { die(basename(__FILE__)); } -if (empty($bb_cfg['seeder_last_seen_days_keep']) || empty($bb_cfg['seeder_never_seen_days_keep'])) { +if (empty(config()->get('seeder_last_seen_days_keep')) || empty(config()->get('seeder_never_seen_days_keep'))) { return; } -$last_seen_time = TIMENOW - 86400 * $bb_cfg['seeder_last_seen_days_keep']; -$never_seen_time = TIMENOW - 86400 * $bb_cfg['seeder_never_seen_days_keep']; +$last_seen_time = TIMENOW - 86400 * config()->get('seeder_last_seen_days_keep'); +$never_seen_time = TIMENOW - 86400 * config()->get('seeder_never_seen_days_keep'); $limit_sql = 3000; $topics_sql = $attach_sql = []; diff --git a/library/includes/cron/jobs/tr_make_snapshot.php b/library/includes/cron/jobs/tr_make_snapshot.php index 3ec24cd92..9dda76187 100644 --- a/library/includes/cron/jobs/tr_make_snapshot.php +++ b/library/includes/cron/jobs/tr_make_snapshot.php @@ -11,8 +11,6 @@ if (!defined('BB_ROOT')) { die(basename(__FILE__)); } -global $bb_cfg; - DB()->expect_slow_query(600); // @@ -81,7 +79,7 @@ DB()->query("DROP TABLE IF EXISTS " . NEW_BB_BT_DLSTATUS_SNAP . ", " . OLD_BB_BT DB()->query("CREATE TABLE " . NEW_BB_BT_DLSTATUS_SNAP . " LIKE " . BB_BT_DLSTATUS_SNAP); -if ($bb_cfg['bt_show_dl_list'] && $bb_cfg['bt_dl_list_only_count']) { +if (config()->get('bt_show_dl_list') && config()->get('bt_dl_list_only_count')) { DB()->query(" INSERT INTO " . NEW_BB_BT_DLSTATUS_SNAP . " (topic_id, dl_status, users_count) @@ -104,7 +102,7 @@ DB()->query("DROP TABLE IF EXISTS " . NEW_BB_BT_DLSTATUS_SNAP . ", " . OLD_BB_BT // // TORHELP // -if ($bb_cfg['torhelp_enabled']) { +if (config()->get('torhelp_enabled')) { $tor_min_seeders = 0; // "<=" $tor_min_leechers = 2; // ">=" $tor_min_completed = 10; // ">=" @@ -147,7 +145,7 @@ if ($bb_cfg['torhelp_enabled']) { WHERE trsn.seeders <= $tor_min_seeders AND trsn.leechers >= $tor_min_leechers - AND tor.forum_id != " . (int)$bb_cfg['trash_forum_id'] . " + AND tor.forum_id != " . (int)config()->get('trash_forum_id') . " AND tor.complete_count >= $tor_min_completed AND tor.seeder_last_seen <= (UNIX_TIMESTAMP() - $tor_seed_last_seen_days*86400) AND dl.user_id IN($online_users_csv) diff --git a/library/includes/cron/jobs/tr_seed_bonus.php b/library/includes/cron/jobs/tr_seed_bonus.php index 83e817ea9..b3bdaf936 100644 --- a/library/includes/cron/jobs/tr_seed_bonus.php +++ b/library/includes/cron/jobs/tr_seed_bonus.php @@ -13,7 +13,7 @@ if (!defined('BB_ROOT')) { DB()->expect_slow_query(600); -if ($bb_cfg['seed_bonus_enabled'] && $bb_cfg['seed_bonus_points'] && $bb_cfg['seed_bonus_release']) { +if (config()->get('seed_bonus_enabled') && config()->get('seed_bonus_points') && config()->get('seed_bonus_release')) { DB()->query(" CREATE TEMPORARY TABLE tmp_bonus ( user_id INT UNSIGNED NOT NULL DEFAULT '0', @@ -21,7 +21,7 @@ if ($bb_cfg['seed_bonus_enabled'] && $bb_cfg['seed_bonus_points'] && $bb_cfg['se ) ENGINE = MEMORY "); - $tor_size = ($bb_cfg['seed_bonus_tor_size'] * 1073741824); + $tor_size = (config()->get('seed_bonus_tor_size') * 1073741824); DB()->query("INSERT INTO tmp_bonus SELECT bt.user_id, count(bt.seeder) AS release_count @@ -32,8 +32,8 @@ if ($bb_cfg['seed_bonus_enabled'] && $bb_cfg['seed_bonus_points'] && $bb_cfg['se GROUP BY bt.user_id "); - $seed_bonus = unserialize($bb_cfg['seed_bonus_points']); - $seed_release = unserialize($bb_cfg['seed_bonus_release']); + $seed_bonus = unserialize(config()->get('seed_bonus_points')); + $seed_release = unserialize(config()->get('seed_bonus_release')); foreach ($seed_bonus as $i => $points) { if (!$points || !$seed_release[$i]) { @@ -42,7 +42,7 @@ if ($bb_cfg['seed_bonus_enabled'] && $bb_cfg['seed_bonus_points'] && $bb_cfg['se $user_points = ((float)$points / 4); $release = (int)$seed_release[$i]; - $user_regdate = (TIMENOW - $bb_cfg['seed_bonus_user_regdate'] * 86400); + $user_regdate = (TIMENOW - config()->get('seed_bonus_user_regdate') * 86400); DB()->query(" UPDATE " . BB_USERS . " u, " . BB_BT_USERS . " bu, tmp_bonus b diff --git a/library/includes/cron/jobs/update_forums_atom.php b/library/includes/cron/jobs/update_forums_atom.php index e6151add0..6cbfd1973 100644 --- a/library/includes/cron/jobs/update_forums_atom.php +++ b/library/includes/cron/jobs/update_forums_atom.php @@ -11,13 +11,11 @@ if (!defined('BB_ROOT')) { die(basename(__FILE__)); } -global $bb_cfg; - $timecheck = TIMENOW - 600; $forums_data = DB()->fetch_rowset("SELECT forum_id, allow_reg_tracker, forum_name FROM " . BB_FORUMS); -if (is_file($bb_cfg['atom']['path'] . '/f/0.atom')) { - if (filemtime($bb_cfg['atom']['path'] . '/f/0.atom') <= $timecheck) { +if (is_file(config()->get('atom.path') . '/f/0.atom')) { + if (filemtime(config()->get('atom.path') . '/f/0.atom') <= $timecheck) { \TorrentPier\Legacy\Atom::update_forum_feed(0, $forums_data); } } else { @@ -25,8 +23,8 @@ if (is_file($bb_cfg['atom']['path'] . '/f/0.atom')) { } foreach ($forums_data as $forum_data) { - if (is_file($bb_cfg['atom']['path'] . '/f/' . $forum_data['forum_id'] . '.atom')) { - if (filemtime($bb_cfg['atom']['path'] . '/f/' . $forum_data['forum_id'] . '.atom') <= $timecheck) { + if (is_file(config()->get('atom.path') . '/f/' . $forum_data['forum_id'] . '.atom')) { + if (filemtime(config()->get('atom.path') . '/f/' . $forum_data['forum_id'] . '.atom') <= $timecheck) { \TorrentPier\Legacy\Atom::update_forum_feed($forum_data['forum_id'], $forum_data); } } else { diff --git a/library/includes/datastore/build_cat_forums.php b/library/includes/datastore/build_cat_forums.php index 8df40d67f..fcf71e9e3 100644 --- a/library/includes/datastore/build_cat_forums.php +++ b/library/includes/datastore/build_cat_forums.php @@ -11,7 +11,7 @@ if (!defined('BB_ROOT')) { die(basename(__FILE__)); } -global $bf, $bb_cfg; +global $bf; // // cat_forums @@ -106,7 +106,7 @@ $this->store('cat_forums', $data); // // jumpbox // -if ($bb_cfg['show_jumpbox']) { +if (config()->get('show_jumpbox')) { $data = [ 'guest' => get_forum_select('guest', 'f', null, null, null, 'id="jumpbox" onchange="window.location.href=\'' . FORUM_URL . '\'+this.value;"'), 'user' => get_forum_select('user', 'f', null, null, null, 'id="jumpbox" onchange="window.location.href=\'' . FORUM_URL . '\'+this.value;"'), @@ -125,8 +125,8 @@ $this->store('viewtopic_forum_select', $data); // // latest_news // -if ($bb_cfg['show_latest_news'] and $news_forum_ids = $bb_cfg['latest_news_forum_id']) { - $news_count = max($bb_cfg['latest_news_count'], 1); +if (config()->get('show_latest_news') and $news_forum_ids = config()->get('latest_news_forum_id')) { + $news_count = max(config()->get('latest_news_count'), 1); $data = DB()->fetch_rowset(" SELECT topic_id, topic_time, topic_title, forum_id @@ -143,8 +143,8 @@ if ($bb_cfg['show_latest_news'] and $news_forum_ids = $bb_cfg['latest_news_forum // // Network_news // -if ($bb_cfg['show_network_news'] and $net_forum_ids = $bb_cfg['network_news_forum_id']) { - $net_count = max($bb_cfg['network_news_count'], 1); +if (config()->get('show_network_news') and $net_forum_ids = config()->get('network_news_forum_id')) { + $net_count = max(config()->get('network_news_count'), 1); $data = DB()->fetch_rowset(" SELECT topic_id, topic_time, topic_title, forum_id diff --git a/library/includes/datastore/build_check_updates.php b/library/includes/datastore/build_check_updates.php index a990d4364..416a9d4f7 100644 --- a/library/includes/datastore/build_check_updates.php +++ b/library/includes/datastore/build_check_updates.php @@ -11,19 +11,17 @@ if (!defined('BB_ROOT')) { die(basename(__FILE__)); } -global $bb_cfg; - -if (!$bb_cfg['tp_updater_settings']['enabled']) { +if (!config()->get('tp_updater_settings.enabled')) { return; } $data = []; $updaterDownloader = new \TorrentPier\Updater(); -$updaterDownloader = $updaterDownloader->getLastVersion($bb_cfg['tp_updater_settings']['allow_pre_releases']); +$updaterDownloader = $updaterDownloader->getLastVersion(config()->get('tp_updater_settings.allow_pre_releases')); $getVersion = \TorrentPier\Helpers\VersionHelper::removerPrefix($updaterDownloader['tag_name']); -$currentVersion = \TorrentPier\Helpers\VersionHelper::removerPrefix($bb_cfg['tp_version']); +$currentVersion = \TorrentPier\Helpers\VersionHelper::removerPrefix(config()->get('tp_version')); // Has update! if (\z4kn4fein\SemVer\Version::greaterThan($getVersion, $currentVersion)) { diff --git a/library/includes/datastore/build_smilies.php b/library/includes/datastore/build_smilies.php index 40b9c85f7..204a92e62 100644 --- a/library/includes/datastore/build_smilies.php +++ b/library/includes/datastore/build_smilies.php @@ -11,8 +11,6 @@ if (!defined('BB_ROOT')) { die(basename(__FILE__)); } -global $bb_cfg; - $smilies = []; $rowset = DB()->fetch_rowset("SELECT * FROM " . BB_SMILIES); @@ -20,7 +18,7 @@ sort($rowset); foreach ($rowset as $smile) { $smilies['orig'][] = '#(?<=^|\W)' . preg_quote($smile['code'], '#') . '(?=$|\W)#'; - $smilies['repl'][] = ' ' . $smile['code'] . ''; + $smilies['repl'][] = ' ' . $smile['code'] . ''; $smilies['smile'][] = $smile; } diff --git a/library/includes/datastore/build_stats.php b/library/includes/datastore/build_stats.php index e25d8e085..86fd14a35 100644 --- a/library/includes/datastore/build_stats.php +++ b/library/includes/datastore/build_stats.php @@ -11,8 +11,6 @@ if (!defined('BB_ROOT')) { die(basename(__FILE__)); } -global $bb_cfg; - $data = []; // usercount @@ -29,7 +27,7 @@ $data['postcount'] = commify($row['postcount']); $data['topiccount'] = commify($row['topiccount']); // Tracker stats -if ($bb_cfg['tor_stats']) { +if (config()->get('tor_stats')) { // torrents stat $row = DB()->fetch_row("SELECT COUNT(topic_id) AS torrentcount, SUM(size) AS size FROM " . BB_BT_TORRENTS); $data['torrentcount'] = commify($row['torrentcount']); @@ -44,7 +42,7 @@ if ($bb_cfg['tor_stats']) { } // gender stat -if ($bb_cfg['gender']) { +if (config()->get('gender')) { $male = DB()->fetch_row("SELECT COUNT(user_id) AS male FROM " . BB_USERS . " WHERE user_gender = " . MALE . " AND user_id NOT IN(" . EXCLUDED_USERS . ")"); $female = DB()->fetch_row("SELECT COUNT(user_id) AS female FROM " . BB_USERS . " WHERE user_gender = " . FEMALE . " AND user_id NOT IN(" . EXCLUDED_USERS . ")"); $unselect = DB()->fetch_row("SELECT COUNT(user_id) AS unselect FROM " . BB_USERS . " WHERE user_gender = 0 AND user_id NOT IN(" . EXCLUDED_USERS . ")"); @@ -55,7 +53,7 @@ if ($bb_cfg['gender']) { } // birthday stat -if ($bb_cfg['birthday_check_day'] && $bb_cfg['birthday_enabled']) { +if (config()->get('birthday_check_day') && config()->get('birthday_enabled')) { $sql = DB()->fetch_rowset("SELECT user_id, username, user_rank , user_birthday FROM " . BB_USERS . " WHERE user_id NOT IN(" . EXCLUDED_USERS . ") @@ -66,7 +64,7 @@ if ($bb_cfg['birthday_check_day'] && $bb_cfg['birthday_enabled']) { "); $date_today = bb_date(TIMENOW, 'md', false); - $date_forward = bb_date(TIMENOW + ($bb_cfg['birthday_check_day'] * 86400), 'md', false); + $date_forward = bb_date(TIMENOW + (config()->get('birthday_check_day') * 86400), 'md', false); $birthday_today_list = $birthday_week_list = []; diff --git a/library/includes/functions.php b/library/includes/functions.php index 67256eb1f..c569b55b3 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -13,22 +13,19 @@ if (!defined('BB_ROOT')) { function get_path_from_id($id, $ext_id, $base_path, $first_div, $sec_div) { - global $bb_cfg; - $ext = $bb_cfg['file_id_ext'][$ext_id] ?? ''; + $ext = config()->get('file_id_ext')[$ext_id] ?? ''; return ($base_path ? "$base_path/" : '') . floor($id / $first_div) . '/' . ($id % $sec_div) . '/' . $id . ($ext ? ".$ext" : ''); } function get_avatar_path($id, $ext_id, $base_path = null, $first_div = 10000, $sec_div = 100) { - global $bb_cfg; - $base_path ??= $bb_cfg['avatars']['upload_path']; + $base_path ??= config()->get('avatars.upload_path'); return get_path_from_id($id, $ext_id, $base_path, $first_div, $sec_div); } function get_attach_path($id, $ext_id = '', $base_path = null, $first_div = 10000, $sec_div = 100) { - global $bb_cfg; - $base_path ??= $bb_cfg['attach']['upload_path']; + $base_path ??= config()->get('attach.upload_path'); return get_path_from_id($id, $ext_id, $base_path, $first_div, $sec_div); } @@ -600,8 +597,6 @@ function humn_size($size, $rounder = null, $min = null, $space = ' ') function bt_show_ip($ip, $port = '') { - global $bb_cfg; - if (IS_AM) { $ip = \TorrentPier\Helpers\IPHelper::long2ip_extended($ip); @@ -617,18 +612,16 @@ function bt_show_ip($ip, $port = '') return $ip; } - return $bb_cfg['bt_show_ip_only_moder'] ? false : \TorrentPier\Helpers\IPHelper::anonymizeIP($ip); + return config()->get('bt_show_ip_only_moder') ? false : \TorrentPier\Helpers\IPHelper::anonymizeIP($ip); } function bt_show_port($port) { - global $bb_cfg; - if (IS_AM) { return $port; } - return $bb_cfg['bt_show_port_only_moder'] ? false : $port; + return config()->get('bt_show_port_only_moder') ? false : $port; } function checkbox_get_val(&$key, &$val, $default = 1, $on = 1, $off = 0) @@ -802,24 +795,24 @@ function str_short($text, $max_length, $space = ' ') function generate_user_info($row, bool $have_auth = IS_ADMIN): array { - global $userdata, $lang, $images, $bb_cfg; + global $userdata, $lang, $images; $from = !empty($row['user_from']) ? render_flag($row['user_from'], false) : $lang['NOSELECT']; $joined = bb_date($row['user_regdate'], 'Y-m-d H:i', false); $user_time = !empty($row['user_time']) ? sprintf('%s (%s)', bb_date($row['user_time']), delta_time($row['user_time'])) : $lang['NOSELECT']; $posts = '' . $row['user_posts'] ?: 0 . ''; - $pm = $bb_cfg['text_buttons'] ? '' . $lang['SEND_PM_TXTB'] . '' : '' . $lang['SEND_PRIVATE_MESSAGE'] . ''; + $pm = config()->get('text_buttons') ? '' . $lang['SEND_PM_TXTB'] . '' : '' . $lang['SEND_PRIVATE_MESSAGE'] . ''; $avatar = get_avatar($row['user_id'], $row['avatar_ext_id'], !bf($row['user_opt'], 'user_opt', 'dis_avatar'), 50, 50); if (bf($row['user_opt'], 'user_opt', 'user_viewemail') || $have_auth || ($row['user_id'] == $userdata['user_id'])) { - $email_uri = ($bb_cfg['board_email_form']) ? ("profile.php?mode=email&" . POST_USERS_URL . "=" . $row['user_id']) : 'mailto:' . $row['user_email']; + $email_uri = (config()->get('board_email_form')) ? ("profile.php?mode=email&" . POST_USERS_URL . "=" . $row['user_id']) : 'mailto:' . $row['user_email']; $email = '' . $row['user_email'] . ''; } else { $email = $lang['HIDDEN_USER']; } if ($row['user_website']) { - $www = $bb_cfg['text_buttons'] ? '' . $lang['VISIT_WEBSITE_TXTB'] . '' : '' . $lang['VISIT_WEBSITE'] . ''; + $www = config()->get('text_buttons') ? '' . $lang['VISIT_WEBSITE_TXTB'] . '' : '' . $lang['VISIT_WEBSITE'] . ''; } else { $www = $lang['NOSELECT']; } @@ -996,9 +989,9 @@ function get_userdata(int|string $u, bool $is_name = false, bool $allow_guest = function make_jumpbox(): void { - global $datastore, $template, $bb_cfg; + global $datastore, $template; - if (!$bb_cfg['show_jumpbox']) { + if (!config()->get('show_jumpbox')) { return; } @@ -1076,14 +1069,14 @@ function get_forum_select($mode = 'guest', $name = POST_FORUM_URL, $selected = n function setup_style() { - global $bb_cfg, $template, $userdata; + global $template, $userdata; // AdminCP works only with default template - $tpl_dir_name = defined('IN_ADMIN') ? 'default' : basename($bb_cfg['tpl_name']); - $stylesheet = defined('IN_ADMIN') ? 'main.css' : basename($bb_cfg['stylesheet']); + $tpl_dir_name = defined('IN_ADMIN') ? 'default' : basename(config()->get('tpl_name')); + $stylesheet = defined('IN_ADMIN') ? 'main.css' : basename(config()->get('stylesheet')); if (!IS_GUEST && !empty($userdata['tpl_name'])) { - foreach ($bb_cfg['templates'] as $folder => $name) { + foreach (config()->get('templates') as $folder => $name) { if ($userdata['tpl_name'] == $folder) { $tpl_dir_name = basename($userdata['tpl_name']); } @@ -1096,7 +1089,7 @@ function setup_style() $template->assign_vars([ 'SPACER' => make_url('styles/images/spacer.gif'), 'STYLESHEET' => make_url($css_dir . $stylesheet), - 'EXT_LINK_NEW_WIN' => $bb_cfg['ext_link_new_win'], + 'EXT_LINK_NEW_WIN' => config()->get('ext_link_new_win'), 'TPL_DIR' => make_url($css_dir), 'SITE_URL' => make_url('/') ]); @@ -1109,19 +1102,19 @@ function setup_style() // Create date / time with format and friendly date function bb_date($gmepoch, $format = false, $friendly_date = true) { - global $bb_cfg, $lang, $userdata; + global $lang, $userdata; $gmepoch = (int)$gmepoch; if (!$format) { - $format = $bb_cfg['default_dateformat']; + $format = config()->get('default_dateformat'); } if (empty($lang)) { - require_once($bb_cfg['default_lang_dir'] . 'main.php'); + require_once(config()->get('default_lang_dir') . 'main.php'); } if (!defined('IS_GUEST') || IS_GUEST) { - $tz = $bb_cfg['board_timezone']; + $tz = config()->get('board_timezone'); } else { $tz = $userdata['user_timezone']; } @@ -1156,7 +1149,7 @@ function bb_date($gmepoch, $format = false, $friendly_date = true) } } - return ($bb_cfg['translate_dates']) ? strtr(strtoupper($date), $lang['DATETIME']) : $date; + return (config()->get('translate_dates')) ? strtr(strtoupper($date), $lang['DATETIME']) : $date; } /** @@ -1167,12 +1160,11 @@ function bb_date($gmepoch, $format = false, $friendly_date = true) */ function get_user_torrent_client(string $peer_id): string { - global $bb_cfg; static $iconExtension = '.png'; $bestMatch = null; $bestMatchLength = 0; - foreach ($bb_cfg['tor_clients'] as $key => $clientName) { + foreach (config()->get('tor_clients') as $key => $clientName) { if (str_starts_with($peer_id, $key) !== false && strlen($key) > $bestMatchLength) { $bestMatch = $clientName; $bestMatchLength = strlen($key); @@ -1223,12 +1215,11 @@ function render_flag(string $code, bool $showName = true): string function birthday_age($date) { - global $bb_cfg; if (!$date) { return ''; } - $tz = TIMENOW + (3600 * $bb_cfg['board_timezone']); + $tz = TIMENOW + (3600 * config()->get('board_timezone')); return delta_time(strtotime($date, $tz)); } @@ -1339,7 +1330,7 @@ function bb_preg_quote($str, $delimiter) function bb_die($msg_text, $status_code = null) { - global $ajax, $bb_cfg, $lang, $template, $theme, $userdata, $user; + global $ajax, $lang, $template, $theme, $userdata, $user; if (isset($status_code)) { http_response_code($status_code); @@ -1358,7 +1349,7 @@ function bb_die($msg_text, $status_code = null) // If empty lang if (empty($lang)) { - require($bb_cfg['default_lang_dir'] . 'main.php'); + require(config()->get('default_lang_dir') . 'main.php'); } // If empty session @@ -1369,7 +1360,7 @@ function bb_die($msg_text, $status_code = null) // If the header hasn't been output then do it if (!defined('PAGE_HEADER_SENT')) { if (empty($template)) { - $template = new TorrentPier\Legacy\Template(BB_ROOT . "templates/{$bb_cfg['tpl_name']}"); + $template = new TorrentPier\Legacy\Template(BB_ROOT . "templates/" . config()->get('tpl_name')); } if (empty($theme)) { $theme = setup_style(); @@ -1397,8 +1388,6 @@ function bb_die($msg_text, $status_code = null) function bb_simple_die($txt, $status_code = null) { - global $bb_cfg; - header('Content-Type: text/plain; charset=' . DEFAULT_CHARSET); if (isset($status_code)) { @@ -1426,8 +1415,6 @@ function meta_refresh($url, $time = 5) function redirect($url) { - global $bb_cfg; - if (headers_sent($filename, $linenum)) { trigger_error("Headers already sent in $filename($linenum)", E_USER_ERROR); } @@ -1437,11 +1424,11 @@ function redirect($url) } $url = trim($url); - $server_protocol = ($bb_cfg['cookie_secure']) ? 'https://' : 'http://'; + $server_protocol = (config()->get('cookie_secure')) ? 'https://' : 'http://'; - $server_name = preg_replace('#^\/?(.*?)\/?$#', '\1', trim($bb_cfg['server_name'])); - $server_port = ($bb_cfg['server_port'] <> 80) ? ':' . trim($bb_cfg['server_port']) : ''; - $script_name = preg_replace('#^\/?(.*?)\/?$#', '\1', trim($bb_cfg['script_path'])); + $server_name = preg_replace('#^\/?(.*?)\/?$#', '\1', trim(config()->get('server_name'))); + $server_port = (config()->get('server_port') <> 80) ? ':' . trim(config()->get('server_port')) : ''; + $script_name = preg_replace('#^\/?(.*?)\/?$#', '\1', trim(config()->get('script_path'))); if ($script_name) { $script_name = "/$script_name"; @@ -1549,9 +1536,9 @@ function cat_exists($cat_id): bool function get_topic_icon($topic, $is_unread = null) { - global $bb_cfg, $images; + global $images; - $t_hot = ($topic['topic_replies'] >= $bb_cfg['hot_threshold']); + $t_hot = ($topic['topic_replies'] >= config()->get('hot_threshold')); $is_unread ??= is_unread($topic['topic_last_post_time'], $topic['topic_id'], $topic['forum_id']); if ($topic['topic_status'] == TOPIC_MOVED) { @@ -1684,7 +1671,7 @@ function clean_title($str, $replace_underscore = false) function clean_text_match($text, $ltrim_star = true, $die_if_empty = false) { - global $bb_cfg, $lang; + global $lang; $text = str_compact($text); $ltrim_chars = ($ltrim_star) ? ' *-!' : ' '; @@ -1692,7 +1679,7 @@ function clean_text_match($text, $ltrim_star = true, $die_if_empty = false) $text = ' ' . str_compact(ltrim($text, $ltrim_chars)) . ' '; - if ($bb_cfg['search_engine_type'] == 'sphinx') { + if (config()->get('search_engine_type') == 'sphinx') { $text = preg_replace('#(?<=\S)\-#u', ' ', $text); // "1-2-3" -> "1 2 3" $text = preg_replace('#[^0-9a-zA-Zа-яА-ЯёЁ\-_*|]#u', ' ', $text); // valid characters (except '"' which are separate) $text = str_replace(['-', '*'], [' -', '* '], $text); // only at the beginning/end of a word @@ -1742,7 +1729,7 @@ function log_sphinx_error($err_type, $err_msg, $query = '') function get_title_match_topics($title_match_sql, array $forum_ids = []) { - global $bb_cfg, $sphinx, $userdata, $title_match, $lang; + global $sphinx, $userdata, $title_match, $lang; $where_ids = []; if ($forum_ids) { @@ -1750,12 +1737,12 @@ function get_title_match_topics($title_match_sql, array $forum_ids = []) } $title_match_sql = encode_text_match($title_match_sql); - if ($bb_cfg['search_engine_type'] == 'sphinx') { + if (config()->get('search_engine_type') == 'sphinx') { $sphinx = init_sphinx(); $where = $title_match ? 'topics' : 'posts'; - $sphinx->setServer($bb_cfg['sphinx_topic_titles_host'], $bb_cfg['sphinx_topic_titles_port']); + $sphinx->setServer(config()->get('sphinx_topic_titles_host'), config()->get('sphinx_topic_titles_port')); if ($forum_ids) { $sphinx->setFilter('forum_id', $forum_ids, false); } @@ -1775,9 +1762,9 @@ function get_title_match_topics($title_match_sql, array $forum_ids = []) if ($warning = $sphinx->getLastWarning()) { log_sphinx_error('wrn', $warning, $title_match_sql); } - } elseif ($bb_cfg['search_engine_type'] == 'mysql') { + } elseif (config()->get('search_engine_type') == 'mysql') { $where_forum = ($forum_ids) ? "AND forum_id IN(" . implode(',', $forum_ids) . ")" : ''; - $search_bool_mode = ($bb_cfg['allow_search_in_bool_mode']) ? ' IN BOOLEAN MODE' : ''; + $search_bool_mode = (config()->get('allow_search_in_bool_mode')) ? ' IN BOOLEAN MODE' : ''; if ($title_match) { $where_id = 'topic_id'; @@ -1832,14 +1819,14 @@ function decode_text_match($txt) */ function create_magnet(string $infohash, string $infohash_v2, string $auth_key, string $name, int|string $length = 0): string { - global $bb_cfg, $images, $lang; + global $images, $lang; - if (!$bb_cfg['magnet_links_enabled']) { + if (!config()->get('magnet_links_enabled')) { return false; } // Only for registered users - if (!$bb_cfg['magnet_links_for_guests'] && IS_GUEST) { + if (!config()->get('magnet_links_for_guests') && IS_GUEST) { return false; } @@ -1864,7 +1851,7 @@ function create_magnet(string $infohash, string $infohash_v2, string $auth_key, $magnet .= '&xl=' . $length; } - return ''; + return 'get('passkey_key') . "=$auth_key") . '&dn=' . urlencode($name) . '">'; } function set_die_append_msg($forum_id = null, $topic_id = null, $group_id = null) @@ -1925,7 +1912,7 @@ function send_pm($user_id, $subject, $message, $poster_id = BOT_UID) */ function profile_url(array $data, bool $target_blank = false, bool $no_link = false): string { - global $bb_cfg, $lang, $datastore; + global $lang, $datastore; if (!$ranks = $datastore->get('ranks')) { $datastore->update('ranks'); @@ -1940,7 +1927,7 @@ function profile_url(array $data, bool $target_blank = false, bool $no_link = fa $style = 'colorUser'; if (isset($ranks[$user_rank])) { $title = $ranks[$user_rank]['rank_title']; - if ($bb_cfg['color_nick']) { + if (config()->get('color_nick')) { $style = $ranks[$user_rank]['rank_style']; } } @@ -1968,18 +1955,16 @@ function profile_url(array $data, bool $target_blank = false, bool $no_link = fa function get_avatar($user_id, $ext_id, $allow_avatar = true, $height = '', $width = '') { - global $bb_cfg; - $height = $height ? 'height="' . $height . '"' : ''; $width = $width ? 'width="' . $width . '"' : ''; - $user_avatar = '' . $user_id . ''; + $user_avatar = '' . $user_id . ''; - if ($user_id == BOT_UID && $bb_cfg['avatars']['bot_avatar']) { - $user_avatar = '' . $user_id . ''; + if ($user_id == BOT_UID && config()->get('avatars.bot_avatar')) { + $user_avatar = '' . $user_id . ''; } elseif ($allow_avatar && $ext_id) { if (is_file(get_avatar_path($user_id, $ext_id))) { - $user_avatar = '' . $user_id . ''; + $user_avatar = '' . $user_id . ''; } } @@ -1994,9 +1979,9 @@ function get_avatar($user_id, $ext_id, $allow_avatar = true, $height = '', $widt */ function genderImage(int $gender): ?string { - global $bb_cfg, $lang, $images; + global $lang, $images; - if (!$bb_cfg['gender']) { + if (!config()->get('gender')) { return false; } @@ -2009,12 +1994,12 @@ function genderImage(int $gender): ?string function is_gold($type): string { - global $lang, $bb_cfg, $images; + global $lang, $images; $type = (int)$type; $is_gold = ''; - if (!$bb_cfg['tracker']['gold_silver_enabled']) { + if (!config()->get('tracker.gold_silver_enabled')) { return $is_gold; } @@ -2083,10 +2068,10 @@ function hash_search($hash) */ function bb_captcha(string $mode): bool|string { - global $bb_cfg, $lang; + global $lang; - $settings = $bb_cfg['captcha']; - $settings['language'] = $bb_cfg['default_lang']; + $settings = config()->get('captcha'); + $settings['language'] = config()->get('default_lang'); // Checking captcha settings if (!$settings['disabled'] && $settings['service'] !== 'text') { @@ -2138,13 +2123,13 @@ function clean_tor_dirname($dirname) */ function user_birthday_icon($user_birthday, $user_id): string { - global $bb_cfg, $images, $lang; + global $images, $lang; $current_date = bb_date(TIMENOW, 'md', false); $user_birthday = ($user_id != GUEST_UID && !empty($user_birthday) && $user_birthday != '1900-01-01') ? bb_date(strtotime($user_birthday), 'md', false) : false; - return ($bb_cfg['birthday_enabled'] && $current_date == $user_birthday) ? '' . $lang['HAPPY_BIRTHDAY'] . '' : ''; + return (config()->get('birthday_enabled') && $current_date == $user_birthday) ? '' . $lang['HAPPY_BIRTHDAY'] . '' : ''; } /** @@ -2190,9 +2175,7 @@ function readUpdaterFile(): array|bool */ function infoByIP(string $ipAddress, int $port = 0): array { - global $bb_cfg; - - if (!$bb_cfg['ip2country_settings']['enabled']) { + if (!config()->get('ip2country_settings.enabled')) { return []; } @@ -2203,14 +2186,14 @@ function infoByIP(string $ipAddress, int $port = 0): array $data = []; $contextOptions = []; - if (!empty($bb_cfg['ip2country_settings']['api_token'])) { + if (!empty(config()->get('ip2country_settings.api_token'))) { $contextOptions['http'] = [ - 'header' => "Authorization: Bearer " . $bb_cfg['ip2country_settings']['api_token'] . "\r\n" + 'header' => "Authorization: Bearer " . config()->get('ip2country_settings.api_token') . "\r\n" ]; } $context = stream_context_create($contextOptions); - $response = file_get_contents($bb_cfg['ip2country_settings']['endpoint'] . $ipAddress, context: $context); + $response = file_get_contents(config()->get('ip2country_settings.endpoint') . $ipAddress, context: $context); if ($response !== false) { $json = json_decode($response, true); diff --git a/library/includes/init_bb.php b/library/includes/init_bb.php index 932dba5a1..622e696cf 100644 --- a/library/includes/init_bb.php +++ b/library/includes/init_bb.php @@ -39,9 +39,7 @@ function send_page($contents) */ function compress_output($contents) { - global $bb_cfg; - - if ($bb_cfg['gzip_compress'] && GZIP_OUTPUT_ALLOWED && !defined('NO_GZIP')) { + if (config()->get('gzip_compress') && GZIP_OUTPUT_ALLOWED && !defined('NO_GZIP')) { if (UA_GZIP_SUPPORTED && strlen($contents) > 2000) { header('Content-Encoding: gzip'); $contents = gzencode($contents, 1); @@ -59,7 +57,7 @@ if (!defined('IN_AJAX')) { } // Cookie params -$c = $bb_cfg['cookie_prefix']; +$c = config()->get('cookie_prefix'); define('COOKIE_DATA', $c . 'data'); define('COOKIE_FORUM', $c . 'f'); define('COOKIE_MARK', $c . 'mark_read'); @@ -85,16 +83,14 @@ define('COOKIE_MAX_TRACKS', 90); */ function bb_setcookie(string $name, mixed $val, int $lifetime = COOKIE_PERSIST, bool $httponly = false, bool $isRaw = false): void { - global $bb_cfg; - $cookie = new \Josantonius\Cookie\Cookie( - domain: $bb_cfg['cookie_domain'], + domain: config()->get('cookie_domain'), expires: $lifetime, httpOnly: $httponly, - path: $bb_cfg['script_path'], + path: config()->get('script_path'), raw: $isRaw, - sameSite: $bb_cfg['cookie_same_site'], - secure: $bb_cfg['cookie_secure'] + sameSite: config()->get('cookie_same_site'), + secure: config()->get('cookie_secure') ); if (!empty($val)) { @@ -275,14 +271,14 @@ define('PAGE_HEADER', INC_DIR . '/page_header.php'); define('PAGE_FOOTER', INC_DIR . '/page_footer.php'); define('CAT_URL', 'index.php?' . POST_CAT_URL . '='); -define('DL_URL', $bb_cfg['dl_url']); +define('DL_URL', config()->get('dl_url')); define('FORUM_URL', 'viewforum.php?' . POST_FORUM_URL . '='); define('GROUP_URL', 'group.php?' . POST_GROUPS_URL . '='); -define('LOGIN_URL', $bb_cfg['login_url']); +define('LOGIN_URL', config()->get('login_url')); define('MODCP_URL', 'modcp.php?' . POST_FORUM_URL . '='); -define('PM_URL', $bb_cfg['pm_url']); +define('PM_URL', config()->get('pm_url')); define('POST_URL', 'viewtopic.php?' . POST_POST_URL . '='); -define('POSTING_URL', $bb_cfg['posting_url']); +define('POSTING_URL', config()->get('posting_url')); define('PROFILE_URL', 'profile.php?mode=viewprofile&' . POST_USERS_URL . '='); define('BONUS_URL', 'profile.php?mode=bonus'); define('TOPIC_URL', 'viewtopic.php?' . POST_TOPIC_URL . '='); @@ -378,7 +374,10 @@ function make_url(string $path = ''): string */ require_once INC_DIR . '/functions.php'; -$bb_cfg = array_merge(bb_get_config(BB_CONFIG), $bb_cfg); +// Merge database configuration with base configuration using singleton +// bb_cfg deprecated, but kept for compatibility with non-adapted code +config()->merge(bb_get_config(BB_CONFIG)); +$bb_cfg = config()->all(); $log_action = new TorrentPier\Legacy\LogAction(); $wordCensor = new TorrentPier\Censor(); @@ -396,7 +395,7 @@ if ( !is_file(CRON_RUNNING) && (TorrentPier\Helpers\CronHelper::isEnabled() || defined('START_CRON')) ) { - if (TIMENOW - $bb_cfg['cron_last_check'] > $bb_cfg['cron_check_interval']) { + if (TIMENOW - config()->get('cron_last_check') > config()->get('cron_check_interval')) { /** Update cron_last_check */ bb_update_config(['cron_last_check' => TIMENOW + 10]); @@ -436,8 +435,8 @@ if ( /** * Exit if board is disabled via trigger */ -if (($bb_cfg['board_disable'] || is_file(BB_DISABLED)) && !defined('IN_ADMIN') && !defined('IN_AJAX') && !defined('IN_LOGIN')) { - if ($bb_cfg['board_disable']) { +if ((config()->get('board_disable') || is_file(BB_DISABLED)) && !defined('IN_ADMIN') && !defined('IN_AJAX') && !defined('IN_LOGIN')) { + if (config()->get('board_disable')) { // admin lock send_no_cache_headers(); bb_die('BOARD_DISABLE', 503); diff --git a/library/includes/online_userlist.php b/library/includes/online_userlist.php index 7434f79ea..ca3651e72 100644 --- a/library/includes/online_userlist.php +++ b/library/includes/online_userlist.php @@ -116,7 +116,7 @@ if (!$online['userlist']) { $total_online = $logged_online + $guests_online; -if ($total_online > $bb_cfg['record_online_users']) { +if ($total_online > config()->get('record_online_users')) { bb_update_config([ 'record_online_users' => $total_online, 'record_online_date' => TIMENOW diff --git a/library/includes/page_footer.php b/library/includes/page_footer.php index 2eadbe6f2..80b15b559 100644 --- a/library/includes/page_footer.php +++ b/library/includes/page_footer.php @@ -11,7 +11,7 @@ if (!defined('BB_ROOT')) { die(basename(__FILE__)); } -global $bb_cfg, $userdata, $template, $DBS, $lang; +global $userdata, $template, $DBS, $lang; if (!empty($template)) { $birthday_tp = ((string)bb_date(TIMENOW, 'd.m', false) === '04.04') ? ' | 🎉🍰💚' : ''; @@ -29,7 +29,7 @@ if (!empty($template)) { $show_dbg_info = (DBG_USER && !(isset($_GET['pane']) && $_GET['pane'] == 'left')); -if (!$bb_cfg['gzip_compress']) { +if (!config()->get('gzip_compress')) { flush(); } @@ -37,7 +37,7 @@ if ($show_dbg_info) { $gen_time = utime() - TIMESTART; $gen_time_txt = sprintf('%.3f', $gen_time); $gzip_text = UA_GZIP_SUPPORTED ? "{$lang['GZIP_COMPRESSION']}: " : "{$lang['GZIP_COMPRESSION']}: "; - $gzip_text .= $bb_cfg['gzip_compress'] ? $lang['ON'] : $lang['OFF']; + $gzip_text .= config()->get('gzip_compress') ? $lang['ON'] : $lang['OFF']; $stat = '[  ' . $lang['EXECUTION_TIME'] . " $gen_time_txt " . $lang['SEC']; @@ -51,7 +51,7 @@ if ($show_dbg_info) { $stat .= "  |  $gzip_text"; $stat .= '  |  ' . $lang['MEMORY']; - $stat .= humn_size($bb_cfg['mem_on_start'], 2) . ' / '; + $stat .= humn_size(config()->get('mem_on_start'), 2) . ' / '; $stat .= humn_size(sys('mem_peak'), 2) . ' / '; $stat .= humn_size(sys('mem'), 2); @@ -83,7 +83,7 @@ echo ' if (defined('REQUESTED_PAGE') && !defined('DISABLE_CACHING_OUTPUT')) { if (IS_GUEST === true) { - caching_output(true, 'store', REQUESTED_PAGE . '_guest_' . $bb_cfg['default_lang']); + caching_output(true, 'store', REQUESTED_PAGE . '_guest_' . config()->get('default_lang')); } } diff --git a/library/includes/page_header.php b/library/includes/page_header.php index 195bcec10..e3bdc3e12 100644 --- a/library/includes/page_header.php +++ b/library/includes/page_header.php @@ -16,7 +16,7 @@ if (defined('PAGE_HEADER_SENT')) { } // Parse and show the overall page header -global $page_cfg, $userdata, $user, $ads, $bb_cfg, $template, $lang, $images; +global $page_cfg, $userdata, $user, $ads, $template, $lang, $images; $logged_in = (int)!empty($userdata['session_logged_in']); @@ -52,7 +52,7 @@ if (defined('SHOW_ONLINE') && SHOW_ONLINE) { 'TOTAL_USERS_ONLINE' => ${$online_list}['stat'], 'LOGGED_IN_USER_LIST' => ${$online_list}['userlist'], 'USERS_ONLINE_COUNTS' => ${$online_list}['cnt'], - 'RECORD_USERS' => sprintf($lang['RECORD_ONLINE_USERS'], $bb_cfg['record_online_users'], bb_date($bb_cfg['record_online_date'])), + 'RECORD_USERS' => sprintf($lang['RECORD_ONLINE_USERS'], config()->get('record_online_users'), bb_date(config()->get('record_online_date'))), ]); } @@ -122,12 +122,12 @@ $template->assign_vars([ 'USER_OPTIONS_JS' => IS_GUEST ? '{}' : json_encode($user->opt_js, JSON_THROW_ON_ERROR), 'USE_TABLESORTER' => !empty($page_cfg['use_tablesorter']), - 'ALLOW_ROBOTS' => !$bb_cfg['board_disable'] && (!isset($page_cfg['allow_robots']) || $page_cfg['allow_robots'] === true), + 'ALLOW_ROBOTS' => !config()->get('board_disable') && (!isset($page_cfg['allow_robots']) || $page_cfg['allow_robots'] === true), 'META_DESCRIPTION' => !empty($page_cfg['meta_description']) ? trim(htmlCHR($page_cfg['meta_description'])) : '', - 'SITENAME' => $bb_cfg['sitename'], + 'SITENAME' => config()->get('sitename'), 'U_INDEX' => BB_ROOT . 'index.php', - 'T_INDEX' => sprintf($lang['FORUM_INDEX'], $bb_cfg['sitename']), + 'T_INDEX' => sprintf($lang['FORUM_INDEX'], config()->get('sitename')), 'IS_GUEST' => IS_GUEST, 'IS_USER' => IS_USER, @@ -138,9 +138,9 @@ $template->assign_vars([ 'FORUM_PATH' => FORUM_PATH, 'FULL_URL' => FULL_URL, - 'CURRENT_TIME' => sprintf($lang['CURRENT_TIME'], bb_date(TIMENOW, $bb_cfg['last_visit_date_format'], false)), - 'S_TIMEZONE' => preg_replace('/\(.*?\)/', '', sprintf($lang['ALL_TIMES'], $lang['TZ'][str_replace(',', '.', (float)$bb_cfg['board_timezone'])])), - 'BOARD_TIMEZONE' => $bb_cfg['board_timezone'], + 'CURRENT_TIME' => sprintf($lang['CURRENT_TIME'], bb_date(TIMENOW, config()->get('last_visit_date_format'), false)), + 'S_TIMEZONE' => preg_replace('/\(.*?\)/', '', sprintf($lang['ALL_TIMES'], $lang['TZ'][str_replace(',', '.', (float)config()->get('board_timezone'))])), + 'BOARD_TIMEZONE' => config()->get('board_timezone'), 'PM_INFO' => $pm_info, 'PRIVMSG_IMG' => $icon_pm, @@ -151,7 +151,7 @@ $template->assign_vars([ 'THIS_USER' => profile_url($userdata), 'THIS_AVATAR' => get_avatar($userdata['user_id'], $userdata['avatar_ext_id'], !bf($userdata['user_opt'], 'user_opt', 'dis_avatar')), 'SHOW_LOGIN_LINK' => !defined('IN_LOGIN'), - 'AUTOLOGIN_DISABLED' => !$bb_cfg['allow_autologin'], + 'AUTOLOGIN_DISABLED' => !config()->get('allow_autologin'), 'S_LOGIN_ACTION' => LOGIN_URL, 'U_CUR_DOWNLOADS' => PROFILE_URL . $userdata['user_id'], @@ -167,11 +167,11 @@ $template->assign_vars([ 'U_REGISTER' => 'profile.php?mode=register', 'U_SEARCH' => 'search.php', 'U_SEND_PASSWORD' => "profile.php?mode=sendpassword", - 'U_TERMS' => $bb_cfg['terms_and_conditions_url'], + 'U_TERMS' => config()->get('terms_and_conditions_url'), 'U_TRACKER' => 'tracker.php', - 'SHOW_SIDEBAR1' => !empty($bb_cfg['page']['show_sidebar1'][BB_SCRIPT]) || $bb_cfg['show_sidebar1_on_every_page'], - 'SHOW_SIDEBAR2' => !empty($bb_cfg['page']['show_sidebar2'][BB_SCRIPT]) || $bb_cfg['show_sidebar2_on_every_page'], + 'SHOW_SIDEBAR1' => !empty(config()->get('page.show_sidebar1')[BB_SCRIPT]) || config()->get('show_sidebar1_on_every_page'), + 'SHOW_SIDEBAR2' => !empty(config()->get('page.show_sidebar2')[BB_SCRIPT]) || config()->get('show_sidebar2_on_every_page'), 'HTML_AGREEMENT' => LANG_DIR . 'html/user_agreement.html', 'HTML_COPYRIGHT' => LANG_DIR . 'html/copyright_holders.html', @@ -185,11 +185,11 @@ $template->assign_vars([ 'DOWNLOAD_URL' => BB_ROOT . DL_URL, 'FORUM_URL' => BB_ROOT . FORUM_URL, 'GROUP_URL' => BB_ROOT . GROUP_URL, - 'LOGIN_URL' => $bb_cfg['login_url'], + 'LOGIN_URL' => config()->get('login_url'), 'NEWEST_URL' => '&view=newest#newest', - 'PM_URL' => $bb_cfg['pm_url'], + 'PM_URL' => config()->get('pm_url'), 'POST_URL' => BB_ROOT . POST_URL, - 'POSTING_URL' => $bb_cfg['posting_url'], + 'POSTING_URL' => config()->get('posting_url'), 'PROFILE_URL' => BB_ROOT . PROFILE_URL, 'BONUS_URL' => BB_ROOT . BONUS_URL, 'TOPIC_URL' => BB_ROOT . TOPIC_URL, @@ -208,7 +208,7 @@ $template->assign_vars([ 'U_WATCHED_TOPICS' => 'profile.php?mode=watch' ]); -if (!empty($bb_cfg['page']['show_torhelp'][BB_SCRIPT]) && !empty($userdata['torhelp'])) { +if (!empty(config()->get('page.show_torhelp')[BB_SCRIPT]) && !empty($userdata['torhelp'])) { $ignore_time = !empty($_COOKIE['torhelp']) ? (int)$_COOKIE['torhelp'] : 0; if (TIMENOW > $ignore_time) { @@ -249,6 +249,6 @@ $template->pparse('page_header'); define('PAGE_HEADER_SENT', true); -if (!$bb_cfg['gzip_compress']) { +if (!config()->get('gzip_compress')) { flush(); } diff --git a/library/includes/torrent_show_dl_list.php b/library/includes/torrent_show_dl_list.php index b5384f4ad..02e1f6f7b 100644 --- a/library/includes/torrent_show_dl_list.php +++ b/library/includes/torrent_show_dl_list.php @@ -21,12 +21,12 @@ $dl_users_div_style_overflow = "padding: 6px; height: $dl_users_overflow_div_hei $template->assign_vars(['DL_BUTTONS' => false]); -$count_mode = ($bb_cfg['bt_dl_list_only_count'] && !(@$_GET['dl'] === 'names')); +$count_mode = (config()->get('bt_dl_list_only_count') && !(@$_GET['dl'] === 'names')); -$have_dl_buttons_enabled = ($bb_cfg['bt_show_dl_but_will'] || $bb_cfg['bt_show_dl_but_down'] || $bb_cfg['bt_show_dl_but_compl'] || $bb_cfg['bt_show_dl_but_cancel']); -$dl_topic = ($t_data['topic_dl_type'] == TOPIC_DL_TYPE_DL && !($bb_cfg['bt_dl_list_only_1st_page'] && $start)); -$show_dl_list = ($dl_topic && ($bb_cfg['bt_show_dl_list'] || ($bb_cfg['allow_dl_list_names_mode'] && @$_GET['dl'] === 'names'))); -$show_dl_buttons = (!IS_GUEST && $dl_topic && $bb_cfg['bt_show_dl_list_buttons']); +$have_dl_buttons_enabled = (config()->get('bt_show_dl_but_will') || config()->get('bt_show_dl_but_down') || config()->get('bt_show_dl_but_compl') || config()->get('bt_show_dl_but_cancel')); +$dl_topic = ($t_data['topic_dl_type'] == TOPIC_DL_TYPE_DL && !(config()->get('bt_dl_list_only_1st_page') && $start)); +$show_dl_list = ($dl_topic && (config()->get('bt_show_dl_list') || (config()->get('allow_dl_list_names_mode') && @$_GET['dl'] === 'names'))); +$show_dl_buttons = (!IS_GUEST && $dl_topic && config()->get('bt_show_dl_list_buttons')); // link to clear DL-List $template->assign_vars(['S_DL_DELETE' => false]); @@ -99,7 +99,7 @@ if ($show_dl_list) { ]); } } - } elseif ($bb_cfg['bt_show_dl_list_buttons'] && $have_dl_buttons_enabled) { + } elseif (config()->get('bt_show_dl_list_buttons') && $have_dl_buttons_enabled) { $template->assign_block_vars('dl_list_none', []); } } @@ -107,10 +107,10 @@ if ($show_dl_list) { if ($show_dl_buttons) { $template->assign_vars([ 'DL_BUTTONS' => true, - 'DL_BUT_WILL' => $bb_cfg['bt_show_dl_but_will'], - 'DL_BUT_DOWN' => $bb_cfg['bt_show_dl_but_down'], - 'DL_BUT_COMPL' => $bb_cfg['bt_show_dl_but_compl'], - 'DL_BUT_CANCEL' => $bb_cfg['bt_show_dl_but_cancel'] + 'DL_BUT_WILL' => config()->get('bt_show_dl_but_will'), + 'DL_BUT_DOWN' => config()->get('bt_show_dl_but_down'), + 'DL_BUT_COMPL' => config()->get('bt_show_dl_but_compl'), + 'DL_BUT_CANCEL' => config()->get('bt_show_dl_but_cancel') ]); $dl_hidden_fields = ' diff --git a/library/includes/ucp/bonus.php b/library/includes/ucp/bonus.php index 6dfa707ac..4959b9b71 100644 --- a/library/includes/ucp/bonus.php +++ b/library/includes/ucp/bonus.php @@ -14,9 +14,9 @@ if (!defined('BB_ROOT')) { $user_id = $userdata['user_id']; $user_points = $userdata['user_points']; -if ($bb_cfg['seed_bonus_enabled'] && $bb_cfg['bonus_upload'] && $bb_cfg['bonus_upload_price']) { - $upload_row = unserialize($bb_cfg['bonus_upload']); - $price_row = unserialize($bb_cfg['bonus_upload_price']); +if (config()->get('seed_bonus_enabled') && config()->get('bonus_upload') && config()->get('bonus_upload_price')) { + $upload_row = unserialize(config()->get('bonus_upload')); + $price_row = unserialize(config()->get('bonus_upload_price')); } else { bb_die($lang['EXCHANGE_NOT']); } diff --git a/library/includes/ucp/email.php b/library/includes/ucp/email.php index 6cb8b94df..e64d57d1f 100644 --- a/library/includes/ucp/email.php +++ b/library/includes/ucp/email.php @@ -12,7 +12,7 @@ if (!defined('BB_ROOT')) { } // Is send through board enabled? No, return to index -if (!$bb_cfg['board_email_form']) { +if (!config()->get('board_email_form')) { redirect('index.php'); } diff --git a/library/includes/ucp/register.php b/library/includes/ucp/register.php index 5e101a310..53d5bae2b 100644 --- a/library/includes/ucp/register.php +++ b/library/includes/ucp/register.php @@ -16,7 +16,7 @@ array_deep($_POST, 'trim'); set_die_append_msg(); if (IS_ADMIN) { - $bb_cfg['reg_email_activation'] = false; + config()->set('reg_email_activation', false); $new_user = (int)request_var('admin', ''); if ($new_user) { @@ -50,17 +50,17 @@ switch ($mode) { if (!IS_ADMIN) { // IP limit - if ($bb_cfg['unique_ip']) { + if (config()->get('unique_ip')) { if ($users = DB()->fetch_row("SELECT user_id, username FROM " . BB_USERS . " WHERE user_reg_ip = '" . USER_IP . "' LIMIT 1")) { - bb_die(sprintf($lang['ALREADY_REG_IP'], '' . $users['username'] . '', $bb_cfg['tech_admin_email'])); + bb_die(sprintf($lang['ALREADY_REG_IP'], '' . $users['username'] . '', config()->get('tech_admin_email'))); } } // Disabling registration - if ($bb_cfg['new_user_reg_disabled'] || ($bb_cfg['reg_email_activation'] && !$bb_cfg['emailer']['enabled'])) { + if (config()->get('new_user_reg_disabled') || (config()->get('reg_email_activation') && !config()->get('emailer.enabled'))) { bb_die($lang['NEW_USER_REG_DISABLED']); } // Time limit - elseif ($bb_cfg['new_user_reg_restricted']) { - if (in_array(date('G'), $bb_cfg['new_user_reg_interval'], true)) { + elseif (config()->get('new_user_reg_restricted')) { + if (in_array(date('G'), config()->get('new_user_reg_interval'), true)) { bb_die($lang['REGISTERED_IN_TIME']); } } @@ -83,8 +83,8 @@ switch ($mode) { 'user_password' => '', 'user_email' => '', 'invite_code' => '', - 'user_timezone' => $bb_cfg['board_timezone'], - 'user_lang' => $bb_cfg['default_lang'], + 'user_timezone' => config()->get('board_timezone'), + 'user_lang' => config()->get('default_lang'), 'user_opt' => 0, 'avatar_ext_id' => 0 ]; @@ -101,13 +101,13 @@ switch ($mode) { // field => can_edit $profile_fields = [ 'user_active' => IS_ADMIN, - 'username' => (IS_ADMIN || $bb_cfg['allow_namechange']) && !IN_DEMO_MODE, + 'username' => (IS_ADMIN || config()->get('allow_namechange')) && !IN_DEMO_MODE, 'user_password' => !IN_DEMO_MODE, 'user_email' => !IN_DEMO_MODE, // should be after user_password - 'user_lang' => $bb_cfg['allow_change']['language'], - 'user_gender' => $bb_cfg['gender'], - 'user_birthday' => $bb_cfg['birthday_enabled'], - 'user_timezone' => $bb_cfg['allow_change']['timezone'], + 'user_lang' => config()->get('allow_change.language'), + 'user_gender' => config()->get('gender'), + 'user_birthday' => config()->get('birthday_enabled'), + 'user_timezone' => config()->get('allow_change.timezone'), 'user_opt' => true, 'avatar_ext_id' => true, 'user_icq' => true, @@ -152,7 +152,7 @@ switch ($mode) { } // Captcha -$need_captcha = ($mode == 'register' && !IS_ADMIN && !$bb_cfg['captcha']['disabled']); +$need_captcha = ($mode == 'register' && !IS_ADMIN && !config()->get('captcha.disabled')); if ($submit) { if ($need_captcha && !bb_captcha('check')) { @@ -203,12 +203,13 @@ foreach ($profile_fields as $field => $can_edit) { * Invite code (reg) */ case 'invite_code': - if ($bb_cfg['invites_system']['enabled']) { + if (config()->get('invites_system.enabled')) { $invite_code = $_POST['invite_code'] ?? ''; if ($submit) { - if (isset($bb_cfg['invites_system']['codes'][$invite_code])) { - if ($bb_cfg['invites_system']['codes'][$invite_code] !== 'permanent') { - if (TIMENOW > strtotime($bb_cfg['invites_system']['codes'][$invite_code])) { + $inviteCodes = config()->get('invites_system.codes'); + if (isset($inviteCodes[$invite_code])) { + if ($inviteCodes[$invite_code] !== 'permanent') { + if (TIMENOW > strtotime($inviteCodes[$invite_code])) { $errors[] = $lang['INVITE_EXPIRED']; } } @@ -264,7 +265,7 @@ foreach ($profile_fields as $field => $can_edit) { } $db_data['user_email'] = $email; } elseif ($email != $pr_data['user_email']) { - if ($bb_cfg['email_change_disabled'] && !$adm_edit && !IS_ADMIN) { + if (config()->get('email_change_disabled') && !$adm_edit && !IS_ADMIN) { $errors[] = $lang['EMAIL_CHANGING_DISABLED']; } if (!$cur_pass_valid) { @@ -273,7 +274,7 @@ foreach ($profile_fields as $field => $can_edit) { if (!$errors and $err = \TorrentPier\Validate::email($email)) { $errors[] = $err; } - if ($bb_cfg['reg_email_activation']) { + if (config()->get('reg_email_activation')) { $pr_data['user_active'] = 0; $db_data['user_active'] = 0; } @@ -336,10 +337,10 @@ foreach ($profile_fields as $field => $can_edit) { if (!empty($birthday_date['year'])) { if (strtotime($user_birthday) >= TIMENOW) { $errors[] = $lang['WRONG_BIRTHDAY_FORMAT']; - } elseif (bb_date(TIMENOW, 'Y', false) - $birthday_date['year'] > $bb_cfg['birthday_max_age']) { - $errors[] = sprintf($lang['BIRTHDAY_TO_HIGH'], $bb_cfg['birthday_max_age']); - } elseif (bb_date(TIMENOW, 'Y', false) - $birthday_date['year'] < $bb_cfg['birthday_min_age']) { - $errors[] = sprintf($lang['BIRTHDAY_TO_LOW'], $bb_cfg['birthday_min_age']); + } elseif (bb_date(TIMENOW, 'Y', false) - $birthday_date['year'] > config()->get('birthday_max_age')) { + $errors[] = sprintf($lang['BIRTHDAY_TO_HIGH'], config()->get('birthday_max_age')); + } elseif (bb_date(TIMENOW, 'Y', false) - $birthday_date['year'] < config()->get('birthday_min_age')) { + $errors[] = sprintf($lang['BIRTHDAY_TO_LOW'], config()->get('birthday_min_age')); } } @@ -357,16 +358,16 @@ foreach ($profile_fields as $field => $can_edit) { $update_user_opt = [ # 'user_opt_name' => ($reg_mode) ? #reg_value : #in_login_change - 'user_viewemail' => $reg_mode ? false : (IS_ADMIN || $bb_cfg['show_email_visibility_settings']), + 'user_viewemail' => $reg_mode ? false : (IS_ADMIN || config()->get('show_email_visibility_settings')), 'user_viewonline' => $reg_mode ? false : true, 'user_notify' => $reg_mode ? true : true, - 'user_notify_pm' => $reg_mode ? true : $bb_cfg['pm_notify_enabled'], + 'user_notify_pm' => $reg_mode ? true : config()->get('pm_notify_enabled'), 'user_porn_forums' => $reg_mode ? false : true, 'user_dls' => $reg_mode ? false : true, 'user_callseed' => $reg_mode ? true : true, 'user_retracker' => $reg_mode ? true : true, 'user_hide_torrent_client' => $reg_mode ? true : true, - 'user_hide_peer_country' => $reg_mode ? true : $bb_cfg['ip2country_settings']['enabled'], + 'user_hide_peer_country' => $reg_mode ? true : config()->get('ip2country_settings.enabled'), 'user_hide_peer_username' => $reg_mode ? false : true, ]; @@ -390,7 +391,7 @@ foreach ($profile_fields as $field => $can_edit) { if ($submit && !bf($pr_data['user_opt'], 'user_opt', 'dis_avatar')) { // Integration with MonsterID if (empty($_FILES['avatar']['name']) && !isset($_POST['delete_avatar']) && isset($_POST['use_monster_avatar'])) { - $monsterAvatar = new Arokettu\MonsterID\Monster($pr_data['user_email'], $bb_cfg['avatars']['max_height']); + $monsterAvatar = new Arokettu\MonsterID\Monster($pr_data['user_email'], config()->get('avatars.max_height')); $tempAvatar = tmpfile(); $tempAvatarPath = stream_get_meta_data($tempAvatar)['uri']; $monsterAvatar->writeToStream($tempAvatar); @@ -412,10 +413,10 @@ foreach ($profile_fields as $field => $can_edit) { delete_avatar($pr_data['user_id'], $pr_data['avatar_ext_id']); $pr_data['avatar_ext_id'] = 0; $db_data['avatar_ext_id'] = 0; - } elseif (!empty($_FILES['avatar']['name']) && $bb_cfg['avatars']['up_allowed']) { + } elseif (!empty($_FILES['avatar']['name']) && config()->get('avatars.up_allowed')) { $upload = new TorrentPier\Legacy\Common\Upload(); - if ($upload->init($bb_cfg['avatars'], $_FILES['avatar'], !isset($_POST['use_monster_avatar'])) and $upload->store('avatar', $pr_data)) { + if ($upload->init(config()->getSection('avatars'), $_FILES['avatar'], !isset($_POST['use_monster_avatar'])) and $upload->store('avatar', $pr_data)) { $pr_data['avatar_ext_id'] = $upload->file_ext_id; $db_data['avatar_ext_id'] = (int)$upload->file_ext_id; } else { @@ -423,7 +424,7 @@ foreach ($profile_fields as $field => $can_edit) { } } } - $tp_data['AVATARS_MAX_SIZE'] = humn_size($bb_cfg['avatars']['max_size']); + $tp_data['AVATARS_MAX_SIZE'] = humn_size(config()->get('avatars.max_size')); break; /** @@ -484,7 +485,7 @@ foreach ($profile_fields as $field => $can_edit) { if ($submit && $sig != $pr_data['user_sig']) { $sig = prepare_message($sig); - if (mb_strlen($sig, DEFAULT_CHARSET) > $bb_cfg['max_sig_chars']) { + if (mb_strlen($sig, DEFAULT_CHARSET) > config()->get('max_sig_chars')) { $errors[] = $lang['SIGNATURE_TOO_LONG']; } elseif (preg_match('#<(a|b|i|u|table|tr|td|img) #i', $sig) || preg_match('#(href|src|target|title)=#i', $sig)) { $errors[] = $lang['SIGNATURE_ERROR_HTML']; @@ -559,9 +560,10 @@ foreach ($profile_fields as $field => $can_edit) { $templates = isset($_POST['tpl_name']) ? (string)$_POST['tpl_name'] : $pr_data['tpl_name']; $templates = htmlCHR($templates); if ($submit && $templates != $pr_data['tpl_name']) { - $pr_data['tpl_name'] = $bb_cfg['tpl_name']; - $db_data['tpl_name'] = (string)$bb_cfg['tpl_name']; - foreach ($bb_cfg['templates'] as $folder => $name) { + $pr_data['tpl_name'] = config()->get('tpl_name'); + $db_data['tpl_name'] = (string)config()->get('tpl_name'); + $availableTemplates = config()->get('templates'); + foreach ($availableTemplates as $folder => $name) { if ($templates == $folder) { $pr_data['tpl_name'] = $templates; $db_data['tpl_name'] = (string)$templates; @@ -585,7 +587,7 @@ if ($submit && !$errors) { * Создание нового профиля */ if ($mode == 'register') { - if ($bb_cfg['reg_email_activation']) { + if (config()->get('reg_email_activation')) { $user_actkey = make_rand_str(ACTKEY_LENGTH); $db_data['user_active'] = 0; $db_data['user_actkey'] = $user_actkey; @@ -600,7 +602,7 @@ if ($submit && !$errors) { } if (!isset($db_data['tpl_name'])) { - $db_data['tpl_name'] = (string)$bb_cfg['tpl_name']; + $db_data['tpl_name'] = (string)config()->get('tpl_name'); } $sql_args = DB()->build_array('INSERT', $db_data); @@ -622,13 +624,13 @@ if ($submit && !$errors) { set_pr_die_append_msg($new_user_id); $message = $lang['ACCOUNT_ADDED']; } else { - if ($bb_cfg['reg_email_activation']) { + if (config()->get('reg_email_activation')) { $message = $lang['ACCOUNT_INACTIVE']; - $email_subject = sprintf($lang['EMAILER_SUBJECT']['USER_WELCOME_INACTIVE'], $bb_cfg['sitename']); + $email_subject = sprintf($lang['EMAILER_SUBJECT']['USER_WELCOME_INACTIVE'], config()->get('sitename')); $email_template = 'user_welcome_inactive'; } else { $message = $lang['ACCOUNT_ADDED']; - $email_subject = sprintf($lang['EMAILER_SUBJECT']['USER_WELCOME'], $bb_cfg['sitename']); + $email_subject = sprintf($lang['EMAILER_SUBJECT']['USER_WELCOME'], config()->get('sitename')); $email_template = 'user_welcome'; } @@ -640,7 +642,7 @@ if ($submit && !$errors) { $emailer->set_template($email_template, $user_lang); $emailer->assign_vars([ - 'WELCOME_MSG' => sprintf($lang['WELCOME_SUBJECT'], $bb_cfg['sitename']), + 'WELCOME_MSG' => sprintf($lang['WELCOME_SUBJECT'], config()->get('sitename')), 'USERNAME' => html_entity_decode($username), 'PASSWORD' => $new_pass, 'U_ACTIVATE' => make_url('profile.php?mode=activate&' . POST_USERS_URL . '=' . $new_user_id . '&act_key=' . $db_data['user_actkey']) @@ -728,12 +730,12 @@ $template->assign_vars([ 'LANGUAGE_SELECT' => \TorrentPier\Legacy\Common\Select::language($pr_data['user_lang'], 'user_lang'), 'TIMEZONE_SELECT' => \TorrentPier\Legacy\Common\Select::timezone($pr_data['user_timezone'], 'user_timezone'), - 'AVATAR_EXPLAIN' => sprintf($lang['AVATAR_EXPLAIN'], $bb_cfg['avatars']['max_width'], $bb_cfg['avatars']['max_height'], humn_size($bb_cfg['avatars']['max_size'])), + 'AVATAR_EXPLAIN' => sprintf($lang['AVATAR_EXPLAIN'], config()->get('avatars.max_width'), config()->get('avatars.max_height'), humn_size(config()->get('avatars.max_size'))), 'AVATAR_DISALLOWED' => bf($pr_data['user_opt'], 'user_opt', 'dis_avatar'), - 'AVATAR_DIS_EXPLAIN' => sprintf($lang['AVATAR_DISABLE'], $bb_cfg['terms_and_conditions_url']), + 'AVATAR_DIS_EXPLAIN' => sprintf($lang['AVATAR_DISABLE'], config()->get('terms_and_conditions_url')), 'AVATAR_IMG' => get_avatar($pr_data['user_id'], $pr_data['avatar_ext_id'], !bf($pr_data['user_opt'], 'user_opt', 'dis_avatar')), - 'SIGNATURE_EXPLAIN' => sprintf($lang['SIGNATURE_EXPLAIN'], $bb_cfg['max_sig_chars']), + 'SIGNATURE_EXPLAIN' => sprintf($lang['SIGNATURE_EXPLAIN'], config()->get('max_sig_chars')), 'SIG_DISALLOWED' => bf($pr_data['user_opt'], 'user_opt', 'dis_sig'), 'PR_USER_ID' => $pr_data['user_id'], diff --git a/library/includes/ucp/sendpasswd.php b/library/includes/ucp/sendpasswd.php index ab6c619dd..7660cb427 100644 --- a/library/includes/ucp/sendpasswd.php +++ b/library/includes/ucp/sendpasswd.php @@ -13,11 +13,11 @@ if (!defined('BB_ROOT')) { set_die_append_msg(); -if (!$bb_cfg['emailer']['enabled']) { +if (!config()->get('emailer.enabled')) { bb_die($lang['EMAILER_DISABLED']); } -$need_captcha = ($_GET['mode'] == 'sendpassword' && !IS_ADMIN && !$bb_cfg['captcha']['disabled']); +$need_captcha = ($_GET['mode'] == 'sendpassword' && !IS_ADMIN && !config()->get('captcha.disabled')); if (isset($_POST['submit'])) { if ($need_captcha && !bb_captcha('check')) { diff --git a/library/includes/ucp/topic_watch.php b/library/includes/ucp/topic_watch.php index d3355d406..c684cbabc 100644 --- a/library/includes/ucp/topic_watch.php +++ b/library/includes/ucp/topic_watch.php @@ -11,7 +11,7 @@ if (!defined('BB_ROOT')) { die(basename(__FILE__)); } -if (!$bb_cfg['topic_notify_enabled']) { +if (!config()->get('topic_notify_enabled')) { bb_die($lang['DISABLED']); } @@ -35,7 +35,7 @@ if (isset($_GET[POST_USERS_URL])) { } } $start = isset($_GET['start']) ? abs((int)$_GET['start']) : 0; -$per_page = $bb_cfg['topics_per_page']; +$per_page = config()->get('topics_per_page'); if (isset($_POST['topic_id_list'])) { $topic_ids = implode(",", $_POST['topic_id_list']); @@ -96,7 +96,7 @@ if ($watch_count > 0) { 'IS_UNREAD' => $is_unread, 'POLL' => (bool)$watch[$i]['topic_vote'], 'TOPIC_ICON' => get_topic_icon($watch[$i], $is_unread), - 'PAGINATION' => ($watch[$i]['topic_status'] == TOPIC_MOVED) ? '' : build_topic_pagination(TOPIC_URL . $watch[$i]['topic_id'], $watch[$i]['topic_replies'], $bb_cfg['posts_per_page']) + 'PAGINATION' => ($watch[$i]['topic_status'] == TOPIC_MOVED) ? '' : build_topic_pagination(TOPIC_URL . $watch[$i]['topic_id'], $watch[$i]['topic_replies'], config()->get('posts_per_page')) ]); } diff --git a/library/includes/ucp/viewprofile.php b/library/includes/ucp/viewprofile.php index 7dbc44541..3d4605e68 100644 --- a/library/includes/ucp/viewprofile.php +++ b/library/includes/ucp/viewprofile.php @@ -50,7 +50,7 @@ if (IS_ADMIN) { } if (bf($profiledata['user_opt'], 'user_opt', 'user_viewemail') || $profiledata['user_id'] == $userdata['user_id'] || IS_ADMIN) { - $email_uri = ($bb_cfg['board_email_form']) ? 'profile.php?mode=email&' . POST_USERS_URL . '=' . $profiledata['user_id'] : 'mailto:' . $profiledata['user_email']; + $email_uri = (config()->get('board_email_form')) ? 'profile.php?mode=email&' . POST_USERS_URL . '=' . $profiledata['user_id'] : 'mailto:' . $profiledata['user_email']; $email = '' . $profiledata['user_email'] . ''; } else { $email = ''; @@ -62,7 +62,7 @@ if (bf($profiledata['user_opt'], 'user_opt', 'user_viewemail') || $profiledata[' $profile_user_id = ($profiledata['user_id'] == $userdata['user_id']); -$signature = ($bb_cfg['allow_sig'] && $profiledata['user_sig']) ? $profiledata['user_sig'] : ''; +$signature = (config()->get('allow_sig') && $profiledata['user_sig']) ? $profiledata['user_sig'] : ''; if (bf($profiledata['user_opt'], 'user_opt', 'dis_sig')) { if ($profile_user_id) { @@ -75,7 +75,7 @@ if (bf($profiledata['user_opt'], 'user_opt', 'dis_sig')) { } // Null ratio -if ($bb_cfg['ratio_null_enabled'] && $btu = get_bt_userdata($profiledata['user_id'])) { +if (config()->get('ratio_null_enabled') && $btu = get_bt_userdata($profiledata['user_id'])) { $template->assign_vars(['NULLED_RATIO' => $btu['ratio_nulled']]); } @@ -110,10 +110,10 @@ $template->assign_vars([ 'SKYPE' => $profiledata['user_skype'], 'TWITTER' => $profiledata['user_twitter'], 'USER_POINTS' => $profiledata['user_points'], - 'GENDER' => $bb_cfg['gender'] ? $lang['GENDER_SELECT'][$profiledata['user_gender']] : '', - 'BIRTHDAY' => ($bb_cfg['birthday_enabled'] && !empty($profiledata['user_birthday']) && $profiledata['user_birthday'] != '1900-01-01') ? $profiledata['user_birthday'] : '', + 'GENDER' => config()->get('gender') ? $lang['GENDER_SELECT'][$profiledata['user_gender']] : '', + 'BIRTHDAY' => (config()->get('birthday_enabled') && !empty($profiledata['user_birthday']) && $profiledata['user_birthday'] != '1900-01-01') ? $profiledata['user_birthday'] : '', 'BIRTHDAY_ICON' => user_birthday_icon($profiledata['user_birthday'], $profiledata['user_id']), - 'AGE' => ($bb_cfg['birthday_enabled'] && !empty($profiledata['user_birthday']) && $profiledata['user_birthday'] != '1900-01-01') ? birthday_age($profiledata['user_birthday']) : '', + 'AGE' => (config()->get('birthday_enabled') && !empty($profiledata['user_birthday']) && $profiledata['user_birthday'] != '1900-01-01') ? birthday_age($profiledata['user_birthday']) : '', 'L_VIEWING_PROFILE' => sprintf($lang['VIEWING_USER_PROFILE'], $profiledata['username']), 'L_MY_PROFILE' => sprintf($lang['VIEWING_MY_PROFILE'], 'profile.php?mode=editprofile'), diff --git a/library/language/source/html/sidebar2.html b/library/language/source/html/sidebar2.html index 08a4bdf20..168ec84a7 100644 --- a/library/language/source/html/sidebar2.html +++ b/library/language/source/html/sidebar2.html @@ -7,5 +7,5 @@
    • style/templates/default/page_footer.tpl

    - To disable this sidebar, set the variable $bb_cfg['page']['show_sidebar2'] in file config.php to false. + To disable this sidebar, set the variable page.show_sidebar2 in file config.php to false. diff --git a/login.php b/login.php index 66bf544df..eb45e7109 100644 --- a/login.php +++ b/login.php @@ -63,7 +63,7 @@ $login_password = $_POST['login_password'] ?? ''; $need_captcha = false; if (!$mod_admin_login) { $need_captcha = CACHE('bb_login_err')->get('l_err_' . USER_IP); - if ($need_captcha < $bb_cfg['invalid_logins']) { + if ($need_captcha < config()->get('invalid_logins')) { $need_captcha = false; } } @@ -80,13 +80,13 @@ if (isset($_POST['login'])) { } // Captcha - if ($need_captcha && !$bb_cfg['captcha']['disabled'] && !bb_captcha('check')) { + if ($need_captcha && !config()->get('captcha.disabled') && !bb_captcha('check')) { $login_errors[] = $lang['CAPTCHA_WRONG']; } if (!$login_errors) { if ($user->login($_POST, $mod_admin_login)) { - $redirect_url = (defined('FIRST_LOGON')) ? $bb_cfg['first_logon_redirect_url'] : $redirect_url; + $redirect_url = (defined('FIRST_LOGON')) ? config()->get('first_logon_redirect_url') : $redirect_url; // Reset when entering the correct login/password combination CACHE('bb_login_err')->rm('l_err_' . USER_IP); @@ -101,7 +101,7 @@ if (isset($_POST['login'])) { if (!$mod_admin_login) { $login_err = CACHE('bb_login_err')->get('l_err_' . USER_IP); - if ($login_err > $bb_cfg['invalid_logins']) { + if ($login_err > config()->get('invalid_logins')) { $need_captcha = true; } CACHE('bb_login_err')->set('l_err_' . USER_IP, ($login_err + 1), 3600); @@ -118,7 +118,7 @@ if (IS_GUEST || $mod_admin_login) { 'ERROR_MESSAGE' => implode('
    ', $login_errors), 'ADMIN_LOGIN' => $mod_admin_login, 'REDIRECT_URL' => htmlCHR($redirect_url), - 'CAPTCHA_HTML' => ($need_captcha && !$bb_cfg['captcha']['disabled']) ? bb_captcha('get') : '', + 'CAPTCHA_HTML' => ($need_captcha && !config()->get('captcha.disabled')) ? bb_captcha('get') : '', 'PAGE_TITLE' => $lang['LOGIN'], 'S_LOGIN_ACTION' => LOGIN_URL ]); diff --git a/memberlist.php b/memberlist.php index 2182a2a2d..e70cfc0e3 100644 --- a/memberlist.php +++ b/memberlist.php @@ -54,26 +54,26 @@ $select_sort_role .= ''; switch ($mode) { case 'username': - $order_by = "username $sort_order LIMIT $start, " . $bb_cfg['topics_per_page']; + $order_by = "username $sort_order LIMIT $start, " . config()->get('topics_per_page'); break; case 'location': - $order_by = "user_from $sort_order LIMIT $start, " . $bb_cfg['topics_per_page']; + $order_by = "user_from $sort_order LIMIT $start, " . config()->get('topics_per_page'); break; case 'posts': - $order_by = "user_posts $sort_order LIMIT $start, " . $bb_cfg['topics_per_page']; + $order_by = "user_posts $sort_order LIMIT $start, " . config()->get('topics_per_page'); break; case 'email': - $order_by = "user_email $sort_order LIMIT $start, " . $bb_cfg['topics_per_page']; + $order_by = "user_email $sort_order LIMIT $start, " . config()->get('topics_per_page'); break; case 'website': - $order_by = "user_website $sort_order LIMIT $start, " . $bb_cfg['topics_per_page']; + $order_by = "user_website $sort_order LIMIT $start, " . config()->get('topics_per_page'); break; case 'topten': $order_by = "user_posts $sort_order LIMIT 10"; break; case 'joined': default: - $order_by = "user_regdate $sort_order LIMIT $start, " . $bb_cfg['topics_per_page']; + $order_by = "user_regdate $sort_order LIMIT $start, " . config()->get('topics_per_page'); break; } @@ -134,7 +134,7 @@ if ($mode != 'topten') { } if ($total = DB()->sql_fetchrow($result)) { $total_members = $total['total']; - generate_pagination($paginationurl, $total_members, $bb_cfg['topics_per_page'], $start); + generate_pagination($paginationurl, $total_members, config()->get('topics_per_page'), $start); } DB()->sql_freeresult($result); } diff --git a/modcp.php b/modcp.php index 33a578ac7..63b059130 100644 --- a/modcp.php +++ b/modcp.php @@ -223,16 +223,16 @@ switch ($mode) { $result = \TorrentPier\Legacy\Admin\Common::topic_delete($req_topics, $forum_id); //Обновление кеша новостей на главной - $news_forums = array_flip(explode(',', $bb_cfg['latest_news_forum_id'])); - if (isset($news_forums[$forum_id]) && $bb_cfg['show_latest_news'] && $result) { + $news_forums = array_flip(explode(',', config()->get('latest_news_forum_id'))); + if (isset($news_forums[$forum_id]) && config()->get('show_latest_news') && $result) { $datastore->enqueue([ 'latest_news' ]); $datastore->update('latest_news'); } - $net_forums = array_flip(explode(',', $bb_cfg['network_news_forum_id'])); - if (isset($net_forums[$forum_id]) && $bb_cfg['show_network_news'] && $result) { + $net_forums = array_flip(explode(',', config()->get('network_news_forum_id'))); + if (isset($net_forums[$forum_id]) && config()->get('show_network_news') && $result) { $datastore->enqueue([ 'network_news' ]); @@ -258,16 +258,16 @@ switch ($mode) { $result = \TorrentPier\Legacy\Admin\Common::topic_move($req_topics, $new_forum_id, $forum_id, isset($_POST['move_leave_shadow']), isset($_POST['insert_bot_msg']), $_POST['reason_move_bot']); //Обновление кеша новостей на главной - $news_forums = array_flip(explode(',', $bb_cfg['latest_news_forum_id'])); - if ((isset($news_forums[$forum_id]) || isset($news_forums[$new_forum_id])) && $bb_cfg['show_latest_news'] && $result) { + $news_forums = array_flip(explode(',', config()->get('latest_news_forum_id'))); + if ((isset($news_forums[$forum_id]) || isset($news_forums[$new_forum_id])) && config()->get('show_latest_news') && $result) { $datastore->enqueue([ 'latest_news' ]); $datastore->update('latest_news'); } - $net_forums = array_flip(explode(',', $bb_cfg['network_news_forum_id'])); - if ((isset($net_forums[$forum_id]) || isset($net_forums[$new_forum_id])) && $bb_cfg['show_network_news'] && $result) { + $net_forums = array_flip(explode(',', config()->get('network_news_forum_id'))); + if ((isset($net_forums[$forum_id]) || isset($net_forums[$new_forum_id])) && config()->get('show_network_news') && $result) { $datastore->enqueue([ 'network_news' ]); @@ -557,7 +557,7 @@ switch ($mode) { $poster = $postrow[$i]['username']; $poster_rank = $postrow[$i]['user_rank']; - $post_date = bb_date($postrow[$i]['post_time'], $bb_cfg['post_date_format']); + $post_date = bb_date($postrow[$i]['post_time'], config()->get('post_date_format')); $message = $postrow[$i]['post_text']; diff --git a/playback_m3u.php b/playback_m3u.php index 3bf98fbd6..0cdcc3115 100644 --- a/playback_m3u.php +++ b/playback_m3u.php @@ -11,7 +11,7 @@ define('BB_SCRIPT', 'playback_m3u'); require __DIR__ . '/common.php'; -if (!$bb_cfg['torr_server']['enabled']) { +if (!config()->get('torr_server.enabled')) { redirect('index.php'); } @@ -22,7 +22,7 @@ $validFormats = [ ]; // Start session management -$user->session_start(['req_login' => $bb_cfg['torr_server']['disable_for_guest']]); +$user->session_start(['req_login' => config()->get('torr_server.disable_for_guest')]); // Disable robots indexing $page_cfg['allow_robots'] = false; diff --git a/poll.php b/poll.php index f64d04b70..7181b3f4e 100644 --- a/poll.php +++ b/poll.php @@ -47,8 +47,8 @@ if ($mode != 'poll_vote') { // Checking the ability to make changes if ($mode == 'poll_delete') { - if ($t_data['topic_time'] < TIMENOW - $bb_cfg['poll_max_days'] * 86400) { - bb_die(sprintf($lang['NEW_POLL_DAYS'], $bb_cfg['poll_max_days'])); + if ($t_data['topic_time'] < TIMENOW - config()->get('poll_max_days') * 86400) { + bb_die(sprintf($lang['NEW_POLL_DAYS'], config()->get('poll_max_days'))); } if (!IS_ADMIN && ($t_data['topic_vote'] != POLL_FINISHED)) { bb_die($lang['CANNOT_DELETE_POLL']); diff --git a/posting.php b/posting.php index 39d44c373..b41db5f6e 100644 --- a/posting.php +++ b/posting.php @@ -221,7 +221,7 @@ if (!$is_auth[$is_auth_type]) { } if ($mode == 'new_rel') { - if ($tor_status = implode(',', $bb_cfg['tor_cannot_new'])) { + if ($tor_status = implode(',', config()->get('tor_cannot_new'))) { $sql = DB()->fetch_rowset("SELECT t.topic_title, t.topic_id, tor.tor_status FROM " . BB_BT_TORRENTS . " tor, " . BB_TOPICS . " t WHERE poster_id = {$userdata['user_id']} @@ -232,7 +232,7 @@ if ($mode == 'new_rel') { $topics = ''; foreach ($sql as $row) { - $topics .= $bb_cfg['tor_icons'][$row['tor_status']] . '' . $row['topic_title'] . '
    '; + $topics .= config()->get('tor_icons')[$row['tor_status']] . '' . $row['topic_title'] . '
    '; } if ($topics && !(IS_SUPER_ADMIN && !empty($_REQUEST['edit_tpl']))) { bb_die($topics . $lang['UNEXECUTED_RELEASE']); @@ -243,9 +243,9 @@ if ($mode == 'new_rel') { } // Disallowed release editing with a certain status -if (!empty($bb_cfg['tor_cannot_edit']) && $post_info['allow_reg_tracker'] && $post_data['first_post'] && !IS_AM) { - if ($tor_status = DB()->fetch_row("SELECT tor_status FROM " . BB_BT_TORRENTS . " WHERE topic_id = $topic_id AND forum_id = $forum_id AND tor_status IN(" . implode(',', $bb_cfg['tor_cannot_edit']) . ") LIMIT 1")) { - bb_die($lang['NOT_EDIT_TOR_STATUS'] . ': ' . $bb_cfg['tor_icons'][$tor_status['tor_status']] . ' ' . $lang['TOR_STATUS_NAME'][$tor_status['tor_status']] . '.'); +if (!empty(config()->get('tor_cannot_edit')) && $post_info['allow_reg_tracker'] && $post_data['first_post'] && !IS_AM) { + if ($tor_status = DB()->fetch_row("SELECT tor_status FROM " . BB_BT_TORRENTS . " WHERE topic_id = $topic_id AND forum_id = $forum_id AND tor_status IN(" . implode(',', config()->get('tor_cannot_edit')) . ") LIMIT 1")) { + bb_die($lang['NOT_EDIT_TOR_STATUS'] . ': ' . config()->get('tor_icons')[$tor_status['tor_status']] . ' ' . $lang['TOR_STATUS_NAME'][$tor_status['tor_status']] . '.'); } } @@ -281,7 +281,7 @@ if (!IS_GUEST && $mode != 'newtopic' && ($submit || $preview || $mode == 'quote' AND pt.post_id = p.post_id AND p.post_time > $topic_last_read ORDER BY p.post_time - LIMIT " . $bb_cfg['posts_per_page']; + LIMIT " . config()->get('posts_per_page'); if ($rowset = DB()->fetch_rowset($sql)) { $topic_has_new_posts = true; @@ -291,7 +291,7 @@ if (!IS_GUEST && $mode != 'newtopic' && ($submit || $preview || $mode == 'quote' 'ROW_CLASS' => !($i % 2) ? 'row1' : 'row2', 'POSTER' => profile_url($row), 'POSTER_NAME_JS' => addslashes($row['username']), - 'POST_DATE' => '' . bb_date($row['post_time'], $bb_cfg['post_date_format']) . '', + 'POST_DATE' => '' . bb_date($row['post_time'], config()->get('post_date_format')) . '', 'MESSAGE' => get_parsed_post($row) ]); } @@ -374,9 +374,9 @@ if (($delete || $mode == 'delete') && !$confirm) { set_tracks(COOKIE_TOPIC, $tracking_topics, $topic_id); } - if (defined('TORRENT_ATTACH_ID') && $bb_cfg['bt_newtopic_auto_reg'] && !$error_msg) { + if (defined('TORRENT_ATTACH_ID') && config()->get('bt_newtopic_auto_reg') && !$error_msg) { if (!DB()->fetch_row("SELECT attach_id FROM " . BB_BT_TORRENTS . " WHERE attach_id = " . TORRENT_ATTACH_ID)) { - if ($bb_cfg['premod']) { + if (config()->get('premod')) { // Getting a list of forum ids starting with "parent" $forum_parent = $forum_id; if ($post_info['forum_parent']) { @@ -468,7 +468,7 @@ if ($refresh || $error_msg || ($submit && $topic_has_new_posts)) { $message = '[quote="' . $quote_username . '"][qpost=' . $post_info['post_id'] . ']' . $message . '[/quote]'; // hide user passkey - $message = preg_replace('#(?<=[\?&;]' . $bb_cfg['passkey_key'] . '=)[a-zA-Z0-9]#', 'passkey', $message); + $message = preg_replace('#(?<=[\?&;]' . config()->get('passkey_key') . '=)[a-zA-Z0-9]#', 'passkey', $message); // hide sid $message = preg_replace('#(?<=[\?&;]sid=)[a-zA-Z0-9]#', 'sid', $message); @@ -618,7 +618,7 @@ $template->assign_vars([ 'U_VIEW_FORUM' => FORUM_URL . $forum_id, 'USERNAME' => @$username, - 'CAPTCHA_HTML' => (IS_GUEST && !$bb_cfg['captcha']['disabled']) ? bb_captcha('get') : '', + 'CAPTCHA_HTML' => (IS_GUEST && !config()->get('captcha.disabled')) ? bb_captcha('get') : '', 'SUBJECT' => $subject, 'MESSAGE' => $message, diff --git a/privmsg.php b/privmsg.php index 5bd56d1b6..42b47d1c1 100644 --- a/privmsg.php +++ b/privmsg.php @@ -24,7 +24,7 @@ $page_cfg['load_tpl_vars'] = [ // // Is PM disabled? // -if ($bb_cfg['privmsg_disable']) { +if (config()->get('privmsg_disable')) { bb_die('PM_DISABLED'); } @@ -59,13 +59,13 @@ $user->session_start(['req_login' => true]); $template->assign_vars([ 'IN_PM' => true, - 'QUICK_REPLY' => $bb_cfg['show_quick_reply'] && $folder == 'inbox' && $mode == 'read', + 'QUICK_REPLY' => config()->get('show_quick_reply') && $folder == 'inbox' && $mode == 'read', ]); // // Set mode for quick reply // -if (empty($mode) && $bb_cfg['show_quick_reply'] && $folder == 'inbox' && $preview) { +if (empty($mode) && config()->get('show_quick_reply') && $folder == 'inbox' && $preview) { $mode = 'reply'; } @@ -206,7 +206,7 @@ if ($mode == 'read') { } if ($sent_info = DB()->sql_fetchrow($result)) { - if ($bb_cfg['max_sentbox_privmsgs'] && $sent_info['sent_items'] >= $bb_cfg['max_sentbox_privmsgs']) { + if (config()->get('max_sentbox_privmsgs') && $sent_info['sent_items'] >= config()->get('max_sentbox_privmsgs')) { $sql = "SELECT privmsgs_id FROM " . BB_PRIVMSGS . " WHERE privmsgs_type = " . PRIVMSGS_SENT_MAIL . " AND privmsgs_date = " . $sent_info['oldest_post_time'] . " @@ -604,7 +604,7 @@ if ($mode == 'read') { } if ($saved_info = DB()->sql_fetchrow($result)) { - if ($bb_cfg['max_savebox_privmsgs'] && $saved_info['savebox_items'] >= $bb_cfg['max_savebox_privmsgs']) { + if (config()->get('max_savebox_privmsgs') && $saved_info['savebox_items'] >= config()->get('max_savebox_privmsgs')) { $sql = "SELECT privmsgs_id FROM " . BB_PRIVMSGS . " WHERE ( ( privmsgs_to_userid = " . $userdata['user_id'] . " AND privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . " ) @@ -749,7 +749,7 @@ if ($mode == 'read') { $last_post_time = $db_row['last_post_time']; $current_time = TIMENOW; - if (($current_time - $last_post_time) < $bb_cfg['flood_interval']) { + if (($current_time - $last_post_time) < config()->get('flood_interval')) { bb_die($lang['FLOOD_ERROR']); } } @@ -802,11 +802,11 @@ if ($mode == 'read') { } // Check smilies limit - if ($bb_cfg['max_smilies_pm']) { - $count_smilies = substr_count(bbcode2html($privmsg_message), 'get('pm_notify_enabled')) { // Sending email $emailer = new TorrentPier\Emailer(); @@ -1252,7 +1252,7 @@ if ($mode == 'read') { $msg_days = 0; } - $sql .= $limit_msg_time . " ORDER BY pm.privmsgs_date DESC LIMIT $start, " . $bb_cfg['topics_per_page']; + $sql .= $limit_msg_time . " ORDER BY pm.privmsgs_date DESC LIMIT $start, " . config()->get('topics_per_page'); $sql_all_tot = $sql_tot; $sql_tot .= $limit_msg_time_total; @@ -1308,11 +1308,11 @@ if ($mode == 'read') { // Output data for inbox status // $box_limit_img_length = $box_limit_percent = $l_box_size_status = ''; - $max_pm = ($folder != 'outbox') ? $bb_cfg["max_{$folder}_privmsgs"] : null; + $max_pm = ($folder != 'outbox') ? config()->get("max_{$folder}_privmsgs") : null; if ($max_pm) { $box_limit_percent = min(round(($pm_all_total / $max_pm) * 100), 100); - $box_limit_img_length = min(round(($pm_all_total / $max_pm) * $bb_cfg['privmsg_graphic_length']), $bb_cfg['privmsg_graphic_length']); + $box_limit_img_length = min(round(($pm_all_total / $max_pm) * config()->get('privmsg_graphic_length')), config()->get('privmsg_graphic_length')); $box_limit_remain = max(($max_pm - $pm_all_total), 0); $template->assign_var('PM_BOX_SIZE_INFO'); @@ -1410,7 +1410,7 @@ if ($mode == 'read') { ]); } while ($row = DB()->sql_fetchrow($result)); - generate_pagination(PM_URL . "?folder=$folder", $pm_total, $bb_cfg['topics_per_page'], $start); + generate_pagination(PM_URL . "?folder=$folder", $pm_total, config()->get('topics_per_page'), $start); } else { $template->assign_block_vars('switch_no_messages', []); } diff --git a/search.php b/search.php index 5e85b5940..b0d9bb977 100644 --- a/search.php +++ b/search.php @@ -20,7 +20,7 @@ $page_cfg['load_tpl_vars'] = [ ]; // Start session management -$user->session_start(array('req_login' => $bb_cfg['disable_search_for_guest'])); +$user->session_start(array('req_login' => config()->get('disable_search_for_guest'))); set_die_append_msg(); @@ -289,7 +289,7 @@ if (empty($_GET) && empty($_POST)) { 'MY_TOPICS_ID' => 'my_topics', 'MY_TOPICS_CHBOX' => build_checkbox($my_topics_key, $lang['SEARCH_MY_TOPICS'], $my_topics_val, true, null, 'my_topics'), - 'TITLE_ONLY_CHBOX' => build_checkbox($title_only_key, $lang['SEARCH_TITLES_ONLY'], true, $bb_cfg['disable_ft_search_in_posts']), + 'TITLE_ONLY_CHBOX' => build_checkbox($title_only_key, $lang['SEARCH_TITLES_ONLY'], true, config()->get('disable_ft_search_in_posts')), 'ALL_WORDS_CHBOX' => build_checkbox($all_words_key, $lang['SEARCH_ALL_WORDS'], true), 'DL_CANCEL_CHBOX' => build_checkbox($dl_cancel_key, $lang['SEARCH_DL_CANCEL'], $dl_cancel_val, IS_GUEST, 'dlCancel'), 'DL_COMPL_CHBOX' => build_checkbox($dl_compl_key, $lang['SEARCH_DL_COMPLETE'], $dl_compl_val, IS_GUEST, 'dlComplete'), @@ -421,7 +421,7 @@ $prev_days = ($time_val != $search_all); $new_topics = (!IS_GUEST && ($new_topics_val || isset($_GET['newposts']))); $my_topics = ($poster_id_val && $my_topics_val); $my_posts = ($poster_id_val && !$my_topics_val); -$title_match = ($text_match_sql && ($title_only_val || $bb_cfg['disable_ft_search_in_posts'])); +$title_match = ($text_match_sql && ($title_only_val || config()->get('disable_ft_search_in_posts'))); // "Display as" mode (posts or topics) $post_mode = (!$dl_search && ($display_as_val == $as_posts || isset($_GET['search_author']))); @@ -433,7 +433,7 @@ $SQL = DB()->get_empty_sql_array(); if ($post_mode) { $order = $order_opt[$order_val]['sql']; $sort = $sort_opt[$sort_val]['sql']; - $per_page = $bb_cfg['posts_per_page']; + $per_page = config()->get('posts_per_page'); $display_as_val = $as_posts; // Run initial search for post_ids @@ -593,7 +593,7 @@ if ($post_mode) { 'POSTER_ID' => $post['poster_id'], 'POSTER' => profile_url($post), 'POST_ID' => $post['post_id'], - 'POST_DATE' => bb_date($post['post_time'], $bb_cfg['post_date_format']), + 'POST_DATE' => bb_date($post['post_time'], config()->get('post_date_format')), 'IS_UNREAD' => is_unread($post['post_time'], $topic_id, $forum_id), 'MESSAGE' => $message, 'POSTED_AFTER' => '', @@ -612,7 +612,7 @@ if ($post_mode) { else { $order = $order_opt[$order_val]['sql']; $sort = $sort_opt[$sort_val]['sql']; - $per_page = $bb_cfg['topics_per_page']; + $per_page = config()->get('topics_per_page'); $display_as_val = $as_topics; // Run initial search for topic_ids @@ -733,7 +733,7 @@ else { // Build SQL for displaying topics $SQL = DB()->get_empty_sql_array(); - $join_dl = ($bb_cfg['show_dl_status_in_search'] && !IS_GUEST); + $join_dl = (config()->get('show_dl_status_in_search') && !IS_GUEST); $SQL['SELECT'][] = " t.*, t.topic_poster AS first_user_id, u1.user_rank AS first_user_rank, @@ -790,7 +790,7 @@ else { 'TOPIC_TITLE' => $wordCensor->censorString($topic['topic_title']), 'IS_UNREAD' => $is_unread, 'TOPIC_ICON' => get_topic_icon($topic, $is_unread), - 'PAGINATION' => $moved ? '' : build_topic_pagination(TOPIC_URL . $topic_id, $topic['topic_replies'], $bb_cfg['posts_per_page']), + 'PAGINATION' => $moved ? '' : build_topic_pagination(TOPIC_URL . $topic_id, $topic['topic_replies'], config()->get('posts_per_page')), 'REPLIES' => $moved ? '' : $topic['topic_replies'], 'ATTACH' => $topic['topic_attachment'], 'STATUS' => $topic['topic_status'], @@ -888,15 +888,13 @@ function fetch_search_ids($sql, $search_type = SEARCH_TYPE_POST) function prevent_huge_searches($SQL) { - global $bb_cfg; - - if ($bb_cfg['limit_max_search_results']) { + if (config()->get('limit_max_search_results')) { $SQL['select_options'][] = 'SQL_CALC_FOUND_ROWS'; $SQL['ORDER BY'] = []; $SQL['LIMIT'] = array('0'); if (DB()->query($SQL) and $row = DB()->fetch_row("SELECT FOUND_ROWS() AS rows_count")) { - if ($row['rows_count'] > $bb_cfg['limit_max_search_results']) { + if ($row['rows_count'] > config()->get('limit_max_search_results')) { # bb_log(str_compact(DB()->build_sql($SQL)) ." [{$row['rows_count']} rows]". LOG_LF, 'sql_huge_search'); bb_die('Too_many_search_results'); } diff --git a/src/Censor.php b/src/Censor.php index 5b4d00a73..5d564240e 100644 --- a/src/Censor.php +++ b/src/Censor.php @@ -34,9 +34,9 @@ class Censor */ public function __construct() { - global $bb_cfg, $datastore; + global $datastore; - if (!$bb_cfg['use_word_censor']) { + if (!config()->get('use_word_censor')) { return; } diff --git a/src/Config.php b/src/Config.php index 2490e94c3..9d39668b8 100644 --- a/src/Config.php +++ b/src/Config.php @@ -11,7 +11,7 @@ namespace TorrentPier; /** * Configuration management class - * + * * Encapsulates the global $bb_cfg array and provides methods to access configuration values */ class Config @@ -179,4 +179,4 @@ class Config { throw new \Exception("Cannot unserialize a singleton."); } -} \ No newline at end of file +} diff --git a/src/Dev.php b/src/Dev.php index e1539eb03..0ad193880 100644 --- a/src/Dev.php +++ b/src/Dev.php @@ -67,13 +67,11 @@ class Dev */ private function getBugsnag(): void { - global $bb_cfg; - - if (!$bb_cfg['bugsnag']['enabled']) { + if (!config()->get('bugsnag.enabled')) { return; } - $bugsnag = Client::make($bb_cfg['bugsnag']['api_key']); + $bugsnag = Client::make(config()->get('bugsnag.api_key')); $this->whoops->pushHandler(function ($e) use ($bugsnag) { $bugsnag->notifyException($e); }); @@ -86,9 +84,7 @@ class Dev */ private function getTelegramSender(): void { - global $bb_cfg; - - if (!$bb_cfg['telegram_sender']['enabled']) { + if (!config()->get('telegram_sender.enabled')) { return; } @@ -96,7 +92,7 @@ class Dev $telegramSender->loggerOnly(true); $telegramSender->setLogger((new Logger( APP_NAME, - [(new TelegramHandler($bb_cfg['telegram_sender']['token'], (int)$bb_cfg['telegram_sender']['chat_id'], timeout: (int)$bb_cfg['telegram_sender']['timeout'])) + [(new TelegramHandler(config()->get('telegram_sender.token'), (int)config()->get('telegram_sender.chat_id'), timeout: (int)config()->get('telegram_sender.timeout'))) ->setFormatter(new TelegramFormatter())] ))); $this->whoops->pushHandler($telegramSender); @@ -109,13 +105,11 @@ class Dev */ private function getWhoopsOnPage(): void { - global $bb_cfg; - /** * Show errors on page */ $prettyPageHandler = new PrettyPageHandler(); - foreach ($bb_cfg['whoops']['blacklist'] as $key => $secrets) { + foreach (config()->get('whoops.blacklist', []) as $key => $secrets) { foreach ($secrets as $secret) { $prettyPageHandler->blacklist($key, $secret); } @@ -163,10 +157,8 @@ class Dev */ private function getWhoopsPlaceholder(): void { - global $bb_cfg; - - $this->whoops->pushHandler(function ($e) use ($bb_cfg) { - echo $bb_cfg['whoops']['error_message']; + $this->whoops->pushHandler(function ($e) { + echo config()->get('whoops.error_message'); echo "
    Error: {$e->getMessage()}."; }); } diff --git a/src/Legacy/Admin/Common.php b/src/Legacy/Admin/Common.php index eeb5bbeda..db0d93215 100644 --- a/src/Legacy/Admin/Common.php +++ b/src/Legacy/Admin/Common.php @@ -217,7 +217,7 @@ class Common */ public static function topic_delete($mode_or_topic_id, $forum_id = null, $prune_time = 0, $prune_all = false) { - global $bb_cfg, $lang, $log_action; + global $lang, $log_action; $topic_csv = []; $prune = ($mode_or_topic_id === 'prune'); @@ -348,7 +348,7 @@ class Common @unlink("$attach_dir/" . THUMB_DIR . '/t_' . $filename); } // TorrServer integration - if ($bb_cfg['torr_server']['enabled']) { + if (config()->get('torr_server.enabled')) { $torrServer = new \TorrentPier\TorrServerAPI(); $torrServer->removeM3U($row['attach_id']); } @@ -699,7 +699,7 @@ class Common */ public static function user_delete($user_id, $delete_posts = false) { - global $bb_cfg, $log_action; + global $log_action; if (!$user_csv = get_id_csv($user_id)) { return false; @@ -779,7 +779,7 @@ class Common // Delete user feed foreach (explode(',', $user_csv) as $user_id) { - $file_path = $bb_cfg['atom']['path'] . '/u/' . floor($user_id / 5000) . '/' . ($user_id % 100) . '/' . $user_id . '.atom'; + $file_path = config()->get('atom.path') . '/u/' . floor($user_id / 5000) . '/' . ($user_id % 100) . '/' . $user_id . '.atom'; @unlink($file_path); } } diff --git a/src/Legacy/Admin/Cron.php b/src/Legacy/Admin/Cron.php index 451152160..7da89ac8a 100644 --- a/src/Legacy/Admin/Cron.php +++ b/src/Legacy/Admin/Cron.php @@ -23,6 +23,7 @@ class Cron public static function run_jobs(string $jobs): void { /** @noinspection PhpUnusedLocalVariableInspection */ + // bb_cfg deprecated, but kept for compatibility with non-adapted cron jobs global $bb_cfg, $datastore; \define('IN_CRON', true); diff --git a/src/Legacy/Atom.php b/src/Legacy/Atom.php index 10b78422e..090f23aee 100644 --- a/src/Legacy/Atom.php +++ b/src/Legacy/Atom.php @@ -25,9 +25,9 @@ class Atom */ public static function update_forum_feed($forum_id, $forum_data) { - global $bb_cfg, $lang, $datastore; + global $lang, $datastore; $sql = null; - $file_path = $bb_cfg['atom']['path'] . '/f/' . $forum_id . '.atom'; + $file_path = config()->get('atom.path') . '/f/' . $forum_id . '.atom'; $select_tor_sql = $join_tor_sql = ''; if (!$forums = $datastore->get('cat_forums')) { @@ -37,7 +37,7 @@ class Atom $not_forums_id = $forums['not_auth_forums']['guest_view']; if ($forum_id == 0) { - $forum_data['forum_name'] = $lang['ATOM_GLOBAL_FEED'] ?? $bb_cfg['server_name']; + $forum_data['forum_name'] = $lang['ATOM_GLOBAL_FEED'] ?? config()->get('server_name'); } if ($forum_id > 0 && $forum_data['allow_reg_tracker']) { $select_tor_sql = ', tor.size AS tor_size, tor.tor_status, tor.attach_id'; @@ -93,7 +93,7 @@ class Atom } } if (isset($topic['tor_status'])) { - if (isset($bb_cfg['tor_frozen'][$topic['tor_status']])) { + if (isset(config()->get('tor_frozen')[$topic['tor_status']])) { continue; } } @@ -120,8 +120,8 @@ class Atom */ public static function update_user_feed($user_id, $username) { - global $bb_cfg; - $file_path = $bb_cfg['atom']['path'] . '/u/' . floor($user_id / 5000) . '/' . ($user_id % 100) . '/' . $user_id . '.atom'; + global $lang, $datastore; + $file_path = config()->get('atom.path') . '/u/' . floor($user_id / 5000) . '/' . ($user_id % 100) . '/' . $user_id . '.atom'; $sql = " SELECT t.topic_id, t.topic_title, t.topic_status, @@ -149,7 +149,7 @@ class Atom } } if (isset($topic['tor_status'])) { - if (isset($bb_cfg['tor_frozen'][$topic['tor_status']])) { + if (isset(config()->get('tor_frozen')[$topic['tor_status']])) { continue; } } @@ -179,7 +179,7 @@ class Atom */ private static function create_atom($file_path, $mode, $id, $title, $topics) { - global $bb_cfg, $lang, $wordCensor; + global $lang, $wordCensor; $date = null; $time = null; $dir = \dirname($file_path); @@ -233,13 +233,13 @@ class Atom $atom .= " \n"; $atom .= " " . $date . "T$time+00:00\n"; $atom .= " tag:rto.feed," . $date . ":/t/$topic_id\n"; - if ($bb_cfg['atom']['direct_down'] && isset($topic['attach_id'])) { + if (config()->get('atom.direct_down') && isset($topic['attach_id'])) { $atom .= " \n"; } else { $atom .= " \n"; } - if ($bb_cfg['atom']['direct_view']) { + if (config()->get('atom.direct_view')) { $atom .= " " . $topic['post_html'] . "\n\nNews URL: " . FULL_URL . TOPIC_URL . $topic_id . "\n"; } diff --git a/src/Legacy/BBCode.php b/src/Legacy/BBCode.php index 330fc6a02..2825e57d1 100644 --- a/src/Legacy/BBCode.php +++ b/src/Legacy/BBCode.php @@ -157,15 +157,13 @@ class BBCode */ public function bbcode2html(string $text): string { - global $bb_cfg; - $text = self::clean_up($text); $text = $this->parse($text); $text = $this->make_clickable($text); $text = $this->smilies_pass($text); $text = $this->new_line2html($text); - if ($bb_cfg['tidy_post']) { + if (config()->get('tidy_post')) { $text = $this->tidy($text); } @@ -395,9 +393,7 @@ class BBCode */ private function nofollow_url(string $href, string $name): string { - global $bb_cfg; - - if (\in_array(parse_url($href, PHP_URL_HOST), $bb_cfg['nofollow']['allowed_url']) || $bb_cfg['nofollow']['disabled']) { + if (\in_array(parse_url($href, PHP_URL_HOST), config()->get('nofollow.allowed_url')) || config()->get('nofollow.disabled')) { $link = "$name"; } else { $link = "$name"; diff --git a/src/Legacy/Common/Select.php b/src/Legacy/Common/Select.php index 424c99869..69b7c5959 100644 --- a/src/Legacy/Common/Select.php +++ b/src/Legacy/Common/Select.php @@ -25,11 +25,9 @@ class Select */ public static function language(string $default_lang, string $select_name = 'language'): mixed { - global $bb_cfg; - $lang_select = ''; - return ($x > 1) ? $lang_select : reset($bb_cfg['lang']); + $languages = config()->get('lang'); + return ($x > 1) ? $lang_select : reset($languages); } /** @@ -77,11 +76,9 @@ class Select */ public static function template(string $default_style, string $select_name = 'tpl_name'): mixed { - global $bb_cfg; - $templates_select = ''; - return ($x > 1) ? $templates_select : reset($bb_cfg['templates']); + $templates = config()->get('templates'); + return ($x > 1) ? $templates_select : reset($templates); } } diff --git a/src/Legacy/Common/Upload.php b/src/Legacy/Common/Upload.php index 685614803..d16542c07 100644 --- a/src/Legacy/Common/Upload.php +++ b/src/Legacy/Common/Upload.php @@ -103,7 +103,7 @@ class Upload */ public function init(array $cfg = [], array $post_params = [], bool $uploaded_only = true): bool { - global $bb_cfg, $lang; + global $lang; $this->cfg = array_merge($this->cfg, $cfg); $this->file = $post_params; @@ -150,7 +150,7 @@ class Upload $file_name_ary = explode('.', $this->file['name']); $this->file_ext = strtolower(end($file_name_ary)); - $this->ext_ids = array_flip($bb_cfg['file_id_ext']); + $this->ext_ids = array_flip(config()->get('file_id_ext')); // Actions for images [E.g. Change avatar] if ($this->cfg['max_width'] || $this->cfg['max_height']) { diff --git a/src/Legacy/Common/User.php b/src/Legacy/Common/User.php index b1a6a6713..f5738083e 100644 --- a/src/Legacy/Common/User.php +++ b/src/Legacy/Common/User.php @@ -111,7 +111,7 @@ class User */ public function session_start(array $cfg = []) { - global $bb_cfg, $lang; + global $lang; $update_sessions_table = false; $this->cfg = array_merge($this->cfg, $cfg); @@ -130,7 +130,7 @@ class User if ($session_id) { $SQL['WHERE'][] = "s.session_id = '$session_id'"; - if ($bb_cfg['torhelp_enabled']) { + if (config()->get('torhelp_enabled')) { $SQL['SELECT'][] = "th.topic_id_csv AS torhelp"; $SQL['LEFT JOIN'][] = BB_BT_TORHELP . " th ON(u.user_id = th.user_id)"; } @@ -146,7 +146,7 @@ class User if (!$this->data = Sessions::cache_get_userdata($userdata_cache_id)) { $this->data = DB()->fetch_row($SQL); - if ($this->data && (TIMENOW - $this->data['session_time']) > $bb_cfg['session_update_intrv']) { + if ($this->data && (TIMENOW - $this->data['session_time']) > config()->get('session_update_intrv')) { $this->data['session_time'] = TIMENOW; $update_sessions_table = true; } @@ -187,7 +187,7 @@ class User // using the cookie user_id if available to pull basic user prefs. if (!$this->data) { $login = false; - $user_id = ($bb_cfg['allow_autologin'] && $this->sessiondata['uk'] && $this->sessiondata['uid']) ? $this->sessiondata['uid'] : GUEST_UID; + $user_id = (config()->get('allow_autologin') && $this->sessiondata['uk'] && $this->sessiondata['uid']) ? $this->sessiondata['uid'] : GUEST_UID; if ($userdata = get_userdata((int)$user_id, false, true)) { if ($userdata['user_id'] != GUEST_UID && $userdata['user_active']) { @@ -208,7 +208,7 @@ class User define('IS_MOD', !IS_GUEST && (int)$this->data['user_level'] === MOD); define('IS_GROUP_MEMBER', !IS_GUEST && (int)$this->data['user_level'] === GROUP_MEMBER); define('IS_USER', !IS_GUEST && (int)$this->data['user_level'] === USER); - define('IS_SUPER_ADMIN', IS_ADMIN && isset($bb_cfg['super_admins'][$this->data['user_id']])); + define('IS_SUPER_ADMIN', IS_ADMIN && isset(config()->get('super_admins')[$this->data['user_id']])); define('IS_AM', IS_ADMIN || IS_MOD); $this->set_shortcuts(); @@ -243,8 +243,6 @@ class User */ public function session_create(array $userdata, bool $auto_created = false): array { - global $bb_cfg; - $this->data = $userdata; $session_id = $this->sessiondata['sid']; @@ -281,8 +279,8 @@ class User if (!$session_time = $this->data['user_session_time']) { $last_visit = TIMENOW; define('FIRST_LOGON', true); - } elseif ($session_time < (TIMENOW - $bb_cfg['last_visit_update_intrv'])) { - $last_visit = max($session_time, (TIMENOW - 86400 * $bb_cfg['max_last_visit_days'])); + } elseif ($session_time < (TIMENOW - config()->get('last_visit_update_intrv'))) { + $last_visit = max($session_time, (TIMENOW - 86400 * config()->get('max_last_visit_days'))); } if ($last_visit != $this->data['user_lastvisit']) { @@ -301,7 +299,7 @@ class User $this->data['user_lastvisit'] = $last_visit; } - if (!empty($_POST['autologin']) && $bb_cfg['allow_autologin']) { + if (!empty($_POST['autologin']) && config()->get('allow_autologin')) { if (!$auto_created) { $this->verify_autologin_id($this->data, true, true); } @@ -463,7 +461,6 @@ class User */ public function set_session_cookies($user_id) { - global $bb_cfg; $debug_cookies = [ COOKIE_DBG, @@ -486,10 +483,10 @@ class User } } } else { - if (!isset($bb_cfg['dbg_users'][$this->data['user_id']]) && DBG_USER) { + if (!isset(config()->get('dbg_users')[$this->data['user_id']]) && DBG_USER) { bb_setcookie(COOKIE_DBG, null); - } elseif (isset($bb_cfg['dbg_users'][$this->data['user_id']]) && !DBG_USER) { - bb_setcookie(COOKIE_DBG, hash('xxh128', $bb_cfg['dbg_users'][$this->data['user_id']]), COOKIE_SESSION); + } elseif (isset(config()->get('dbg_users')[$this->data['user_id']]) && !DBG_USER) { + bb_setcookie(COOKIE_DBG, hash('xxh128', config()->get('dbg_users')[$this->data['user_id']]), COOKIE_SESSION); } // Unset sql debug cookies if SQL_DEBUG is disabled or DBG_USER cookie not present @@ -522,8 +519,6 @@ class User */ public function verify_autologin_id($userdata, bool $expire_check = false, bool $create_new = true): bool|string { - global $bb_cfg; - $autologin_id = $userdata['autologin_id']; if ($expire_check) { @@ -531,8 +526,8 @@ class User return $this->create_autologin_id($userdata); } - if ($autologin_id && $userdata['user_session_time'] && $bb_cfg['max_autologin_time']) { - if (TIMENOW - $userdata['user_session_time'] > $bb_cfg['max_autologin_time'] * 86400) { + if ($autologin_id && $userdata['user_session_time'] && config()->get('max_autologin_time')) { + if (TIMENOW - $userdata['user_session_time'] > config()->get('max_autologin_time') * 86400) { return $this->create_autologin_id($userdata, $create_new); } } @@ -584,39 +579,39 @@ class User */ public function init_userprefs() { - global $bb_cfg, $theme, $source_lang, $DeltaTime; + global $theme, $source_lang, $DeltaTime; if (defined('LANG_DIR')) { return; } // prevent multiple calling // Apply browser language - if ($bb_cfg['auto_language_detection'] && IS_GUEST && isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { + if (config()->get('auto_language_detection') && IS_GUEST && isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { $http_accept_language = locale_get_primary_language(locale_accept_from_http($_SERVER['HTTP_ACCEPT_LANGUAGE'])); - if (isset($bb_cfg['lang'][$http_accept_language])) { - $bb_cfg['default_lang'] = $http_accept_language; + if (isset(config()->get('lang')[$http_accept_language])) { + config()->set('default_lang', $http_accept_language); } } - define('DEFAULT_LANG_DIR', LANG_ROOT_DIR . '/' . $bb_cfg['default_lang'] . '/'); + define('DEFAULT_LANG_DIR', LANG_ROOT_DIR . '/' . config()->get('default_lang') . '/'); define('SOURCE_LANG_DIR', LANG_ROOT_DIR . '/source/'); if ($this->data['user_id'] != GUEST_UID) { if (IN_DEMO_MODE && isset($_COOKIE['user_lang'])) { $this->data['user_lang'] = $_COOKIE['user_lang']; } - if ($this->data['user_lang'] && $this->data['user_lang'] != $bb_cfg['default_lang']) { - $bb_cfg['default_lang'] = basename($this->data['user_lang']); - define('LANG_DIR', LANG_ROOT_DIR . '/' . $bb_cfg['default_lang'] . '/'); + if ($this->data['user_lang'] && $this->data['user_lang'] != config()->get('default_lang')) { + config()->set('default_lang', basename($this->data['user_lang'])); + define('LANG_DIR', LANG_ROOT_DIR . '/' . config()->get('default_lang') . '/'); } if (isset($this->data['user_timezone'])) { - $bb_cfg['board_timezone'] = $this->data['user_timezone']; + config()->set('board_timezone', $this->data['user_timezone']); } } - $this->data['user_lang'] = $bb_cfg['default_lang']; - $this->data['user_timezone'] = $bb_cfg['board_timezone']; + $this->data['user_lang'] = config()->get('default_lang'); + $this->data['user_timezone'] = config()->get('board_timezone'); if (!defined('LANG_DIR')) { define('LANG_DIR', DEFAULT_LANG_DIR); @@ -631,7 +626,7 @@ class User /** Place user language to the global */ global $lang; require(LANG_DIR . 'main.php'); - setlocale(LC_ALL, $bb_cfg['lang'][$this->data['user_lang']]['locale'] ?? 'en_US.UTF-8'); + setlocale(LC_ALL, config()->get('lang')[$this->data['user_lang']]['locale'] ?? 'en_US.UTF-8'); $lang += $source_lang; $theme = setup_style(); @@ -804,10 +799,8 @@ class User */ public function checkPassword(string $enteredPassword, array $userdata): bool { - global $bb_cfg; - if (password_verify($enteredPassword, $userdata['user_password'])) { - if (password_needs_rehash($userdata['user_password'], $bb_cfg['password_hash_options']['algo'], $bb_cfg['password_hash_options']['options'])) { + if (password_needs_rehash($userdata['user_password'], config()->get('password_hash_options.algo'), config()->get('password_hash_options.options'))) { // Update password_hash DB()->query("UPDATE " . BB_USERS . " SET user_password = '" . $this->password_hash($enteredPassword) . "' WHERE user_id = '" . $userdata['user_id'] . "' AND user_password = '" . $userdata['user_password'] . "' LIMIT 1"); } @@ -833,8 +826,6 @@ class User */ public function password_hash(string $enteredPassword): string { - global $bb_cfg; - - return password_hash($enteredPassword, $bb_cfg['password_hash_options']['algo'], $bb_cfg['password_hash_options']['options']); + return password_hash($enteredPassword, config()->get('password_hash_options.algo'), config()->get('password_hash_options.options')); } } diff --git a/src/Legacy/LogAction.php b/src/Legacy/LogAction.php index b1d7b2dfb..25689c853 100644 --- a/src/Legacy/LogAction.php +++ b/src/Legacy/LogAction.php @@ -44,7 +44,7 @@ class LogAction */ public function init() { - global $lang, $bb_cfg; + global $lang; foreach ($lang['LOG_ACTION']['LOG_TYPE'] as $log_type => $log_desc) { $this->log_type_select[strip_tags($log_desc)] = $this->log_type[$log_type]; diff --git a/src/Legacy/Poll.php b/src/Legacy/Poll.php index c0d70b7bc..a4ece7cfe 100644 --- a/src/Legacy/Poll.php +++ b/src/Legacy/Poll.php @@ -21,8 +21,7 @@ class Poll public function __construct() { - global $bb_cfg; - $this->max_votes = $bb_cfg['max_poll_options']; + $this->max_votes = config()->get('max_poll_options'); } /** @@ -162,7 +161,6 @@ class Poll */ public static function pollIsActive(array $t_data): bool { - global $bb_cfg; - return ($t_data['topic_vote'] == 1 && $t_data['topic_time'] > TIMENOW - $bb_cfg['poll_max_days'] * 86400); + return ($t_data['topic_vote'] == 1 && $t_data['topic_time'] > TIMENOW - config()->get('poll_max_days') * 86400); } } diff --git a/src/Legacy/Post.php b/src/Legacy/Post.php index 0a08cb3d2..feb0a71f1 100644 --- a/src/Legacy/Post.php +++ b/src/Legacy/Post.php @@ -31,7 +31,7 @@ class Post */ public static function prepare_post(&$mode, &$post_data, &$error_msg, &$username, &$subject, &$message) { - global $bb_cfg, $user, $userdata, $lang; + global $user, $userdata, $lang; // Check username if (!empty($username)) { @@ -60,15 +60,15 @@ class Post } // Check smilies limit - if ($bb_cfg['max_smilies']) { - $count_smilies = substr_count(bbcode2html($message), 'fetch_row($sql) and $row['last_post_time']) { if ($userdata['user_level'] == USER) { - if ((TIMENOW - $row['last_post_time']) < $bb_cfg['flood_interval']) { + if ((TIMENOW - $row['last_post_time']) < config()->get('flood_interval')) { bb_die($lang['FLOOD_ERROR']); } } @@ -200,9 +200,9 @@ class Post update_post_html(['post_id' => $post_id, 'post_text' => $post_message]); // Updating news cache on index page - if ($bb_cfg['show_latest_news']) { - $news_forums = array_flip(explode(',', $bb_cfg['latest_news_forum_id'])); - if (isset($news_forums[$forum_id]) && $bb_cfg['show_latest_news'] && $mode == 'newtopic') { + if (config()->get('show_latest_news')) { + $news_forums = array_flip(explode(',', config()->get('latest_news_forum_id'))); + if (isset($news_forums[$forum_id]) && config()->get('show_latest_news') && $mode == 'newtopic') { $datastore->enqueue([ 'latest_news' ]); @@ -210,9 +210,9 @@ class Post } } - if ($bb_cfg['show_network_news']) { - $net_forums = array_flip(explode(',', $bb_cfg['network_news_forum_id'])); - if (isset($net_forums[$forum_id]) && $bb_cfg['show_network_news'] && $mode == 'newtopic') { + if (config()->get('show_network_news')) { + $net_forums = array_flip(explode(',', config()->get('network_news_forum_id'))); + if (isset($net_forums[$forum_id]) && config()->get('show_network_news') && $mode == 'newtopic') { $datastore->enqueue([ 'network_news' ]); @@ -341,9 +341,9 @@ class Post */ public static function user_notification($mode, &$post_data, &$topic_title, &$forum_id, &$topic_id, &$notify_user) { - global $bb_cfg, $lang, $userdata, $wordCensor; + global $lang, $userdata, $wordCensor; - if (!$bb_cfg['topic_notify_enabled']) { + if (!config()->get('topic_notify_enabled')) { return; } @@ -378,7 +378,7 @@ class Post $emailer->set_template('topic_notify', $row['user_lang']); $emailer->assign_vars([ 'TOPIC_TITLE' => html_entity_decode($topic_title), - 'SITENAME' => $bb_cfg['sitename'], + 'SITENAME' => config()->get('sitename'), 'USERNAME' => $row['username'], 'U_TOPIC' => $u_topic, 'U_STOP_WATCHING_TOPIC' => $unwatch_topic, @@ -500,7 +500,7 @@ class Post */ public static function topic_review($topic_id) { - global $bb_cfg, $template; + global $template; // Fetch posts data $review_posts = DB()->fetch_rowset(" @@ -513,7 +513,7 @@ class Post LEFT JOIN " . BB_POSTS_HTML . " h ON(h.post_id = p.post_id) WHERE p.topic_id = " . (int)$topic_id . " ORDER BY p.post_time DESC - LIMIT " . $bb_cfg['posts_per_page'] . " + LIMIT " . config()->get('posts_per_page') . " "); // Topic posts block @@ -523,7 +523,7 @@ class Post 'POSTER' => profile_url($post), 'POSTER_NAME_JS' => addslashes($post['username']), 'POST_ID' => $post['post_id'], - 'POST_DATE' => bb_date($post['post_time'], $bb_cfg['post_date_format']), + 'POST_DATE' => bb_date($post['post_time'], config()->get('post_date_format')), 'IS_UNREAD' => is_unread($post['post_time'], $topic_id, $post['forum_id']), 'MESSAGE' => get_parsed_post($post), ]); diff --git a/src/Legacy/Template.php b/src/Legacy/Template.php index 1c509d3bd..fa1139415 100644 --- a/src/Legacy/Template.php +++ b/src/Legacy/Template.php @@ -17,7 +17,7 @@ class Template { /** * Variable that holds all the data we'll be substituting into the compiled templates. - * This will end up being a multi-dimensional array like this: + * This will end up being a multidimensional array like this: * $this->_tpldata[block.][iteration#][child.][iteration#][child2.][iteration#][variablename] == value * if it's a root-level variable, it'll be like this: * $this->vars[varname] == value or $this->_tpldata['.'][0][varname] == value @@ -99,7 +99,7 @@ class Template */ public function __construct($root = '.') { - global $bb_cfg, $lang; + global $lang; // setting pointer "vars" $this->vars = &$this->_tpldata['.'][0]; @@ -108,7 +108,7 @@ class Template $this->root = $root; $this->tpl = basename($root); $this->lang =& $lang; - $this->use_cache = $bb_cfg['xs_use_cache']; + $this->use_cache = config()->get('xs_use_cache'); // Check template exists if (!is_dir($this->root)) { @@ -228,6 +228,8 @@ class Template { $this->cur_tpl = $filename; + /** @noinspection PhpUnusedLocalVariableInspection */ + // bb_cfg deprecated, but kept for compatibility with non-adapted themes global $lang, $source_lang, $bb_cfg, $user; $L =& $lang; @@ -987,11 +989,9 @@ class Template public function xs_startup() { - global $bb_cfg; - // adding language variable (eg: "english" or "german") // can be used to make truly multi-lingual templates - $this->vars['LANG'] ??= $bb_cfg['default_lang']; + $this->vars['LANG'] ??= config()->get('default_lang'); // adding current template $tpl = $this->root . '/'; if (str_starts_with($tpl, './')) { diff --git a/src/Legacy/Torrent.php b/src/Legacy/Torrent.php index 791ff30bd..7bdf42943 100644 --- a/src/Legacy/Torrent.php +++ b/src/Legacy/Torrent.php @@ -97,7 +97,7 @@ class Torrent */ public static function tracker_unregister($attach_id, $mode = '') { - global $lang, $bb_cfg, $log_action; + global $lang, $log_action; $attach_id = (int)$attach_id; $post_id = $topic_id = $topic_title = $forum_id = null; @@ -132,7 +132,7 @@ class Torrent } // Unset DL-Type for topic - if ($bb_cfg['bt_unset_dltype_on_tor_unreg'] && $topic_id) { + if (config()->get('bt_unset_dltype_on_tor_unreg') && $topic_id) { $sql = "UPDATE " . BB_TOPICS . " SET topic_dl_type = " . TOPIC_DL_TYPE_NORMAL . " WHERE topic_id = $topic_id"; if (!$result = DB()->sql_query($sql)) { @@ -148,7 +148,7 @@ class Torrent } // TorrServer integration - if ($bb_cfg['torr_server']['enabled']) { + if (config()->get('torr_server.enabled')) { $torrServer = new TorrServerAPI(); $torrServer->removeM3U($attach_id); } @@ -277,7 +277,7 @@ class Torrent */ public static function tracker_register($attach_id, $mode = '', $tor_status = TOR_NOT_APPROVED, $reg_time = TIMENOW) { - global $bb_cfg, $lang, $reg_mode; + global $lang, $reg_mode; $attach_id = (int)$attach_id; $reg_mode = $mode; @@ -327,19 +327,19 @@ class Torrent self::torrent_error_exit(htmlCHR("{$lang['TORFILE_INVALID']}: {$e->getMessage()}")); } - if ($bb_cfg['bt_disable_dht']) { + if (config()->get('bt_disable_dht')) { $tor['info']['private'] = (int)1; $fp = fopen($filename, 'wb+'); fwrite($fp, Bencode::encode($tor)); fclose($fp); } - if ($bb_cfg['bt_check_announce_url']) { + if (config()->get('bt_check_announce_url')) { $announce_urls = []; include INC_DIR . '/torrent_announce_urls.php'; $ann = $tor['announce'] ?? ''; - $announce_urls['main_url'] = $bb_cfg['bt_announce_url']; + $announce_urls['main_url'] = config()->get('bt_announce_url'); if (!$ann || !in_array($ann, $announce_urls)) { $msg = sprintf($lang['INVALID_ANN_URL'], htmlspecialchars($ann), $announce_urls['main_url']); @@ -365,11 +365,11 @@ class Torrent $bt_v1 = true; } - if ($bb_cfg['tracker']['disabled_v1_torrents'] && isset($bt_v1) && !isset($bt_v2)) { + if (config()->get('tracker.disabled_v1_torrents') && isset($bt_v1) && !isset($bt_v2)) { self::torrent_error_exit($lang['BT_V1_ONLY_DISALLOWED']); } - if ($bb_cfg['tracker']['disabled_v2_torrents'] && !isset($bt_v1) && isset($bt_v2)) { + if (config()->get('tracker.disabled_v2_torrents') && !isset($bt_v1) && isset($bt_v2)) { self::torrent_error_exit($lang['BT_V2_ONLY_DISALLOWED']); } @@ -388,7 +388,7 @@ class Torrent } // TorrServer integration - if ($bb_cfg['torr_server']['enabled']) { + if (config()->get('torr_server.enabled')) { $torrServer = new TorrServerAPI(); if ($torrServer->uploadTorrent($filename, $torrent['mimetype'])) { $torrServer->saveM3U($attach_id, bin2hex($info_hash ?? $info_hash_v2)); @@ -467,7 +467,7 @@ class Torrent } // set DL-Type for topic - if ($bb_cfg['bt_set_dltype_on_tor_reg']) { + if (config()->get('bt_set_dltype_on_tor_reg')) { $sql = 'UPDATE ' . BB_TOPICS . ' SET topic_dl_type = ' . TOPIC_DL_TYPE_DL . " WHERE topic_id = $topic_id"; if (!$result = DB()->sql_query($sql)) { @@ -475,7 +475,7 @@ class Torrent } } - if ($bb_cfg['tracker']['tor_topic_up']) { + if (config()->get('tracker.tor_topic_up')) { DB()->query("UPDATE " . BB_TOPICS . " SET topic_last_post_time = GREATEST(topic_last_post_time, " . (TIMENOW - 3 * 86400) . ") WHERE topic_id = $topic_id"); } @@ -494,9 +494,9 @@ class Torrent */ public static function send_torrent_with_passkey($filename) { - global $attachment, $auth_pages, $userdata, $bb_cfg, $lang; + global $attachment, $auth_pages, $userdata, $lang; - if (!$bb_cfg['bt_add_auth_key'] || $attachment['extension'] !== TORRENT_EXT || !$size = @filesize($filename)) { + if (!config()->get('bt_add_auth_key') || $attachment['extension'] !== TORRENT_EXT || !$size = @filesize($filename)) { return; } @@ -504,8 +504,8 @@ class Torrent $user_id = $userdata['user_id']; $attach_id = $attachment['attach_id']; - if (!$passkey_key = $bb_cfg['passkey_key']) { - bb_die('Could not add passkey (wrong config $bb_cfg[\'passkey_key\'])'); + if (!$passkey_key = config()->get('passkey_key')) { + bb_die('Could not add passkey (wrong config passkey_key)'); } // Get $post_id & $poster_id @@ -543,7 +543,7 @@ class Torrent } // Ratio limits - $min_ratio = $bb_cfg['bt_min_ratio_allow_dl_tor']; + $min_ratio = config()->get('bt_min_ratio_allow_dl_tor'); if ($min_ratio && $user_id != $poster_id && ($user_ratio = get_bt_ratio($bt_userdata)) !== null) { if ($user_ratio < $min_ratio && $post_id) { @@ -570,15 +570,15 @@ class Torrent } // Get tracker announcer - $announce_url = $bb_cfg['bt_announce_url'] . "?$passkey_key=$passkey_val"; + $announce_url = config()->get('bt_announce_url') . "?$passkey_key=$passkey_val"; // Replace original announce url with tracker default - if ($bb_cfg['bt_replace_ann_url'] || !isset($tor['announce'])) { + if (config()->get('bt_replace_ann_url') || !isset($tor['announce'])) { $tor['announce'] = $announce_url; } // Creating / cleaning announce-list - if (!isset($tor['announce-list']) || !is_array($tor['announce-list']) || $bb_cfg['bt_del_addit_ann_urls'] || $bb_cfg['bt_disable_dht']) { + if (!isset($tor['announce-list']) || !is_array($tor['announce-list']) || config()->get('bt_del_addit_ann_urls') || config()->get('bt_disable_dht')) { $tor['announce-list'] = []; } @@ -597,15 +597,15 @@ class Torrent } // Add retracker - if (!empty($bb_cfg['tracker']['retracker_host']) && $bb_cfg['tracker']['retracker']) { + if (!empty(config()->get('tracker.retracker_host')) && config()->get('tracker.retracker')) { if (bf($userdata['user_opt'], 'user_opt', 'user_retracker') || IS_GUEST) { - $tor['announce-list'] = array_merge($tor['announce-list'], [[$bb_cfg['tracker']['retracker_host']]]); + $tor['announce-list'] = array_merge($tor['announce-list'], [[config()->get('tracker.retracker_host')]]); } } // Adding tracker announcer to announce-list if (!empty($tor['announce-list'])) { - if ($bb_cfg['bt_replace_ann_url']) { + if (config()->get('bt_replace_ann_url')) { // Adding tracker announcer as main announcer (At start) array_unshift($tor['announce-list'], [$announce_url]); } else { @@ -629,7 +629,7 @@ class Torrent } // Add publisher & topic url - $publisher_name = $bb_cfg['server_name']; + $publisher_name = config()->get('server_name'); $publisher_url = make_url(TOPIC_URL . $topic_id); $tor['publisher'] = (string)$publisher_name; @@ -644,10 +644,10 @@ class Torrent // Send torrent $output = Bencode::encode($tor); - if ($bb_cfg['tracker']['use_old_torrent_name_format']) { - $dl_fname = '[' . $bb_cfg['server_name'] . '].t' . $topic_id . '.' . TORRENT_EXT; + if (config()->get('tracker.use_old_torrent_name_format')) { + $dl_fname = '[' . config()->get('server_name') . '].t' . $topic_id . '.' . TORRENT_EXT; } else { - $dl_fname = html_ent_decode($topic_title) . ' [' . $bb_cfg['server_name'] . '-' . $topic_id . ']' . '.' . TORRENT_EXT; + $dl_fname = html_ent_decode($topic_title) . ' [' . config()->get('server_name') . '-' . $topic_id . ']' . '.' . TORRENT_EXT; } if (!empty($_COOKIE['explain'])) { diff --git a/src/Legacy/TorrentFileList.php b/src/Legacy/TorrentFileList.php index fd600d015..b3fcaeccc 100644 --- a/src/Legacy/TorrentFileList.php +++ b/src/Legacy/TorrentFileList.php @@ -41,12 +41,12 @@ class TorrentFileList */ public function get_filelist() { - global $bb_cfg, $html; + global $html; $info = &$this->tor_decoded['info']; if (isset($info['meta version'], $info['file tree'])) { //v2 if (($info['meta version']) === 2 && is_array($info['file tree'])) { - return $this->fileTreeList($info['file tree'], $info['name'] ?? '', $bb_cfg['flist_timeout']); + return $this->fileTreeList($info['file tree'], $info['name'] ?? '', config()->get('flist_timeout')); } } @@ -71,8 +71,6 @@ class TorrentFileList */ private function build_filelist_array() { - global $bb_cfg; - $info = &$this->tor_decoded['info']; if (isset($info['name.utf-8'])) { @@ -95,7 +93,7 @@ class TorrentFileList continue; } - $structure = array_deep($f['path'], 'clean_tor_dirname', timeout: $bb_cfg['flist_timeout']); + $structure = array_deep($f['path'], 'clean_tor_dirname', timeout: config()->get('flist_timeout')); if (isset($structure['timeout'])) { bb_die("Timeout, too many nested files/directories for file listing, aborting after \n{$structure['recs']} recursive calls.\nNesting level: " . count($info['files'], COUNT_RECURSIVE)); } diff --git a/src/Sessions.php b/src/Sessions.php index dca5a1009..97e0e773a 100644 --- a/src/Sessions.php +++ b/src/Sessions.php @@ -51,14 +51,12 @@ class Sessions */ public static function cache_set_userdata(?array $userdata, bool $force = false): bool { - global $bb_cfg; - if (!$userdata || (self::ignore_cached_userdata() && !$force)) { return false; } $id = ($userdata['user_id'] == GUEST_UID) ? $userdata['session_ip'] : $userdata['session_id']; - return CACHE('session_cache')->set($id, $userdata, $bb_cfg['session_update_intrv']); + return CACHE('session_cache')->set($id, $userdata, config()->get('session_update_intrv')); } /** diff --git a/src/Sitemap.php b/src/Sitemap.php index f3fc70538..75e059ce5 100644 --- a/src/Sitemap.php +++ b/src/Sitemap.php @@ -99,13 +99,11 @@ class Sitemap */ private function getStaticUrls(): array { - global $bb_cfg; - $staticUrls = []; - if (isset($bb_cfg['static_sitemap'])) { + if (config()->has('static_sitemap')) { /** @var array $urls разбиваем строку по переносам */ - $urls = explode("\n", $bb_cfg['static_sitemap']); + $urls = explode("\n", config()->get('static_sitemap')); foreach ($urls as $url) { /** @var string $url проверяем что адрес валиден и с указанными протоколом */ if (filter_var(trim($url), FILTER_VALIDATE_URL)) { diff --git a/src/TorrServerAPI.php b/src/TorrServerAPI.php index 3764c56e6..59a7cef32 100644 --- a/src/TorrServerAPI.php +++ b/src/TorrServerAPI.php @@ -52,9 +52,7 @@ class TorrServerAPI */ public function __construct() { - global $bb_cfg; - - $this->url = $bb_cfg['torr_server']['url'] . '/'; + $this->url = config()->get('torr_server.url') . '/'; } /** @@ -66,15 +64,13 @@ class TorrServerAPI */ public function uploadTorrent(string $path, string $mimetype): bool { - global $bb_cfg; - // Check mimetype if ($mimetype !== TORRENT_MIMETYPE) { return false; } $curl = new Curl(); - $curl->setTimeout($bb_cfg['torr_server']['timeout']); + $curl->setTimeout(config()->get('torr_server.timeout')); $curl->setHeaders([ 'Accept' => 'application/json', @@ -101,8 +97,6 @@ class TorrServerAPI */ public function saveM3U(string|int $attach_id, string $hash): string { - global $bb_cfg; - $m3uFile = get_attachments_dir() . '/' . self::M3U['prefix'] . $attach_id . self::M3U['extension']; // Make stream call to store torrent in memory @@ -115,7 +109,7 @@ class TorrServerAPI } $curl = new Curl(); - $curl->setTimeout($bb_cfg['torr_server']['timeout']); + $curl->setTimeout(config()->get('torr_server.timeout')); $curl->setHeader('Accept', 'audio/x-mpegurl'); $curl->get($this->url . $this->endpoints['playlist'], ['hash' => $hash]); @@ -197,8 +191,6 @@ class TorrServerAPI */ public function getFfpInfo(string $hash, int $index, int|string $attach_id): mixed { - global $bb_cfg; - if (!$response = CACHE('tr_cache')->get("ffprobe_m3u_$attach_id")) { $response = new stdClass(); } @@ -214,7 +206,7 @@ class TorrServerAPI } $curl = new Curl(); - $curl->setTimeout($bb_cfg['torr_server']['timeout']); + $curl->setTimeout(config()->get('torr_server.timeout')); $curl->setHeader('Accept', 'application/json'); $curl->get($this->url . $this->endpoints['ffprobe'] . '/' . $hash . '/' . $index); @@ -238,10 +230,8 @@ class TorrServerAPI */ private function getStream(string $hash): bool { - global $bb_cfg; - $curl = new Curl(); - $curl->setTimeout($bb_cfg['torr_server']['timeout']); + $curl->setTimeout(config()->get('torr_server.timeout')); $curl->setHeader('Accept', 'application/octet-stream'); $curl->get($this->url . $this->endpoints['stream'], ['link' => $hash]); diff --git a/src/Validate.php b/src/Validate.php index 9aee03998..b3d63a4f2 100644 --- a/src/Validate.php +++ b/src/Validate.php @@ -99,7 +99,7 @@ class Validate */ public static function email(string $email, bool $check_taken = true) { - global $lang, $userdata, $bb_cfg; + global $lang, $userdata; // Check for empty if (empty($email)) { @@ -117,7 +117,7 @@ class Validate } // Extended email validation - if ($bb_cfg['extended_email_validation']) { + if (config()->get('extended_email_validation')) { $validator = new EmailValidator(); $multipleValidations = new MultipleValidationWithAnd([ @@ -157,7 +157,7 @@ class Validate */ public static function password(string $password, string $password_confirm) { - global $lang, $bb_cfg; + global $lang; // Check for empty if (empty($password) || empty($password_confirm)) { @@ -178,26 +178,26 @@ class Validate } // Symbols check - if ($bb_cfg['password_symbols']) { + if (config()->get('password_symbols')) { // Numbers - if ($bb_cfg['password_symbols']['nums']) { + if (config()->get('password_symbols.nums')) { if (!StringHelper::isContainsNums($password)) { return $lang['CHOOSE_PASS_ERR_NUM']; } } // Letters - if ($bb_cfg['password_symbols']['letters']['lowercase']) { + if (config()->get('password_symbols.letters.lowercase')) { if (!StringHelper::isContainsLetters($password)) { return $lang['CHOOSE_PASS_ERR_LETTER']; } } - if ($bb_cfg['password_symbols']['letters']['uppercase']) { + if (config()->get('password_symbols.letters.uppercase')) { if (!StringHelper::isContainsLetters($password, true)) { return $lang['CHOOSE_PASS_ERR_LETTER_UPPERCASE']; } } // Spec symbols - if ($bb_cfg['password_symbols']['spec_symbols']) { + if (config()->get('password_symbols.spec_symbols')) { if (!StringHelper::isContainsSpecSymbols($password)) { return $lang['CHOOSE_PASS_ERR_SPEC_SYMBOL']; } diff --git a/styles/templates/default/tpl_config.php b/styles/templates/default/tpl_config.php index 29b3c2b93..aa69b6d53 100644 --- a/styles/templates/default/tpl_config.php +++ b/styles/templates/default/tpl_config.php @@ -7,14 +7,14 @@ * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ -global $bb_cfg, $page_cfg, $template, $images, $lang; +global $page_cfg, $template, $images, $lang; $width = $height = []; $template_name = basename(__DIR__); $_img = BB_ROOT . 'styles/images/'; $_main = BB_ROOT . 'styles/' . basename(TEMPLATES_DIR) . '/' . $template_name . '/images/'; -$_lang = $_main . 'lang/' . basename($bb_cfg['default_lang']) . '/'; +$_lang = $_main . 'lang/' . basename(config()->get('default_lang')) . '/'; // post_buttons $images['icon_code'] = $_lang . 'icon_code.gif'; @@ -117,13 +117,13 @@ $images['progress_bar_full'] = $_main . 'progress_bar_full.gif'; $template->assign_vars([ 'IMG' => $_main, - 'TEXT_BUTTONS' => $bb_cfg['text_buttons'], - 'POST_BTN_SPACER' => $bb_cfg['text_buttons'] ? ' ' : '', + 'TEXT_BUTTONS' => config()->get('text_buttons'), + 'POST_BTN_SPACER' => config()->get('text_buttons') ? ' ' : '', 'TOPIC_ATTACH_ICON' => '', 'OPEN_MENU_IMG_ALT' => '', - 'TOPIC_LEFT_COL_SPACER_WITDH' => $bb_cfg['topic_left_column_witdh'] - 8, // 8px padding - 'POST_IMG_WIDTH_DECR_JS' => $bb_cfg['topic_left_column_witdh'] + $bb_cfg['post_img_width_decr'], - 'ATTACH_IMG_WIDTH_DECR_JS' => $bb_cfg['topic_left_column_witdh'] + $bb_cfg['attach_img_width_decr'], + 'TOPIC_LEFT_COL_SPACER_WITDH' => config()->get('topic_left_column_witdh') - 8, // 8px padding + 'POST_IMG_WIDTH_DECR_JS' => config()->get('topic_left_column_witdh') + config()->get('post_img_width_decr'), + 'ATTACH_IMG_WIDTH_DECR_JS' => config()->get('topic_left_column_witdh') + config()->get('attach_img_width_decr'), 'FEED_IMG' => '' . $lang['ATOM_FEED'] . '', ]); @@ -131,25 +131,25 @@ $template->assign_vars([ if (!empty($page_cfg['load_tpl_vars']) and $vars = array_flip($page_cfg['load_tpl_vars'])) { if (isset($vars['post_buttons'])) { $template->assign_vars([ - 'CODE_IMG' => $bb_cfg['text_buttons'] ? $lang['CODE_TOPIC_TXTB'] : '' . $lang['CODE_TOPIC_TXTB'] . '', - 'QUOTE_IMG' => $bb_cfg['text_buttons'] ? $lang['REPLY_WITH_QUOTE_TXTB'] : '' . $lang['REPLY_WITH_QUOTE_TXTB'] . '', - 'EDIT_POST_IMG' => $bb_cfg['text_buttons'] ? $lang['EDIT_DELETE_POST_TXTB'] : '' . $lang['EDIT_DELETE_POST_TXTB'] . '', - 'DELETE_POST_IMG' => $bb_cfg['text_buttons'] ? $lang['DELETE_POST_TXTB'] : '' . $lang['DELETE_POST_TXTB'] . '', - 'IP_POST_IMG' => $bb_cfg['text_buttons'] ? $lang['VIEW_IP_TXTB'] : '' . $lang['VIEW_IP_TXTB'] . '', - 'MOD_POST_IMG' => $bb_cfg['text_buttons'] ? $lang['MODERATE_POST_TXTB'] : '' . $lang['MODERATE_POST_TXTB'] . '', - 'MC_IMG' => $bb_cfg['text_buttons'] ? '[' . $lang['COMMENT'] . ']' : '[' . $lang['COMMENT'] . ']', - 'POLL_IMG' => $bb_cfg['text_buttons'] ? $lang['TOPIC_POLL'] : '' . $lang['TOPIC_POLL'] . '', + 'CODE_IMG' => config()->get('text_buttons') ? $lang['CODE_TOPIC_TXTB'] : '' . $lang['CODE_TOPIC_TXTB'] . '', + 'QUOTE_IMG' => config()->get('text_buttons') ? $lang['REPLY_WITH_QUOTE_TXTB'] : '' . $lang['REPLY_WITH_QUOTE_TXTB'] . '', + 'EDIT_POST_IMG' => config()->get('text_buttons') ? $lang['EDIT_DELETE_POST_TXTB'] : '' . $lang['EDIT_DELETE_POST_TXTB'] . '', + 'DELETE_POST_IMG' => config()->get('text_buttons') ? $lang['DELETE_POST_TXTB'] : '' . $lang['DELETE_POST_TXTB'] . '', + 'IP_POST_IMG' => config()->get('text_buttons') ? $lang['VIEW_IP_TXTB'] : '' . $lang['VIEW_IP_TXTB'] . '', + 'MOD_POST_IMG' => config()->get('text_buttons') ? $lang['MODERATE_POST_TXTB'] : '' . $lang['MODERATE_POST_TXTB'] . '', + 'MC_IMG' => config()->get('text_buttons') ? '[' . $lang['COMMENT'] . ']' : '[' . $lang['COMMENT'] . ']', + 'POLL_IMG' => config()->get('text_buttons') ? $lang['TOPIC_POLL'] : '' . $lang['TOPIC_POLL'] . '', 'QUOTE_URL' => BB_ROOT . POSTING_URL . '?mode=quote&' . POST_POST_URL . '=', 'EDIT_POST_URL' => BB_ROOT . POSTING_URL . '?mode=editpost&' . POST_POST_URL . '=', 'DELETE_POST_URL' => BB_ROOT . POSTING_URL . '?mode=delete&' . POST_POST_URL . '=', 'IP_POST_URL' => BB_ROOT . 'modcp.php?mode=ip&' . POST_POST_URL . '=', - 'PROFILE_IMG' => $bb_cfg['text_buttons'] ? $lang['READ_PROFILE_TXTB'] : '' . $lang['READ_PROFILE_TXTB'] . '', - 'PM_IMG' => $bb_cfg['text_buttons'] ? $lang['SEND_PM_TXTB'] : '' . $lang['SEND_PM_TXTB'] . '', - 'EMAIL_IMG' => $bb_cfg['text_buttons'] ? $lang['SEND_EMAIL_TXTB'] : '' . $lang['SEND_EMAIL_TXTB'] . '', - 'WWW_IMG' => $bb_cfg['text_buttons'] ? $lang['VISIT_WEBSITE_TXTB'] : '' . $lang['VISIT_WEBSITE_TXTB'] . '', - 'ICQ_IMG' => $bb_cfg['text_buttons'] ? $lang['ICQ_TXTB'] : '' . $lang['ICQ_TXTB'] . '', + 'PROFILE_IMG' => config()->get('text_buttons') ? $lang['READ_PROFILE_TXTB'] : '' . $lang['READ_PROFILE_TXTB'] . '', + 'PM_IMG' => config()->get('text_buttons') ? $lang['SEND_PM_TXTB'] : '' . $lang['SEND_PM_TXTB'] . '', + 'EMAIL_IMG' => config()->get('text_buttons') ? $lang['SEND_EMAIL_TXTB'] : '' . $lang['SEND_EMAIL_TXTB'] . '', + 'WWW_IMG' => config()->get('text_buttons') ? $lang['VISIT_WEBSITE_TXTB'] : '' . $lang['VISIT_WEBSITE_TXTB'] . '', + 'ICQ_IMG' => config()->get('text_buttons') ? $lang['ICQ_TXTB'] : '' . $lang['ICQ_TXTB'] . '', 'EMAIL_URL' => BB_ROOT . 'profile.php?mode=email&' . POST_USERS_URL . '=', 'FORUM_URL' => BB_ROOT . FORUM_URL, diff --git a/terms.php b/terms.php index d173f82f8..e3598073f 100644 --- a/terms.php +++ b/terms.php @@ -15,13 +15,13 @@ require INC_DIR . '/bbcode.php'; // Start session management $user->session_start(); -if (!$bb_cfg['terms'] && !IS_ADMIN) { +if (!config()->get('terms') && !IS_ADMIN) { redirect('index.php'); } $template->assign_vars([ 'TERMS_EDIT' => bbcode2html(sprintf($lang['TERMS_EMPTY_TEXT'], make_url('admin/admin_terms.php'))), - 'TERMS_HTML' => bbcode2html($bb_cfg['terms']), + 'TERMS_HTML' => bbcode2html(config()->get('terms')), ]); print_page('terms.tpl'); diff --git a/tracker.php b/tracker.php index 2e94615b9..ddb56a51f 100644 --- a/tracker.php +++ b/tracker.php @@ -19,7 +19,7 @@ $page_cfg['load_tpl_vars'] = [ ]; // Session start -$user->session_start(array('req_login' => $bb_cfg['bt_tor_browse_only_reg'])); +$user->session_start(array('req_login' => config()->get('bt_tor_browse_only_reg'))); set_die_append_msg(); @@ -30,7 +30,7 @@ $max_forums_selected = 50; $title_match_max_len = 60; $poster_name_max_len = 25; $tor_colspan = 12; // torrents table colspan with all columns -$per_page = $bb_cfg['topics_per_page']; +$per_page = config()->get('topics_per_page'); $tracker_url = basename(__FILE__); $time_format = 'H:i'; @@ -299,8 +299,8 @@ if (isset($_GET[$user_releases_key])) { } // Random release -if ($bb_cfg['tracker']['random_release_button'] && isset($_GET['random_release'])) { - if ($random_release = DB()->fetch_row("SELECT topic_id FROM " . BB_BT_TORRENTS . " WHERE tor_status NOT IN(" . implode(', ', array_keys($bb_cfg['tor_frozen'])) . ") ORDER BY RAND() LIMIT 1")) { +if (config()->get('tracker.random_release_button') && isset($_GET['random_release'])) { + if ($random_release = DB()->fetch_row("SELECT topic_id FROM " . BB_BT_TORRENTS . " WHERE tor_status NOT IN(" . implode(', ', array_keys(config()->get('tor_frozen'))) . ") ORDER BY RAND() LIMIT 1")) { redirect(TOPIC_URL . $random_release['topic_id']); } else { bb_die($lang['NO_MATCH']); @@ -749,8 +749,8 @@ if ($allowed_forums) { 'MAGNET' => $tor_magnet, 'TOR_TYPE' => is_gold($tor['tor_type']), - 'TOR_FROZEN' => !IS_AM ? isset($bb_cfg['tor_frozen'][$tor['tor_status']]) : '', - 'TOR_STATUS_ICON' => $bb_cfg['tor_icons'][$tor['tor_status']], + 'TOR_FROZEN' => !IS_AM ? isset(config()->get('tor_frozen')[$tor['tor_status']]) : '', + 'TOR_STATUS_ICON' => config()->get('tor_icons')[$tor['tor_status']], 'TOR_STATUS_TEXT' => $lang['TOR_STATUS_NAME'][$tor['tor_status']], 'TOR_SIZE_RAW' => $size, @@ -819,9 +819,9 @@ $search_all_opt = '