From 18aeb3e9d59edcc56c00f4a5254392792f33dc00 Mon Sep 17 00:00:00 2001 From: Yuriy Pikhtarev Date: Sat, 10 Jun 2017 03:11:10 +0300 Subject: [PATCH] Cron subsystem rework. Environments. --- .env.example | 12 + .gitignore | 2 +- admin/admin_bt_tracker_cfg.php | 8 +- admin/admin_log.php | 1 + bt/announce.php | 53 +- bt/includes/init_tr.php | 6 +- bt/scrape.php | 4 +- common.php | 51 +- composer.json | 3 +- dl.php | 1 + index.php | 1 + library/ajax/index_data.php | 1 + library/ajax/manage_admin.php | 2 +- library/attach_mod/displaying_torrent.php | 4 +- library/config.php | 836 +++++++++--------- library/defines.php | 7 + library/includes/bbcode.php | 1 + library/includes/cron/.htaccess | 2 - library/includes/cron/cron_check.php | 5 +- library/includes/cron/cron_init.php | 82 -- library/includes/cron/cron_run.php | 2 - library/includes/cron/jobs/.htaccess | 2 - .../includes/cron/jobs/board_maintenance.php | 5 +- .../cron/jobs/prune_inactive_users.php | 2 - .../includes/cron/jobs/sessions_cleanup.php | 2 - .../cron/jobs/tr_cleanup_and_dlstat.php | 8 +- .../includes/cron/jobs/tr_make_snapshot.php | 4 - library/includes/datastore/.htaccess | 2 - library/includes/functions.php | 68 +- library/includes/functions_admin_cron.php | 4 +- library/includes/functions_torrent.php | 21 +- library/includes/init_bb.php | 208 ++--- library/includes/page_header.php | 6 +- library/includes/ucp/.htaccess | 2 - library/includes/ucp/viewprofile.php | 1 + 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/source/html/sidebar2.html | 2 +- library/language/source/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 +- src/Helpers/CronHelper.php | 135 +++ src/Legacy/SqlDb.php | 23 +- src/Legacy/Template.php | 2 +- styles/templates/default/tpl_config.php | 9 - styles/templates/default/tracker.tpl | 4 +- styles/templates/default/viewtopic_attach.tpl | 8 +- viewtopic.php | 1 + 91 files changed, 865 insertions(+), 834 deletions(-) create mode 100644 .env.example delete mode 100644 library/includes/cron/.htaccess delete mode 100644 library/includes/cron/cron_init.php delete mode 100644 library/includes/cron/jobs/.htaccess delete mode 100644 library/includes/datastore/.htaccess delete mode 100644 library/includes/ucp/.htaccess create mode 100644 src/Helpers/CronHelper.php diff --git a/.env.example b/.env.example new file mode 100644 index 000000000..dd55a2a6e --- /dev/null +++ b/.env.example @@ -0,0 +1,12 @@ +# Common params +APP_NAME=TorrentPier +APP_ENV=local +APP_DEBUG=false + +# Database credentials +DB_CONNECTION=mysql +DB_HOST=localhost +DB_PORT=3306 +DB_DATABASE=torrentpier +DB_USERNAME=root +DB_PASSWORD=secret diff --git a/.gitignore b/.gitignore index ac8ce0648..823661c6b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,11 @@ ### TorrentPier ### .idea +.php_cs.cache bower_components composer.phar composer.lock configs/local.php data/avatars -data/old_files data/torrent_files internal_data/ajax_html internal_data/atom diff --git a/admin/admin_bt_tracker_cfg.php b/admin/admin_bt_tracker_cfg.php index 9d1fc4fa6..8466b7905 100644 --- a/admin/admin_bt_tracker_cfg.php +++ b/admin/admin_bt_tracker_cfg.php @@ -67,20 +67,20 @@ $default_cfg_num = array( ); // Set template vars -set_tpl_vars($default_cfg_str, $tr_cfg); +set_tpl_vars($default_cfg_str, $bb_cfg['tracker']); set_tpl_vars_lang($default_cfg_str); -set_tpl_vars_bool($default_cfg_bool, $tr_cfg); +set_tpl_vars_bool($default_cfg_bool, $bb_cfg['tracker']); set_tpl_vars_lang($default_cfg_bool); -set_tpl_vars($default_cfg_num, $tr_cfg); +set_tpl_vars($default_cfg_num, $bb_cfg['tracker']); set_tpl_vars_lang($default_cfg_num); $template->assign_vars(array( 'IGNORE_REPORTED_IP' => $bb_cfg['ignore_reported_ip'], 'ANNOUNCE_INTERVAL' => $bb_cfg['announce_interval'], 'PASSKEY_KEY' => $bb_cfg['passkey_key'], - 'GOLD_SILVER_ENABLED' => $tr_cfg['gold_silver_enabled'], + 'GOLD_SILVER_ENABLED' => $bb_cfg['tracker']['gold_silver_enabled'], 'DISABLE_SUBMIT' => true, 'S_HIDDEN_FIELDS' => '', diff --git a/admin/admin_log.php b/admin/admin_log.php index a15053c59..124d95d8a 100644 --- a/admin/admin_log.php +++ b/admin/admin_log.php @@ -32,6 +32,7 @@ require __DIR__ . '/pagestart.php'; $datastore->enqueue(array( 'moderators', + 'cat_forums', )); $log_action->init(); diff --git a/bt/announce.php b/bt/announce.php index 99a03eef7..668306319 100644 --- a/bt/announce.php +++ b/bt/announce.php @@ -27,7 +27,7 @@ define('IN_TRACKER', true); define('BB_ROOT', './../'); require dirname(__DIR__) . '/common.php'; -global $bb_cfg, $tr_cfg; +global $bb_cfg; if (empty($_SERVER['HTTP_USER_AGENT'])) { header('Location: http://127.0.0.1', true, 301); @@ -249,15 +249,15 @@ if ($lp_info) { $tor_type = $row['tor_type']; // Ratio limits - if ((TR_RATING_LIMITS || $tr_cfg['limit_concurrent_ips']) && !$stopped) { + if ((TR_RATING_LIMITS || $bb_cfg['tracker']['limit_concurrent_ips']) && !$stopped) { $user_ratio = ($row['u_down_total'] && $row['u_down_total'] > MIN_DL_FOR_RATIO) ? ($row['u_up_total'] + $row['u_up_release'] + $row['u_up_bonus']) / $row['u_down_total'] : 1; $rating_msg = ''; if (!$seeder) { - foreach ($rating_limits as $ratio => $limit) { + foreach ($bb_cfg['rating'] as $ratio => $limit) { if ($user_ratio < $ratio) { - $tr_cfg['limit_active_tor'] = 1; - $tr_cfg['limit_leech_count'] = $limit; + $bb_cfg['tracker']['limit_active_tor'] = 1; + $bb_cfg['tracker']['limit_leech_count'] = $limit; $rating_msg = " (ratio < $ratio)"; break; } @@ -265,29 +265,29 @@ if ($lp_info) { } // Limit active torrents - if (!isset($bb_cfg['unlimited_users'][$user_id]) && $tr_cfg['limit_active_tor'] && (($tr_cfg['limit_seed_count'] && $seeder) || ($tr_cfg['limit_leech_count'] && !$seeder))) { + 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))) { $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 && $tr_cfg['leech_expire_factor'] && $user_ratio < 0.5) { - $sql .= " AND update_time > " . (TIMENOW - 60 * $tr_cfg['leech_expire_factor']); + if (!$seeder && $bb_cfg['tracker']['leech_expire_factor'] && $user_ratio < 0.5) { + $sql .= " AND update_time > " . (TIMENOW - 60 * $bb_cfg['tracker']['leech_expire_factor']); } $sql .= " GROUP BY user_id"; if ($row = DB()->fetch_row($sql)) { - if ($seeder && $tr_cfg['limit_seed_count'] && $row['active_torrents'] >= $tr_cfg['limit_seed_count']) { - msg_die('Only ' . $tr_cfg['limit_seed_count'] . ' torrent(s) allowed for seeding'); - } elseif (!$seeder && $tr_cfg['limit_leech_count'] && $row['active_torrents'] >= $tr_cfg['limit_leech_count']) { - msg_die('Only ' . $tr_cfg['limit_leech_count'] . ' torrent(s) allowed for leeching' . $rating_msg); + 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); } } } // Limit concurrent IPs - if ($tr_cfg['limit_concurrent_ips'] && (($tr_cfg['limit_seed_ips'] && $seeder) || ($tr_cfg['limit_leech_ips'] && !$seeder))) { + if ($bb_cfg['tracker']['limit_concurrent_ips'] && (($bb_cfg['tracker']['limit_seed_ips'] && $seeder) || ($bb_cfg['tracker']['limit_leech_ips'] && !$seeder))) { $sql = "SELECT COUNT(DISTINCT ip) AS ips FROM " . BB_BT_TRACKER . " WHERE topic_id = $topic_id @@ -295,16 +295,16 @@ if ($lp_info) { AND seeder = $seeder AND ip != '$ip_sql'"; - if (!$seeder && $tr_cfg['leech_expire_factor']) { - $sql .= " AND update_time > " . (TIMENOW - 60 * $tr_cfg['leech_expire_factor']); + if (!$seeder && $bb_cfg['tracker']['leech_expire_factor']) { + $sql .= " AND update_time > " . (TIMENOW - 60 * $bb_cfg['tracker']['leech_expire_factor']); } $sql .= " GROUP BY topic_id"; if ($row = DB()->fetch_row($sql)) { - if ($seeder && $tr_cfg['limit_seed_ips'] && $row['ips'] >= $tr_cfg['limit_seed_ips']) { - msg_die('You can seed only from ' . $tr_cfg['limit_seed_ips'] . " IP's"); - } elseif (!$seeder && $tr_cfg['limit_leech_ips'] && $row['ips'] >= $tr_cfg['limit_leech_ips']) { - msg_die('You can leech only from ' . $tr_cfg['limit_leech_ips'] . " IP's"); + 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"); } } } @@ -328,7 +328,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 ($tr_cfg['gold_silver_enabled'] && $down_add) { +if ($bb_cfg['tracker']['gold_silver_enabled'] && $down_add) { if ($tor_type == TOR_TYPE_GOLD) { $down_add = 0; } // Silver releases @@ -337,7 +337,12 @@ if ($tr_cfg['gold_silver_enabled'] && $down_add) { } } -// Insert/update peer info +// Freeleech +if ($bb_cfg['tracker']['freeleech'] && $down_add) { + $down_add = 0; +} + +// Insert / update peer info $peer_info_updated = false; $update_time = ($stopped) ? 0 : TIMENOW; @@ -414,8 +419,8 @@ if (DBG_LOG) { if (!$output) { // Retrieve peers - $numwant = (int)$tr_cfg['numwant']; - $compact_mode = ($tr_cfg['compact_mode'] || !empty($compact)); + $numwant = (int)$bb_cfg['tracker']['numwant']; + $compact_mode = ($bb_cfg['tracker']['compact_mode'] || !empty($compact)); $rowset = DB()->fetch_rowset(" SELECT ip, port @@ -445,7 +450,7 @@ if (!$output) { $seeders = 0; $leechers = 0; - if ($tr_cfg['scrape']) { + if ($bb_cfg['tracker']['scrape']) { $row = DB()->fetch_row(" SELECT seeders, leechers FROM " . BB_BT_TRACKER_SNAP . " diff --git a/bt/includes/init_tr.php b/bt/includes/init_tr.php index bca2b155d..a0e30c5b7 100644 --- a/bt/includes/init_tr.php +++ b/bt/includes/init_tr.php @@ -27,11 +27,11 @@ if (!defined('IN_TRACKER')) { die(basename(__FILE__)); } -global $tr_cfg; +global $bb_cfg; // Exit if tracker is disabled -if ($tr_cfg['off']) { - msg_die($tr_cfg['off_reason']); +if ($bb_cfg['tracker']['off']) { + msg_die($bb_cfg['tracker']['off_reason']); } // diff --git a/bt/scrape.php b/bt/scrape.php index 82705fe38..e4e926bca 100644 --- a/bt/scrape.php +++ b/bt/scrape.php @@ -27,9 +27,9 @@ define('IN_TRACKER', true); define('BB_ROOT', './../'); require dirname(__DIR__) . '/common.php'; -global $tr_cfg; +global $bb_cfg; -if (!$tr_cfg['scrape']) { +if (!$bb_cfg['tracker']['scrape']) { msg_die('Please disable SCRAPE!'); } diff --git a/common.php b/common.php index ae0bf842a..6668dec9f 100644 --- a/common.php +++ b/common.php @@ -27,7 +27,6 @@ if (isset($_REQUEST['GLOBALS'])) { die(); } -ignore_user_abort(true); define('TIMESTART', utime()); define('TIMENOW', time()); @@ -47,6 +46,9 @@ if (empty($_SERVER['SERVER_NAME'])) { if (!defined('BB_ROOT')) { define('BB_ROOT', './'); } +if (!defined('BB_SCRIPT')) { + define('BB_SCRIPT', 'undefined'); +} header('X-Frame-Options: SAMEORIGIN'); @@ -64,9 +66,54 @@ if (!file_exists(__DIR__ . '/vendor/autoload.php')) { } require_once __DIR__ . '/vendor/autoload.php'; +/** + * Gets the value of an environment variable. Supports boolean, empty and null. + * + * @param string $key + * @param mixed $default + * @return mixed + */ +function env($key, $default = null) +{ + $value = getenv($key); + if (!$value) return value($default); + switch (strtolower($value)) { + case 'true': + case '(true)': + return true; + case 'false': + case '(false)': + return false; + case '(null)': + return null; + case '(empty)': + return ''; + } + return $value; +} + +/** + * Return the default value of the given value. + * + * @param mixed $value + * @return mixed + */ +function value($value) +{ + return $value instanceof Closure ? $value() : $value; +} + // Get initial config +if (!getenv('APP_DEBUG') && file_exists(__DIR__ . '/.env')) { + (new Symfony\Component\Dotenv\Dotenv())->load(__DIR__ . '/.env'); +} require_once __DIR__ . '/library/config.php'; +// Local config +if (file_exists(__DIR__ . '/library/config.local.php')) { + require_once __DIR__ . '/library/config.local.php'; +} + // Bugsnag error reporting if ($bb_cfg['bugsnag']['enabled'] && !empty($bb_cfg['bugsnag']['api_key'])) { /** @var Bugsnag\Handler $bugsnag */ @@ -93,7 +140,7 @@ define('BT_AUTH_KEY_LENGTH', 10); define('PEER_HASH_PREFIX', 'peer_'); define('PEERS_LIST_PREFIX', 'peers_list_'); -define('PEER_HASH_EXPIRE', round($bb_cfg['announce_interval'] * (0.85 * $tr_cfg['expire_factor']))); // sec +define('PEER_HASH_EXPIRE', round($bb_cfg['announce_interval'] * (0.85 * $bb_cfg['tracker']['expire_factor']))); // sec define('PEERS_LIST_EXPIRE', round($bb_cfg['announce_interval'] * 0.7)); // sec define('DL_STATUS_RELEASER', -1); diff --git a/composer.json b/composer.json index 8b65ba8cc..09e4cf732 100644 --- a/composer.json +++ b/composer.json @@ -44,7 +44,8 @@ "roave/security-advisories": "dev-master", "rych/bencode": "^1.0", "samdark/sitemap": "^2.0", - "swiftmailer/swiftmailer": "^5.4" + "swiftmailer/swiftmailer": "^5.4", + "symfony/dotenv": "^3.3" }, "autoload": { "psr-4": { diff --git a/dl.php b/dl.php index c61f6f4c3..076381b54 100644 --- a/dl.php +++ b/dl.php @@ -31,6 +31,7 @@ require ATTACH_DIR . '/attachment_mod.php'; $datastore->enqueue(array( 'attach_extensions', + 'cat_forums', )); $download_id = request_var('id', 0); diff --git a/index.php b/index.php index 7cceaad50..b594fda76 100644 --- a/index.php +++ b/index.php @@ -39,6 +39,7 @@ $show_subforums = true; $datastore->enqueue(array( 'stats', 'moderators', + 'cat_forums', )); if ($bb_cfg['show_latest_news']) { $datastore->enqueue('latest_news'); diff --git a/library/ajax/index_data.php b/library/ajax/index_data.php index 52f76bf25..5768facf9 100644 --- a/library/ajax/index_data.php +++ b/library/ajax/index_data.php @@ -70,6 +70,7 @@ switch ($mode) { $datastore->enqueue(array( 'moderators', + 'cat_forums', )); $moderators = array(); diff --git a/library/ajax/manage_admin.php b/library/ajax/manage_admin.php index 4b5b9e768..823dd1e19 100644 --- a/library/ajax/manage_admin.php +++ b/library/ajax/manage_admin.php @@ -123,7 +123,7 @@ switch ($mode) { case 'unlock_cron': - cron_enable_board(); + TorrentPier\Helpers\CronHelper::enableBoard(); $this->response['unlock_cron_html'] = '' . $lang['ADMIN_UNLOCKED'] . ''; diff --git a/library/attach_mod/displaying_torrent.php b/library/attach_mod/displaying_torrent.php index 062ee4835..96e58ca66 100644 --- a/library/attach_mod/displaying_torrent.php +++ b/library/attach_mod/displaying_torrent.php @@ -103,9 +103,7 @@ if ($tor_auth_reg || $tor_auth_del) { $tracker_link = ($tor_reged) ? $unreg_tor_url : $reg_tor_url; } -if ($bb_cfg['torrent_name_style']) { - $display_name = '[' . $bb_cfg['server_name'] . '].t' . $bt_topic_id . '.torrent'; -} +$display_name = '[' . $bb_cfg['server_name'] . '].t' . $bt_topic_id . '.torrent'; if (!$tor_reged) { $template->assign_block_vars('postrow.attach.tor_not_reged', array( diff --git a/library/config.php b/library/config.php index 004e600b6..f4a1c54b2 100644 --- a/library/config.php +++ b/library/config.php @@ -27,32 +27,34 @@ if (!defined('BB_ROOT')) { die(basename(__FILE__)); } -$bb_cfg = $tr_cfg = $page_cfg = []; +$domain_name = 'torrentpier.me'; // enter here your primary domain name of your site +$domain_name = (!empty($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : $domain_name; + +$bb_cfg = []; // Increase number after changing js or css $bb_cfg['js_ver'] = $bb_cfg['css_ver'] = 1; -// Primary domain name -$domain_name = 'torrentpier.me'; // enter here your primary domain name of your site -$domain_name = (!empty($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : $domain_name; - // Version info $bb_cfg['tp_version'] = '2.1.6'; -$bb_cfg['tp_release_date'] = '07-07-2017'; +$bb_cfg['tp_release_date'] = '12-07-2017'; $bb_cfg['tp_release_codename'] = 'Aurochs'; // Database -$charset = 'utf8'; -$pconnect = false; - // Настройка баз данных ['db']['srv_name'] => (array) srv_cfg; // порядок параметров srv_cfg (хост, название базы, пользователь, пароль, charset, pconnect); -$bb_cfg['db'] = array( - 'db' => array('localhost', 'tp_216', 'user', 'pass', $charset, $pconnect), -); +$bb_cfg['db'] = [ + 'db' => [ + env('DB_HOST', 'localhost'), + env('DB_DATABASE', 'torrentpier'), + env('DB_USERNAME', 'root'), + env('DB_PASSWORD', 'pass'), + 'utf8', + false + ], +]; -$bb_cfg['db_alias'] = array( -// 'alias' => 'srv_name' +$bb_cfg['db_alias'] = [ 'log' => 'db', // BB_LOG 'search' => 'db', // BB_TOPIC_SEARCH 'sres' => 'db', // BB_BT_USER_SETTINGS, BB_SEARCH_RESULTS @@ -62,63 +64,64 @@ $bb_cfg['db_alias'] = array( 'ut' => 'db', // BB_TOPICS_USER_POSTED 'pm' => 'db', // BB_PRIVMSGS, BB_PRIVMSGS_TEXT 'pt' => 'db', // BB_POSTS_TEXT -); +]; // Cache -$bb_cfg['cache']['pconnect'] = true; -$bb_cfg['cache']['db_dir'] = realpath(BB_ROOT) . '/internal_data/cache/filecache/'; -$bb_cfg['cache']['prefix'] = 'tp_'; // Префикс кеша ('tp_') -$bb_cfg['cache']['memcache'] = array( - 'host' => '127.0.0.1', - 'port' => 11211, +$bb_cfg['cache'] = [ 'pconnect' => true, - 'con_required' => true, -); -$bb_cfg['cache']['redis'] = array( - 'host' => '127.0.0.1', - 'port' => 6379, - 'con_required' => true, -); + 'db_dir' => realpath(BB_ROOT) . '/internal_data/cache/filecache/', + 'prefix' => 'tp_', // Префикс кеша ('tp_') + 'memcache' => [ + 'host' => '127.0.0.1', + 'port' => 11211, + 'pconnect' => true, + 'con_required' => true, + ], + 'redis' => [ + 'host' => '127.0.0.1', + 'port' => 6379, + 'con_required' => true, + ], + // Available cache types: memcache, sqlite, redis, apc, xcache (default of filecache) + 'engines' => [ + 'bb_cache' => ['filecache', []], + 'bb_config' => ['filecache', []], + 'tr_cache' => ['filecache', []], + 'session_cache' => ['filecache', []], + 'bb_cap_sid' => ['filecache', []], + 'bb_login_err' => ['filecache', []], + 'bb_poll_data' => ['filecache', []], + ], +]; -// Available cache types: memcache, sqlite, redis, apc, xcache (default of filecache) -# name => array( (string) type, (array) cfg ) -$bb_cfg['cache']['engines'] = array( - 'bb_cache' => array('filecache', array()), - 'bb_config' => array('filecache', array()), - 'tr_cache' => array('filecache', array()), - 'session_cache' => array('filecache', array()), - 'bb_cap_sid' => array('filecache', array()), - 'bb_login_err' => array('filecache', array()), - 'bb_poll_data' => array('filecache', array()), -); // Datastore // Available datastore types: memcache, sqlite, redis, apc, xcache (default filecache) $bb_cfg['datastore_type'] = 'filecache'; // Server -$bb_cfg['server_name'] = $domain_name; // The domain name from which this board runs +$bb_cfg['server_name'] = $domain_name; // The domain name from which this board runs $bb_cfg['server_port'] = (!empty($_SERVER['SERVER_PORT'])) ? $_SERVER['SERVER_PORT'] : 80; // The port your server is running on -$bb_cfg['script_path'] = '/'; // The path where FORUM is located relative to the domain name +$bb_cfg['script_path'] = '/'; // The path where FORUM is located relative to the domain name // GZip -$bb_cfg['gzip_compress'] = true; // compress output +$bb_cfg['gzip_compress'] = true; // compress output // Tracker -$bb_cfg['announce_interval'] = 2400; // Announce interval (default: 1800) -$bb_cfg['passkey_key'] = 'uk'; // Passkey key name in GET request -$bb_cfg['ignore_reported_ip'] = false; // Ignore IP reported by client -$bb_cfg['verify_reported_ip'] = true; // Verify IP reported by client against $_SERVER['HTTP_X_FORWARDED_FOR'] -$bb_cfg['allow_internal_ip'] = false; // Allow internal IP (10.xx.. etc.) +$bb_cfg['announce_interval'] = 2400; // Announce interval (default: 1800) +$bb_cfg['passkey_key'] = 'uk'; // Passkey key name in GET request +$bb_cfg['ignore_reported_ip'] = false; // Ignore IP reported by client +$bb_cfg['verify_reported_ip'] = true; // Verify IP reported by client against $_SERVER['HTTP_X_FORWARDED_FOR'] +$bb_cfg['allow_internal_ip'] = false; // Allow internal IP (10.xx.. etc.) // Ocelot -$bb_cfg['ocelot'] = array( +$bb_cfg['ocelot'] = [ 'enabled' => false, 'host' => $domain_name, 'port' => 34000, 'url' => "http://$domain_name:34000/", // with '/' - 'secret' => 'some_10_chars', // 10 chars - 'stats' => 'some_10_chars', // 10 chars -); + 'secret' => 'some_10_chars', // 10 chars + 'stats' => 'some_10_chars', // 10 chars +]; // FAQ url help link $bb_cfg['how_to_download_url_help'] = 'viewtopic.php?t=1'; // Как скачивать? @@ -127,10 +130,319 @@ $bb_cfg['ratio_url_help'] = 'viewtopic.php?t=3'; // Рейтинг и огран $bb_cfg['search_help_url'] = 'viewtopic.php?t=4'; // Помощь по поиску // Torrents -$bb_cfg['bt_min_ratio_allow_dl_tor'] = 0.3; // 0 - disable -$bb_cfg['bt_min_ratio_warning'] = 0.6; // 0 - disable +$bb_cfg['bt_min_ratio_allow_dl_tor'] = 0.3; // 0 - disable +$bb_cfg['bt_min_ratio_warning'] = 0.6; // 0 - disable -$tr_cfg = array( +$bb_cfg['show_dl_status_in_search'] = true; +$bb_cfg['show_dl_status_in_forum'] = true; +$bb_cfg['show_tor_info_in_dl_list'] = true; +$bb_cfg['allow_dl_list_names_mode'] = true; + +// Days to keep torrent registered +$bb_cfg['seeder_last_seen_days_keep'] = 0; // сколько дней назад был сид последний раз +$bb_cfg['seeder_never_seen_days_keep'] = 0; // сколько дней имеется статус "Сида не было никогда" + +// DL-Status (days to keep user's dlstatus records) +$bb_cfg['dl_will_days_keep'] = 360; +$bb_cfg['dl_down_days_keep'] = 180; +$bb_cfg['dl_complete_days_keep'] = 180; +$bb_cfg['dl_cancel_days_keep'] = 30; + +// Tor-Stats +$bb_cfg['torstat_days_keep'] = 60; // days to keep user's per-torrent stats + +// Tor-Help +$bb_cfg['torhelp_enabled'] = false; // find dead torrents (without seeder) that user might help seeding + +// URL's +$bb_cfg['ajax_url'] = 'ajax.php'; # "http://{$_SERVER['SERVER_NAME']}/ajax.php" +$bb_cfg['login_url'] = 'login.php'; # "http://{$domain_name}/login.php" +$bb_cfg['posting_url'] = 'posting.php'; # "http://{$domain_name}/posting.php" +$bb_cfg['pm_url'] = 'privmsg.php'; # "http://{$domain_name}/privmsg.php" + +// Language +$bb_cfg['charset'] = 'utf8'; // page charset +$bb_cfg['auto_language'] = true; // select user-preferred language automatically +$bb_cfg['lang'] = [ + 'ru' => [ + 'name' => 'Русский', + 'locale' => 'ru_RU.UTF-8', + 'encoding' => 'UTF-8', + ], + 'uk' => [ + 'name' => 'Український', + 'locale' => 'uk_UA.UTF-8', + 'encoding' => 'UTF-8', + ], + 'en' => [ + 'name' => 'English', + 'locale' => 'en_US.UTF-8', + 'encoding' => 'UTF-8', + ], +]; + +// Templates +$bb_cfg['templates'] = [ + 'default' => 'Стандартный', +]; + +$bb_cfg['tpl_name'] = 'default'; +$bb_cfg['stylesheet'] = 'main.css'; + +$bb_cfg['show_sidebar1_on_every_page'] = false; +$bb_cfg['show_sidebar2_on_every_page'] = false; + +// Cookie +$bb_cfg['cookie_domain'] = in_array($domain_name, [getenv('SERVER_ADDR'), 'localhost'], true) ? '' : ".$domain_name"; +$bb_cfg['cookie_secure'] = !empty($_SERVER['HTTPS']) ? 1 : 0; +$bb_cfg['cookie_prefix'] = 'bb_'; // 'bb_' + +// Sessions +$bb_cfg['session_update_intrv'] = 180; // sec +$bb_cfg['user_session_duration'] = 1800; // sec +$bb_cfg['admin_session_duration'] = 6 * 3600; // sec +$bb_cfg['user_session_gc_ttl'] = 1800; // number of seconds that a staled session entry may remain in sessions table +$bb_cfg['session_cache_gc_ttl'] = 1200; // sec +$bb_cfg['max_last_visit_days'] = 14; // days +$bb_cfg['last_visit_update_intrv'] = 3600; // sec + +// Registration +$bb_cfg['invalid_logins'] = 5; // Количество неверных попыток ввода пароля, перед выводом проверки капчей +$bb_cfg['new_user_reg_disabled'] = false; // Запретить регистрацию новых учетных записей +$bb_cfg['unique_ip'] = false; // Запретить регистрацию нескольких учетных записей с одного ip +$bb_cfg['new_user_reg_restricted'] = false; // Ограничить регистрацию новых пользователей по времени с 01:00 до 17:00 +$bb_cfg['reg_email_activation'] = true; // Требовать активацию учетной записи по email + +// Email +$bb_cfg['emailer'] = [ + 'enabled' => true, + 'smtp' => [ + 'enabled' => true, // send email via external SMTP server + 'host' => '', // SMTP server host + 'port' => 25, // SMTP server port + 'username' => '', // SMTP username (if server requires it) + 'password' => '', // SMTP password (if server requires it) + ], + 'ssl_type' => '', // SMTP ssl type (ssl or tls) +]; + +$bb_cfg['board_email'] = "noreply@$domain_name"; // admin email address +$bb_cfg['board_email_form'] = false; // can users send email to each other via board +$bb_cfg['board_email_sig'] = ''; // this text will be attached to all emails the board sends +$bb_cfg['board_email_sitename'] = $domain_name; // sitename used in all emails header + +$bb_cfg['topic_notify_enabled'] = true; +$bb_cfg['pm_notify_enabled'] = true; +$bb_cfg['group_send_email'] = true; +$bb_cfg['email_change_disabled'] = false; // disable changing email by user + +$bb_cfg['bounce_email'] = "bounce@$domain_name"; // bounce email address +$bb_cfg['tech_admin_email'] = "admin@$domain_name"; // email for sending error reports +$bb_cfg['abuse_email'] = "abuse@$domain_name"; +$bb_cfg['adv_email'] = "adv@$domain_name"; + +// Bugsnag error reporting +$bb_cfg['bugsnag'] = [ + 'enabled' => false, + 'api_key' => '', +]; + +// Special users +$bb_cfg['dbg_users'] = [ +# user_id => 'name', + 2 => 'admin', +]; +$bb_cfg['unlimited_users'] = [ +# user_id => 'name', + 2 => 'admin', +]; +$bb_cfg['super_admins'] = [ +# user_id => 'name', + 2 => 'admin', +]; + +// Date format +$bb_cfg['date_format'] = 'Y-m-d'; + +// Subforums +$bb_cfg['sf_on_first_page_only'] = true; + +// Forums +$bb_cfg['allowed_topics_per_page'] = [50, 100, 150, 200, 250, 300]; + +// Topics +$bb_cfg['show_quick_reply'] = true; +$bb_cfg['show_rank_text'] = false; +$bb_cfg['show_rank_image'] = true; +$bb_cfg['show_poster_joined'] = true; +$bb_cfg['show_poster_posts'] = true; +$bb_cfg['show_poster_from'] = true; +$bb_cfg['show_bot_nick'] = false; +$bb_cfg['text_buttons'] = false; // replace EDIT, QUOTE... images with text links +$bb_cfg['parse_ed2k_links'] = true; // make ed2k links clickable +$bb_cfg['post_date_format'] = 'd-M-Y H:i'; +$bb_cfg['ext_link_new_win'] = true; // open external links in new window + +$bb_cfg['topic_moved_days_keep'] = 7; // remove topic moved links after xx days (or FALSE to disable) +$bb_cfg['allowed_posts_per_page'] = [15, 30, 50, 100]; +$bb_cfg['user_signature_start'] = '

_________________
'; +$bb_cfg['user_signature_end'] = '
'; // Это позволит использовать html теги, которые требуют закрытия. Например или + +// Posts +$bb_cfg['use_posts_cache'] = true; +$bb_cfg['posts_cache_days_keep'] = 14; +$bb_cfg['max_post_length'] = 120000; +$bb_cfg['use_ajax_posts'] = true; + +// Search +$bb_cfg['search_engine_type'] = 'mysql'; // none, mysql, sphinx +$bb_cfg['sphinx_topic_titles_host'] = '127.0.0.1'; +$bb_cfg['sphinx_topic_titles_port'] = 3312; +$bb_cfg['sphinx_config_path'] = realpath("../install/sphinx/sphinx.conf"); +$bb_cfg['disable_ft_search_in_posts'] = false; // disable searching in post bodies +$bb_cfg['disable_search_for_guest'] = true; +$bb_cfg['allow_search_in_bool_mode'] = true; +$bb_cfg['max_search_words_per_post'] = 200; +$bb_cfg['search_min_word_len'] = 3; +$bb_cfg['search_max_word_len'] = 35; +$bb_cfg['limit_max_search_results'] = false; +$bb_cfg['spam_filter_file_path'] = ''; // BB_PATH .'/misc/spam_filter_words.txt'; + +// Posting +$bb_cfg['prevent_multiposting'] = true; // replace "reply" with "edit last msg" if user (not admin or mod) is last topic poster +$bb_cfg['max_smilies'] = 10; // Максимальное число смайлов в посте (0 - без ограничения) + +// PM +$bb_cfg['privmsg_disable'] = false; // отключить систему личных сообщений на форуме +$bb_cfg['max_outgoing_pm_cnt'] = 10; // ограничение на кол. одновременных исходящих лс (для замедления рассылки спама) +$bb_cfg['max_inbox_privmsgs'] = 500; // максимальное число сообщений в папке входящие +$bb_cfg['max_savebox_privmsgs'] = 500; // максимальное число сообщений в папке сохраненные +$bb_cfg['max_sentbox_privmsgs'] = 500; // максимальное число сообщений в папке отправленные +$bb_cfg['pm_days_keep'] = 180; // время хранения ЛС + +// Actions log +$bb_cfg['log_days_keep'] = 90; + +// Users +$bb_cfg['color_nick'] = true; // Окраска ников пользователей по user_rank +$bb_cfg['user_not_activated_days_keep'] = 7; // "not activated" == "not finished registration" +$bb_cfg['user_not_active_days_keep'] = 180; // inactive users but only with no posts + +// Groups +$bb_cfg['group_members_per_page'] = 50; + +// Tidy +$bb_cfg['tidy_post'] = (!in_array('tidy', get_loaded_extensions(), true)) ? false : true; + +// Misc +$bb_cfg['mem_on_start'] = MEM_USAGE ? memory_get_usage() : 0; +$bb_cfg['translate_dates'] = true; // in displaying time +$bb_cfg['use_word_censor'] = true; + +$bb_cfg['last_visit_date_format'] = 'd-M H:i'; +$bb_cfg['last_post_date_format'] = 'd-M-y H:i'; +$bb_cfg['poll_max_days'] = 180; // сколько дней с момента создания темы опрос будет активным + +$bb_cfg['allow_change'] = [ + 'language' => true, + 'dateformat' => true, +]; + +$bb_cfg['trash_forum_id'] = 0; // (int) 7 + +$bb_cfg['first_logon_redirect_url'] = 'index.php'; +$bb_cfg['terms_and_conditions_url'] = 'terms.php'; +$bb_cfg['tor_help_links'] = 'terms.php'; + +$bb_cfg['user_agreement_url'] = 'info.php?show=user_agreement'; +$bb_cfg['copyright_holders_url'] = 'info.php?show=copyright_holders'; +$bb_cfg['advert_url'] = 'info.php?show=advert'; + +// Extensions +$bb_cfg['file_id_ext'] = [ + 1 => 'gif', + 2 => 'gz', + 3 => 'jpg', + 4 => 'png', + 5 => 'rar', + 6 => 'tar', + 7 => 'tiff', + 8 => 'torrent', + 9 => 'zip', +]; + +// Attachments +$bb_cfg['attach'] = [ + 'upload_path' => DATA_DIR . '/torrent_files', // путь к директории с torrent файлами + 'max_size' => 5 * 1024 * 1024, // максимальный размер файла в байтах +]; + +$bb_cfg['tor_forums_allowed_ext'] = ['torrent', 'zip', 'rar']; // для разделов с раздачами +$bb_cfg['gen_forums_allowed_ext'] = ['zip', 'rar']; // для обычных разделов + +// Avatars +$bb_cfg['avatars'] = [ + 'allowed_ext' => ['gif', 'jpg', 'jpeg', 'png'], // разрешенные форматы файлов + 'bot_avatar' => '/gallery/bot.gif', // аватара бота + 'max_size' => 100 * 1024, // размер аватары в байтах + 'max_height' => 100, // высота аватара в px + 'max_width' => 100, // ширина аватара в px + 'no_avatar' => '/gallery/noavatar.png', // дефолтная аватара + 'upload_path' => BB_PATH . '/data/avatars/', // путь к директории с аватарами + 'up_allowed' => true, // разрешить загрузку аватар +]; + +// Group avatars +$bb_cfg['group_avatars'] = [ + 'allowed_ext' => ['gif', 'jpg', 'jpeg', 'png'], // разрешенные форматы файлов + 'max_size' => 300 * 1024, // размер аватары в байтах + 'max_height' => 300, // высота аватара в px + 'max_width' => 300, // ширина аватара в px + 'no_avatar' => '/gallery/noavatar.png', // дефолтная аватара + 'upload_path' => BB_PATH . '/data/avatars/', // путь к директории с аватарами + 'up_allowed' => true, // разрешить загрузку аватар +]; + +// Captcha +// Get a Google reCAPTCHA API Key: https://www.google.com/recaptcha/admin +$bb_cfg['captcha'] = [ + 'disabled' => false, + 'public_key' => '', // your public key + 'secret_key' => '', // your secret key + 'theme' => 'light', // light or dark +]; + +// Atom feed +$bb_cfg['atom'] = [ + 'path' => INT_DATA_DIR . '/atom', // without ending slash + 'url' => './internal_data/atom', // without ending slash +]; + +// Nofollow +$bb_cfg['nofollow'] = [ + 'disabled' => false, + 'allowed_url' => [$domain_name], // 'allowed.site', 'www.allowed.site' +]; + +// Page settings +$bb_cfg['page'] = [ + 'show_torhelp' => [ + #BB_SCRIPT => true + 'index' => true, + 'tracker' => true, + ], + 'show_sidebar1' => [ + #BB_SCRIPT => true + 'index' => true, + ], + 'show_sidebar2' => [ + #BB_SCRIPT => true + 'index' => true, + ] +]; + +// Tracker settings +$bb_cfg['tracker'] = [ 'autoclean' => true, 'off' => false, 'off_reason' => 'temporarily disabled', @@ -152,63 +464,86 @@ $tr_cfg = array( 'gold_silver_enabled' => true, 'retracker' => true, 'retracker_host' => 'http://retracker.local/announce', -); + 'freeleech' => false, + 'guest_tracker' => true, +]; -$bb_cfg['show_dl_status_in_search'] = true; -$bb_cfg['show_dl_status_in_forum'] = true; - -$bb_cfg['show_tor_info_in_dl_list'] = true; -$bb_cfg['allow_dl_list_names_mode'] = true; - -$bb_cfg['torrent_name_style'] = true; // use torrent name style [yoursite.com].txxx.torrent -$bb_cfg['tor_help_links'] = 'terms.php'; - -// Сколько дней сохранять торрент зарегистрированным / Days to keep torrent registered, if: -$bb_cfg['seeder_last_seen_days_keep'] = 0; // сколько дней назад был сид последний раз -$bb_cfg['seeder_never_seen_days_keep'] = 0; // сколько дней имеется статус "Сида не было никогда" - -/** - * Ratio limits - * - * Don't change the order of ratios (from 0 to 1): - * rating < 0.4 -- allow only 1 torrent for leeching - * rating < 0.5 -- only 2 - * rating < 0.6 -- only 3 - * rating > 0.6 -- depend on your tracker config limits (in "ACP - Tracker Config - Limits") - */ -$rating_limits = array( +// Ratio settings +// Don't change the order of ratios (from 0 to 1) +// rating < 0.4 -- allow only 1 torrent for leeching +// rating < 0.5 -- only 2 +// rating < 0.6 -- only 3 +// rating > 0.6 -- depend on your tracker config limits (in "ACP - Tracker Config - Limits") +$bb_cfg['rating'] = [ '0.4' => 1, '0.5' => 2, '0.6' => 3, -); +]; -// DL-Status (days to keep user's dlstatus records) -$bb_cfg['dl_will_days_keep'] = 360; -$bb_cfg['dl_down_days_keep'] = 180; -$bb_cfg['dl_complete_days_keep'] = 180; -$bb_cfg['dl_cancel_days_keep'] = 30; +// Иконки статусов раздач +$bb_cfg['tor_icons'] = [ + TOR_NOT_APPROVED => '*', + TOR_CLOSED => 'x', + TOR_APPROVED => '', + TOR_NEED_EDIT => '?', + TOR_NO_DESC => '!', + TOR_DUP => 'D', + TOR_CLOSED_CPHOLD => '©', + TOR_CONSUMED => '', + TOR_DOUBTFUL => '#', + TOR_CHECKING => '%', + TOR_TMP => 'T', + TOR_PREMOD => '', +]; -// Tor-Stats -$bb_cfg['torstat_days_keep'] = 60; // days to keep user's per-torrent stats +// Запрет на скачивание +$bb_cfg['tor_frozen'] = [ + TOR_CHECKING => true, + TOR_CLOSED => true, + TOR_CLOSED_CPHOLD => true, + TOR_CONSUMED => true, + TOR_DUP => true, + TOR_NO_DESC => true, + TOR_PREMOD => true, +]; -// Tor-Help -$bb_cfg['torhelp_enabled'] = false; // find dead torrents (without seeder) that user might help seeding +// Разрешение на скачку автором, если закрыто на скачивание. +$bb_cfg['tor_frozen_author_download'] = [ + TOR_CHECKING => true, + TOR_NO_DESC => true, + TOR_PREMOD => true, +]; -$page_cfg['show_torhelp'] = array( -# BB_SCRIPT => true - 'index' => true, - 'tracker' => true, -); +// Запрет на редактирование головного сообщения +$bb_cfg['tor_cannot_edit'] = [ + TOR_CHECKING => true, + TOR_CLOSED => true, + TOR_CONSUMED => true, + TOR_DUP => true, +]; -// URL's -$bb_cfg['ajax_url'] = 'ajax.php'; # "http://{$_SERVER['SERVER_NAME']}/ajax.php" -$bb_cfg['login_url'] = 'login.php'; # "http://{$domain_name}/login.php" -$bb_cfg['posting_url'] = 'posting.php'; # "http://{$domain_name}/posting.php" -$bb_cfg['pm_url'] = 'privmsg.php'; # "http://{$domain_name}/privmsg.php" +// Запрет на создание новых раздач если стоит статус недооформлено/неоформлено/сомнительно +$bb_cfg['tor_cannot_new'] = [TOR_NEED_EDIT, TOR_NO_DESC, TOR_DOUBTFUL]; -// Language -$bb_cfg['charset'] = 'utf8'; // page charset -$bb_cfg['auto_language'] = true; // select user-preferred language automatically +// Разрешение на ответ релизера, если раздача исправлена. +$bb_cfg['tor_reply'] = [TOR_NEED_EDIT, TOR_NO_DESC, TOR_DOUBTFUL]; + +// Если такой статус у релиза, то статистика раздачи будет скрыта +$bb_cfg['tor_no_tor_act'] = [ + TOR_CLOSED => true, + TOR_DUP => true, + TOR_CLOSED_CPHOLD => true, + TOR_CONSUMED => true, +]; + +// Vote graphic length defines the maximum length of a vote result graphic, ie. 100% = this length +$bb_cfg['vote_graphic_length'] = 205; +$bb_cfg['privmsg_graphic_length'] = 175; +$bb_cfg['topic_left_column_witdh'] = 150; + +// Images auto-resize +$bb_cfg['post_img_width_decr'] = 52; +$bb_cfg['attach_img_width_decr'] = 130; if (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && $bb_cfg['auto_language']) { $user_lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); @@ -226,302 +561,3 @@ if (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && $bb_cfg['auto_language']) { $bb_cfg['default_lang_dir'] = LANG_ROOT_DIR . '/en/'; } } - -$bb_cfg['lang'] = array( - 'ru' => array( - 'name' => 'Русский', - 'locale' => 'ru_RU.UTF-8', - 'encoding' => 'UTF-8', - ), - 'uk' => array( - 'name' => 'Український', - 'locale' => 'uk_UA.UTF-8', - 'encoding' => 'UTF-8', - ), - 'en' => array( - 'name' => 'English', - 'locale' => 'en_US.UTF-8', - 'encoding' => 'UTF-8', - ), -); - -// Templates -$bb_cfg['templates'] = array( -// 'folder' => 'Name', - 'default' => 'Стандартный', -); - -$bb_cfg['tpl_name'] = 'default'; -$bb_cfg['stylesheet'] = 'main.css'; - -$bb_cfg['show_sidebar1_on_every_page'] = false; -$bb_cfg['show_sidebar2_on_every_page'] = false; - -$page_cfg['show_sidebar1'] = array( -# BB_SCRIPT => true - 'index' => true, -); -$page_cfg['show_sidebar2'] = array( -# BB_SCRIPT => true - 'index' => true, -); - -// Cookie -$bb_cfg['cookie_domain'] = in_array($domain_name, array(getenv('SERVER_ADDR'), 'localhost'), true) ? '' : ".$domain_name"; -$bb_cfg['cookie_secure'] = (!empty($_SERVER['HTTPS']) ? 1 : 0); -$bb_cfg['cookie_prefix'] = 'bb_'; // 'bb_' - -// Sessions -$bb_cfg['session_update_intrv'] = 180; // sec -$bb_cfg['user_session_duration'] = 1800; // sec -$bb_cfg['admin_session_duration'] = 6 * 3600; // sec -$bb_cfg['user_session_gc_ttl'] = 1800; // number of seconds that a staled session entry may remain in sessions table -$bb_cfg['session_cache_gc_ttl'] = 1200; // sec -$bb_cfg['max_last_visit_days'] = 14; // days -$bb_cfg['last_visit_update_intrv'] = 3600; // sec - -// Registration -$bb_cfg['invalid_logins'] = 5; // Количество неверных попыток ввода пароля, перед выводом проверки капчей -$bb_cfg['new_user_reg_disabled'] = false; // Запретить регистрацию новых учетных записей -$bb_cfg['unique_ip'] = false; // Запретить регистрацию нескольких учетных записей с одного ip -$bb_cfg['new_user_reg_restricted'] = false; // Ограничить регистрацию новых пользователей по времени с 01:00 до 17:00 -$bb_cfg['reg_email_activation'] = true; // Требовать активацию учетной записи по email - -// Email -$bb_cfg['emailer'] = [ - 'enabled' => true, - 'smtp' => [ - 'enabled' => true, // send email via external SMTP server - 'host' => '', // SMTP server host - 'port' => 25, // SMTP server port - 'username' => '', // SMTP username (if server requires it) - 'password' => '', // SMTP password (if server requires it) - ], - 'ssl_type' => '', // SMTP ssl type (ssl or tls) -]; - -$bb_cfg['board_email'] = "noreply@$domain_name"; // admin email address -$bb_cfg['board_email_form'] = false; // can users send email to each other via board -$bb_cfg['board_email_sig'] = ''; // this text will be attached to all emails the board sends -$bb_cfg['board_email_sitename'] = $domain_name; // sitename used in all emails header - -$bb_cfg['topic_notify_enabled'] = true; -$bb_cfg['pm_notify_enabled'] = true; -$bb_cfg['group_send_email'] = true; -$bb_cfg['email_change_disabled'] = false; // disable changing email by user - -$bb_cfg['bounce_email'] = "bounce@$domain_name"; // bounce email address -$bb_cfg['tech_admin_email'] = "admin@$domain_name"; // email for sending error reports -$bb_cfg['abuse_email'] = "abuse@$domain_name"; -$bb_cfg['adv_email'] = "adv@$domain_name"; - -// Bugsnag error reporting -$bb_cfg['bugsnag'] = [ - 'enabled' => false, - 'api_key' => '', -]; - -// Special users -$bb_cfg['dbg_users'] = array( -# user_id => 'name', - 2 => 'admin', -); - -$bb_cfg['unlimited_users'] = array( -# user_id => 'name', - 2 => 'admin', -); - -$bb_cfg['super_admins'] = array( -# user_id => 'name', - 2 => 'admin', -); - -// Check some variable -// Magic quotes -if (get_magic_quotes_gpc()) { - die('Set magic_quotes off'); -} -// JSON -if (!function_exists('json_encode')) { - die('Json_encode not installed'); -} - -// Date format -$bb_cfg['date_format'] = 'Y-m-d'; - -// Subforums -$bb_cfg['sf_on_first_page_only'] = true; - -// Forums -$bb_cfg['allowed_topics_per_page'] = array(50, 100, 150, 200, 250, 300); - -// Topics -$bb_cfg['show_quick_reply'] = true; -$bb_cfg['show_rank_text'] = false; -$bb_cfg['show_rank_image'] = true; -$bb_cfg['show_poster_joined'] = true; -$bb_cfg['show_poster_posts'] = true; -$bb_cfg['show_poster_from'] = true; -$bb_cfg['show_bot_nick'] = false; -$bb_cfg['text_buttons'] = false; // replace EDIT, QUOTE... images with text links -$bb_cfg['parse_ed2k_links'] = true; // make ed2k links clickable -$bb_cfg['post_date_format'] = 'd-M-Y H:i'; -$bb_cfg['ext_link_new_win'] = true; // open external links in new window - -$bb_cfg['topic_moved_days_keep'] = 7; // remove topic moved links after xx days (or FALSE to disable) - -$bb_cfg['allowed_posts_per_page'] = array(15, 30, 50, 100); -$bb_cfg['user_signature_start'] = '

_________________
'; -$bb_cfg['user_signature_end'] = '
'; // Это позволит использовать html теги, которые требуют закрытия. Например
или - -// Posts -$bb_cfg['use_posts_cache'] = true; // if you switch from ON to OFF, you need to TRUNCATE `bb_posts_html` table -$bb_cfg['posts_cache_days_keep'] = 14; -$bb_cfg['max_post_length'] = 120000; // bytes -$bb_cfg['use_ajax_posts'] = true; - -// Search -$bb_cfg['search_engine_type'] = 'mysql'; // none, mysql, sphinx -$bb_cfg['sphinx_topic_titles_host'] = '127.0.0.1'; -$bb_cfg['sphinx_topic_titles_port'] = 3312; -$bb_cfg['sphinx_config_path'] = realpath("../install/sphinx/sphinx.conf"); -$bb_cfg['disable_ft_search_in_posts'] = false; // disable searching in post bodies -$bb_cfg['disable_search_for_guest'] = true; -$bb_cfg['allow_search_in_bool_mode'] = true; -$bb_cfg['max_search_words_per_post'] = 200; -$bb_cfg['search_min_word_len'] = 3; -$bb_cfg['search_max_word_len'] = 35; -$bb_cfg['limit_max_search_results'] = false; -$bb_cfg['spam_filter_file_path'] = ''; // BB_PATH .'/misc/spam_filter_words.txt'; - -// Posting -$bb_cfg['prevent_multiposting'] = true; // replace "reply" with "edit last msg" if user (not admin or mod) is last topic poster -$bb_cfg['max_smilies'] = 10; // Максимальное число смайлов в посте (0 - без ограничения) - -// PM -$bb_cfg['privmsg_disable'] = false; // отключить систему личных сообщений на форуме -$bb_cfg['max_outgoing_pm_cnt'] = 10; // ограничение на кол. одновременных исходящих лс (для замедления рассылки спама) -$bb_cfg['max_inbox_privmsgs'] = 200; // максимальное число сообщений в папке входящие -$bb_cfg['max_savebox_privmsgs'] = 25; // максимальное число сообщений в папке сохраненные -$bb_cfg['max_sentbox_privmsgs'] = 50; // максимальное число сообщений в папке отправленные -$bb_cfg['pm_days_keep'] = 180; // время хранения ЛС - -// Actions log -$bb_cfg['log_days_keep'] = 90; - -// Users -$bb_cfg['color_nick'] = true; // Окраска ников пользователей по user_rank -$bb_cfg['user_not_activated_days_keep'] = 7; // "not activated" == "not finished registration" -$bb_cfg['user_not_active_days_keep'] = 180; // inactive users but only with no posts - -// Groups -$bb_cfg['group_members_per_page'] = 50; - -// Tidy -$bb_cfg['tidy_post'] = (!in_array('tidy', get_loaded_extensions(), true)) ? false : true; - -// Misc -$bb_cfg['mem_on_start'] = MEM_USAGE ? memory_get_usage() : 0; - -$bb_cfg['translate_dates'] = true; // in displaying time -$bb_cfg['use_word_censor'] = true; - -$bb_cfg['last_visit_date_format'] = 'd-M H:i'; -$bb_cfg['last_post_date_format'] = 'd-M-y H:i'; -$bb_cfg['poll_max_days'] = 180; // сколько дней с момента создания темы опрос будет активным - -$bb_cfg['allow_change'] = array( - 'language' => true, - 'dateformat' => true, -); - -$banned_user_agents = array( -// Download Master -# 'download', -# 'master', -// Others -# 'wget', -); - -$bb_cfg['trash_forum_id'] = 0; // (int) 7 - -$bb_cfg['first_logon_redirect_url'] = 'index.php'; -$bb_cfg['terms_and_conditions_url'] = 'terms.php'; - -$bb_cfg['user_agreement_url'] = 'info.php?show=user_agreement'; -$bb_cfg['copyright_holders_url'] = 'info.php?show=copyright_holders'; -$bb_cfg['advert_url'] = 'info.php?show=advert'; - -// Extensions -$bb_cfg['file_id_ext'] = array( - 1 => 'gif', - 2 => 'gz', - 3 => 'jpg', - 4 => 'png', - 5 => 'rar', - 6 => 'tar', - 7 => 'tiff', - 8 => 'torrent', - 9 => 'zip', -); - -// Attachments -$bb_cfg['attach'] = array( - 'upload_path' => DATA_DIR . '/torrent_files', // путь к директории с torrent файлами - 'max_size' => 250 * 1024, // размер аватары в байтах -); - -$bb_cfg['tor_forums_allowed_ext'] = array('torrent', 'zip', 'rar'); // для разделов с раздачами -$bb_cfg['gen_forums_allowed_ext'] = array('zip', 'rar'); // для обычных разделов - -// Avatars -$bb_cfg['avatars'] = array( - 'allowed_ext' => array('gif', 'jpg', 'jpeg', 'png'), // разрешенные форматы файлов - 'bot_avatar' => '/gallery/bot.gif', // аватара бота - 'max_size' => 100 * 1024, // размер аватары в байтах - 'max_height' => 100, // высота аватара в px - 'max_width' => 100, // ширина аватара в px - 'no_avatar' => '/gallery/noavatar.png', // дефолтная аватара - 'upload_path' => BB_PATH . '/data/avatars', // путь к директории с аватарами - 'up_allowed' => true, // разрешить загрузку аватар -); - -// Group avatars -$bb_cfg['group_avatars'] = array( - 'allowed_ext' => array('gif', 'jpg', 'jpeg', 'png'), // разрешенные форматы файлов - 'max_size' => 300 * 1024, // размер аватары в байтах - 'max_height' => 300, // высота аватара в px - 'max_width' => 300, // ширина аватара в px - 'no_avatar' => '/gallery/noavatar.png', // дефолтная аватара - 'upload_path' => BB_PATH . '/data/avatars', // путь к директории с аватарами - 'up_allowed' => true, // разрешить загрузку аватар -); - -// Captcha -// Get a Google reCAPTCHA API Key: https://www.google.com/recaptcha/admin -$bb_cfg['captcha'] = array( - 'disabled' => false, - 'public_key' => '', // your public key - 'secret_key' => '', // your secret key - 'theme' => 'light', // light or dark -); - -// Atom feed -$bb_cfg['atom'] = array( - 'path' => INT_DATA_DIR . '/atom', // without ending slash - 'url' => './internal_data/atom', // without ending slash -); - -// Nofollow -$bb_cfg['nofollow'] = array( - 'disabled' => false, - 'allowed_url' => array($domain_name), // 'allowed.site', 'www.allowed.site' -); - -// Local config -if (file_exists(BB_PATH . '/library/config.local.php')) { - include_once(BB_PATH . '/library/config.local.php'); -} - -define('BB_CFG_LOADED', true); diff --git a/library/defines.php b/library/defines.php index d2dc5723a..06b8c307d 100644 --- a/library/defines.php +++ b/library/defines.php @@ -113,3 +113,10 @@ define('TOR_DOUBTFUL', 8); // сомнительно define('TOR_CHECKING', 9); // проверяется define('TOR_TMP', 10); // временная define('TOR_PREMOD', 11); // премодерация + +define('CRON_LOG_ENABLED', true); // global ON/OFF +define('CRON_FORCE_LOG', false); // always log regardless of job settings +define('CRON_DIR', INC_DIR . '/cron/'); +define('CRON_JOB_DIR', CRON_DIR . 'jobs/'); +define('CRON_LOG_DIR', 'cron'); // inside LOG_DIR +define('CRON_LOG_FILE', 'cron'); // without ext diff --git a/library/includes/bbcode.php b/library/includes/bbcode.php index 61742f255..a2693a74d 100644 --- a/library/includes/bbcode.php +++ b/library/includes/bbcode.php @@ -29,6 +29,7 @@ if (!defined('BB_ROOT')) { $datastore->enqueue(array( 'smile_replacements', + 'cat_forums', )); $page_cfg['include_bbcode_js'] = true; diff --git a/library/includes/cron/.htaccess b/library/includes/cron/.htaccess deleted file mode 100644 index baa56e5a3..000000000 --- a/library/includes/cron/.htaccess +++ /dev/null @@ -1,2 +0,0 @@ -order allow,deny -deny from all \ No newline at end of file diff --git a/library/includes/cron/cron_check.php b/library/includes/cron/cron_check.php index 3e5b31033..209f3b948 100644 --- a/library/includes/cron/cron_check.php +++ b/library/includes/cron/cron_check.php @@ -43,8 +43,7 @@ if ($cron_jobs) { foreach ($cron_jobs as $job) { if ($job['disable_board']) { - cron_disable_board(); - sleep(10); + TorrentPier\Helpers\CronHelper::disableBoard(); break; } } @@ -52,7 +51,7 @@ if ($cron_jobs) { require(CRON_DIR . 'cron_run.php'); // Update cron_last_check - bb_update_config(array('cron_last_check' => (TIMENOW + 10))); + bb_update_config(array('cron_last_check' => TIMENOW + 10)); } else { bb_log(date('H:i:s - ') . getmypid() . ' --x- no active jobs found ----------------------------------------------' . LOG_LF, CRON_LOG_DIR . '/cron_check'); } diff --git a/library/includes/cron/cron_init.php b/library/includes/cron/cron_init.php deleted file mode 100644 index b4e5794d9..000000000 --- a/library/includes/cron/cron_init.php +++ /dev/null @@ -1,82 +0,0 @@ - 600) { return; // чтобы daily скрипты не блокировали надолго interval'ные } diff --git a/library/includes/cron/jobs/.htaccess b/library/includes/cron/jobs/.htaccess deleted file mode 100644 index baa56e5a3..000000000 --- a/library/includes/cron/jobs/.htaccess +++ /dev/null @@ -1,2 +0,0 @@ -order allow,deny -deny from all \ No newline at end of file diff --git a/library/includes/cron/jobs/board_maintenance.php b/library/includes/cron/jobs/board_maintenance.php index 1221c3219..55b1eb204 100644 --- a/library/includes/cron/jobs/board_maintenance.php +++ b/library/includes/cron/jobs/board_maintenance.php @@ -50,12 +50,11 @@ if ($poll_max_days = (int)$bb_cfg['poll_max_days']) { WHERE topic_id BETWEEN $start_id AND $end_id AND vote_dt < DATE_SUB(NOW(), INTERVAL $poll_max_days DAY) "); + if ($end_id > $finish_id) { break; } - if (!($start_id % ($per_cycle * 10))) { - sleep(1); - } + $start_id += $per_cycle; } } diff --git a/library/includes/cron/jobs/prune_inactive_users.php b/library/includes/cron/jobs/prune_inactive_users.php index 8b2a49534..c0ff5f177 100644 --- a/library/includes/cron/jobs/prune_inactive_users.php +++ b/library/includes/cron/jobs/prune_inactive_users.php @@ -70,6 +70,4 @@ while (true) { if (count($prune_users) < $users_per_cycle) { break; } - - sleep(3); } diff --git a/library/includes/cron/jobs/sessions_cleanup.php b/library/includes/cron/jobs/sessions_cleanup.php index 2424120e0..853f92d1b 100644 --- a/library/includes/cron/jobs/sessions_cleanup.php +++ b/library/includes/cron/jobs/sessions_cleanup.php @@ -59,8 +59,6 @@ DB()->query(" DB()->unlock(); // ############################ Tables UNLOCKED ############################## -sleep(5); - // Delete staled sessions DB()->query(" DELETE s diff --git a/library/includes/cron/jobs/tr_cleanup_and_dlstat.php b/library/includes/cron/jobs/tr_cleanup_and_dlstat.php index 144106d73..ca5a1d8b5 100644 --- a/library/includes/cron/jobs/tr_cleanup_and_dlstat.php +++ b/library/includes/cron/jobs/tr_cleanup_and_dlstat.php @@ -43,7 +43,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 ($tr_cfg['update_dlstat']) { +if ($bb_cfg['tracker']['update_dlstat']) { // ############################ Tables LOCKED ################################ DB()->lock(array( BB_BT_TRACKER, @@ -80,16 +80,16 @@ DB()->query(" "); // Clean peers table -if ($tr_cfg['autoclean']) { +if ($bb_cfg['tracker']['autoclean']) { $announce_interval = max((int)$bb_cfg['announce_interval'], 60); - $expire_factor = max((float)$tr_cfg['expire_factor'], 1); + $expire_factor = max((float)$bb_cfg['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 ($tr_cfg['update_dlstat']) { +if ($bb_cfg['tracker']['update_dlstat']) { // Set "only 1 seeder" bonus DB()->query(" UPDATE diff --git a/library/includes/cron/jobs/tr_make_snapshot.php b/library/includes/cron/jobs/tr_make_snapshot.php index 6f2824aa3..8e65bafef 100644 --- a/library/includes/cron/jobs/tr_make_snapshot.php +++ b/library/includes/cron/jobs/tr_make_snapshot.php @@ -97,10 +97,6 @@ while (true) { break; } - if (!($start_id % ($per_cycle * 10))) { - sleep(1); - } - $start_id += $per_cycle; } diff --git a/library/includes/datastore/.htaccess b/library/includes/datastore/.htaccess deleted file mode 100644 index baa56e5a3..000000000 --- a/library/includes/datastore/.htaccess +++ /dev/null @@ -1,2 +0,0 @@ -order allow,deny -deny from all \ No newline at end of file diff --git a/library/includes/functions.php b/library/includes/functions.php index e786b8853..ef7dc9d77 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -1853,16 +1853,16 @@ function get_title_match_topics($title_match_sql, array $forum_ids = array()) { global $bb_cfg, $sphinx, $userdata, $title_match, $lang; - $where_ids = array(); + $where_ids = []; if ($forum_ids) { - $forum_ids = array_diff($forum_ids, array(0 => 0)); + $forum_ids = array_diff($forum_ids, [0 => 0]); } $title_match_sql = encode_text_match($title_match_sql); if ($bb_cfg['search_engine_type'] == 'sphinx') { $sphinx = init_sphinx(); - $where = ($title_match) ? 'topics' : 'posts'; + $where = $title_match ? 'topics' : 'posts'; $sphinx->setServer($bb_cfg['sphinx_topic_titles_host'], $bb_cfg['sphinx_topic_titles_port']); if ($forum_ids) { @@ -1924,12 +1924,12 @@ function decode_text_match($txt) function pad_with_space($str) { - return ($str) ? " $str " : $str; + return $str ? " $str " : $str; } function create_magnet($infohash, $auth_key, $logged_in) { - global $bb_cfg, $_GET, $userdata, $images; + global $bb_cfg, $_GET, $images; $passkey_url = ((!$logged_in || isset($_GET['no_passkey'])) && $bb_cfg['bt_tor_browse_only_reg']) ? '' : "?{$bb_cfg['passkey_key']}=$auth_key"; return ''; @@ -1940,9 +1940,9 @@ function set_die_append_msg($forum_id = null, $topic_id = null, $group_id = null global $lang, $template; $msg = ''; - $msg .= ($topic_id) ? '

' . $lang['TOPIC_RETURN'] . '

' : ''; - $msg .= ($forum_id) ? '

' . $lang['FORUM_RETURN'] . '

' : ''; - $msg .= ($group_id) ? '

' . $lang['GROUP_RETURN'] . '

' : ''; + $msg .= $topic_id ? '

' . $lang['TOPIC_RETURN'] . '

' : ''; + $msg .= $forum_id ? '

' . $lang['FORUM_RETURN'] . '

' : ''; + $msg .= $group_id ? '

' . $lang['GROUP_RETURN'] . '

' : ''; $msg .= '

' . $lang['INDEX_RETURN'] . '

'; $template->assign_var('BB_DIE_APPEND_MSG', $msg); } @@ -2052,18 +2052,18 @@ function gender_image($gender) if (!$bb_cfg['gender']) { $user_gender = ''; return $user_gender; - } else { - switch ($gender) { - case MALE: - $user_gender = '' . $lang['GENDER_SELECT'][MALE] . ''; - break; - case FEMALE: - $user_gender = '' . $lang['GENDER_SELECT'][FEMALE] . ''; - break; - default: - $user_gender = '' . $lang['GENDER_SELECT'][NOGENDER] . ''; - break; - } + } + + switch ($gender) { + case MALE: + $user_gender = '' . $lang['GENDER_SELECT'][MALE] . ''; + break; + case FEMALE: + $user_gender = '' . $lang['GENDER_SELECT'][FEMALE] . ''; + break; + default: + $user_gender = '' . $lang['GENDER_SELECT'][NOGENDER] . ''; + break; } return $user_gender; @@ -2071,23 +2071,23 @@ function gender_image($gender) function is_gold($type) { - global $lang, $tr_cfg; + global $lang, $bb_cfg; - if (!$tr_cfg['gold_silver_enabled']) { + if (!$bb_cfg['tracker']['gold_silver_enabled']) { $is_gold = ''; return $is_gold; - } else { - switch ($type) { - case TOR_TYPE_GOLD: - $is_gold = ' '; - break; - case TOR_TYPE_SILVER: - $is_gold = ' '; - break; - default: - $is_gold = ''; - break; - } + } + + switch ($type) { + case TOR_TYPE_GOLD: + $is_gold = ' '; + break; + case TOR_TYPE_SILVER: + $is_gold = ' '; + break; + default: + $is_gold = ''; + break; } return $is_gold; diff --git a/library/includes/functions_admin_cron.php b/library/includes/functions_admin_cron.php index 080f9d8a5..e1b63fef2 100644 --- a/library/includes/functions_admin_cron.php +++ b/library/includes/functions_admin_cron.php @@ -25,7 +25,7 @@ function run_jobs($jobs) { - global $bb_cfg, $tr_cfg, $datastore; + global $bb_cfg, $datastore; define('IN_CRON', true); @@ -62,7 +62,7 @@ function run_jobs($jobs) END WHERE cron_id IN ($jobs) "); - sleep(3); + return; } diff --git a/library/includes/functions_torrent.php b/library/includes/functions_torrent.php index cd4b92c91..c04c3154f 100644 --- a/library/includes/functions_torrent.php +++ b/library/includes/functions_torrent.php @@ -239,7 +239,7 @@ function change_tor_type($attach_id, $tor_status_gold) function tracker_register($attach_id, $mode = '', $tor_status = TOR_NOT_APPROVED, $reg_time = TIMENOW) { - global $bb_cfg, $lang, $reg_mode, $tr_cfg; + global $bb_cfg, $lang, $reg_mode; $attach_id = (int)$attach_id; $reg_mode = $mode; @@ -370,7 +370,7 @@ function tracker_register($attach_id, $mode = '', $tor_status = TOR_NOT_APPROVED } } - if ($tr_cfg['tor_topic_up']) { + if ($bb_cfg['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 LIMIT 1"); } @@ -385,7 +385,7 @@ function tracker_register($attach_id, $mode = '', $tor_status = TOR_NOT_APPROVED function send_torrent_with_passkey($filename) { - global $attachment, $auth_pages, $userdata, $bb_cfg, $tr_cfg, $lang; + global $attachment, $auth_pages, $userdata, $bb_cfg, $lang; if (!$bb_cfg['bt_add_auth_key'] || $attachment['extension'] !== TORRENT_EXT || !$size = @filesize($filename)) { return; @@ -477,15 +477,15 @@ function send_torrent_with_passkey($filename) } // Add retracker - if (isset($tr_cfg['retracker']) && $tr_cfg['retracker']) { + if (isset($bb_cfg['tracker']['retracker']) && $bb_cfg['tracker']['retracker']) { if (bf($userdata['user_opt'], 'user_opt', 'user_retracker') || IS_GUEST) { if (!isset($tor['announce-list'])) { $tor['announce-list'] = array( array($announce), - array($tr_cfg['retracker_host']) + array($bb_cfg['tracker']['retracker_host']) ); } else { - $tor['announce-list'] = array_merge($tor['announce-list'], array(array($tr_cfg['retracker_host']))); + $tor['announce-list'] = array_merge($tor['announce-list'], array(array($bb_cfg['tracker']['retracker_host']))); } } } @@ -505,7 +505,7 @@ function send_torrent_with_passkey($filename) // Send torrent $output = \Rych\Bencode\Bencode::encode($tor); - $dl_fname = ($bb_cfg['torrent_name_style'] ? '[' . $bb_cfg['server_name'] . '].t' . $topic_id . '.torrent' : clean_filename(basename($attachment['real_filename']))); + $dl_fname = '[' . $bb_cfg['server_name'] . '].t' . $topic_id . '.torrent'; if (!empty($_COOKIE['explain'])) { $out = "attach path: $filename

"; @@ -632,25 +632,20 @@ function ocelot_send_request($get, $max_attempts = 1, &$err = false) global $bb_cfg; $header = "GET /$get HTTP/1.1\r\nConnection: Close\r\n\r\n"; - $attempts = $sleep = $success = $response = 0; + $attempts = $success = $response = 0; $start_time = microtime(true); while (!$success && $attempts++ < $max_attempts) { - if ($sleep) { - sleep($sleep); - } // Send request $file = fsockopen($bb_cfg['ocelot']['host'], $bb_cfg['ocelot']['port'], $error_num, $error_string); if ($file) { if (fwrite($file, $header) === false) { $err = "Failed to fwrite()"; - $sleep = 3; continue; } } else { $err = "Failed to fsockopen() - $error_num - $error_string"; - $sleep = 6; continue; } diff --git a/library/includes/init_bb.php b/library/includes/init_bb.php index e7453d87e..ed57d96e1 100644 --- a/library/includes/init_bb.php +++ b/library/includes/init_bb.php @@ -26,17 +26,17 @@ if (!defined('BB_ROOT')) { die(basename(__FILE__)); } + +/** + * Check PHP version + */ if (version_compare(PHP_VERSION, '5.5', '<')) { die('TorrentPier requires PHP version 5.5+. Your PHP version ' . PHP_VERSION); } -if (!defined('BB_SCRIPT')) { - define('BB_SCRIPT', 'undefined'); -} -if (!defined('BB_CFG_LOADED')) { - trigger_error('File config.php not loaded', E_USER_ERROR); -} -// Define some basic configuration arrays +/** + * Define some basic configuration arrays + */ unset($stopwords, $synonyms_match, $synonyms_replace); $userdata = $theme = $images = $lang = $nav_links = $bf = $attach_config = []; $gen_simple_header = false; @@ -75,7 +75,9 @@ function compress_output($contents) return $contents; } -// Start output buffering +/** + * Start output buffering + */ if (!defined('IN_AJAX')) { ob_start('send_page'); } @@ -108,7 +110,9 @@ function bb_setcookie($name, $val, $lifetime = COOKIE_PERSIST, $httponly = false return setcookie($name, $val, $lifetime, $bb_cfg['script_path'], $bb_cfg['cookie_domain'], $bb_cfg['cookie_secure'], $httponly); } -// Debug options +/** + * Debug options + */ if (DBG_USER) { ini_set('error_reporting', E_ALL); ini_set('display_errors', 1); @@ -213,62 +217,6 @@ define('POLL_FINISHED', 2); // Group avatars define('GROUP_AVATAR_MASK', 999000); -// Иконки статусов -$bb_cfg['tor_icons'] = [ - TOR_NOT_APPROVED => '*', - TOR_CLOSED => 'x', - TOR_APPROVED => '', - TOR_NEED_EDIT => '?', - TOR_NO_DESC => '!', - TOR_DUP => 'D', - TOR_CLOSED_CPHOLD => '©', - TOR_CONSUMED => '', - TOR_DOUBTFUL => '#', - TOR_CHECKING => '%', - TOR_TMP => 'T', - TOR_PREMOD => '', -]; - -// Запрет на скачивание -$bb_cfg['tor_frozen'] = [ - TOR_CHECKING => true, - TOR_CLOSED => true, - TOR_CLOSED_CPHOLD => true, - TOR_CONSUMED => true, - TOR_DUP => true, - TOR_NO_DESC => true, - TOR_PREMOD => true, -]; - -// Разрешение на скачку автором, если закрыто на скачивание. -$bb_cfg['tor_frozen_author_download'] = [ - TOR_CHECKING => true, - TOR_NO_DESC => true, - TOR_PREMOD => true, -]; - -// Запрет на редактирование головного сообщения -$bb_cfg['tor_cannot_edit'] = [ - TOR_CHECKING => true, - TOR_CLOSED => true, - TOR_CONSUMED => true, - TOR_DUP => true, -]; - -// Запрет на создание новых раздач если стоит статус недооформлено/неоформлено/сомнительно -$bb_cfg['tor_cannot_new'] = [TOR_NEED_EDIT, TOR_NO_DESC, TOR_DOUBTFUL]; - -// Разрешение на ответ релизера, если раздача исправлена. -$bb_cfg['tor_reply'] = [TOR_NEED_EDIT, TOR_NO_DESC, TOR_DOUBTFUL]; - -// Если такой статус у релиза, то статистика раздачи будет скрыта -$bb_cfg['tor_no_tor_act'] = [ - TOR_CLOSED => true, - TOR_DUP => true, - TOR_CLOSED_CPHOLD => true, - TOR_CONSUMED => true, -]; - $dl_link_css = [ DL_STATUS_RELEASER => 'genmed', DL_STATUS_WILL => 'dlWill', @@ -386,18 +334,6 @@ define('REQUEST', 4); define('CHBOX', 5); define('SELECT', 6); -if (!empty($banned_user_agents)) { - foreach ($banned_user_agents as $agent) { - if (false !== strpos(USER_AGENT, $agent)) { - $filename = 'Download files by using browser'; - $output = '@'; - header('Content-Type: text/plain'); - header('Content-Disposition: attachment; filename="' . $filename . '"'); - die($output); - } - } -} - // Functions function send_no_cache_headers() { @@ -466,58 +402,68 @@ function make_url($path = '') return FULL_URL . preg_replace('#^\/?(.*?)\/?$#', '\1', $path); } +/** + * Functions + */ require INC_DIR . '/functions.php'; require INC_DIR . '/sessions.php'; -$bb_cfg = array_merge(bb_get_config(BB_CONFIG), $bb_cfg); - -$user = new TorrentPier\Legacy\Common\User(); -$userdata =& $user->data; - if (DBG_USER) { require INC_DIR . '/functions_dev.php'; } -$html = new TorrentPier\Legacy\Common\Html(); +$bb_cfg = array_merge(bb_get_config(BB_CONFIG), $bb_cfg); + $log_action = new TorrentPier\Legacy\LogAction(); +$html = new TorrentPier\Legacy\Common\Html(); +$user = new TorrentPier\Legacy\Common\User(); -// TODO temporarily 'cat_forums' always enqueued -$datastore->enqueue(array('cat_forums')); +$userdata =& $user->data; -// Дата старта вашего проекта -if (!$bb_cfg['board_startdate']) { - bb_update_config(array('board_startdate' => TIMENOW)); - DB()->query("UPDATE " . BB_USERS . " SET user_regdate = " . TIMENOW . " WHERE user_id IN(2, " . EXCLUDED_USERS . ")"); -} - -// Cron +/** + * Cron + */ if ((empty($_POST) && !defined('IN_ADMIN') && !defined('IN_AJAX') && !file_exists(CRON_RUNNING) && ($bb_cfg['cron_enabled'] || defined('START_CRON'))) || defined('FORCE_CRON')) { if (TIMENOW - $bb_cfg['cron_last_check'] > $bb_cfg['cron_check_interval']) { - // Update cron_last_check - bb_update_config(array('cron_last_check' => (TIMENOW + 10))); - - define('CRON_LOG_ENABLED', true); // global ON/OFF - define('CRON_FORCE_LOG', false); // always log regardless of job settings - - define('CRON_DIR', INC_DIR . '/cron/'); - define('CRON_JOB_DIR', CRON_DIR . 'jobs/'); - define('CRON_LOG_DIR', 'cron'); // inside LOG_DIR - define('CRON_LOG_FILE', 'cron'); // without ext + /** Update cron_last_check */ + bb_update_config(['cron_last_check' => TIMENOW + 10]); bb_log(date('H:i:s - ') . getmypid() . ' -x-- DB-LOCK try' . LOG_LF, CRON_LOG_DIR . '/cron_check'); if (DB()->get_lock('cron', 1)) { bb_log(date('H:i:s - ') . getmypid() . ' --x- DB-LOCK OBTAINED !!!!!!!!!!!!!!!!!' . LOG_LF, CRON_LOG_DIR . '/cron_check'); - sleep(2); - require(CRON_DIR . 'cron_init.php'); + /** Run cron */ + if (TorrentPier\Helpers\CronHelper::hasFileLock()) { + /** снятие файловой блокировки */ + register_shutdown_function(function () { + TorrentPier\Helpers\CronHelper::releaseLockFile(); + }); + + /** разблокировка форума */ + register_shutdown_function(function () { + TorrentPier\Helpers\CronHelper::enableBoard(); + }); + + TorrentPier\Helpers\CronHelper::trackRunning('start'); + + require(CRON_DIR . 'cron_check.php'); + + TorrentPier\Helpers\CronHelper::trackRunning('end'); + } + + if (defined('IN_CRON')) { + bb_log(date('H:i:s - ') . getmypid() . ' --x- ALL jobs FINISHED *************************************************' . LOG_LF, CRON_LOG_DIR . '/cron_check'); + } DB()->release_lock('cron'); } } } -// Exit if board is disabled via ON/OFF trigger or by admin +/** + * Exit if board is disabled via trigger + */ if (($bb_cfg['board_disable'] || file_exists(BB_DISABLED)) && !defined('IN_ADMIN') && !defined('IN_AJAX') && !defined('IN_LOGIN')) { header('HTTP/1.0 503 Service Unavailable'); if ($bb_cfg['board_disable']) { @@ -526,58 +472,8 @@ if (($bb_cfg['board_disable'] || file_exists(BB_DISABLED)) && !defined('IN_ADMIN bb_die('BOARD_DISABLE'); } elseif (file_exists(BB_DISABLED)) { // trigger lock - cron_release_deadlock(); + TorrentPier\Helpers\CronHelper::releaseDeadlock(); send_no_cache_headers(); bb_die('BOARD_DISABLE_CRON'); } } - -/** - * Снятие блокировки крона - */ -function cron_release_deadlock() -{ - if (file_exists(CRON_RUNNING)) { - if (TIMENOW - filemtime(CRON_RUNNING) > 2400) { - cron_enable_board(); - cron_release_file_lock(); - } - } -} - -/** - * Блокировка крона - */ -function cron_release_file_lock() -{ - rename(CRON_RUNNING, CRON_ALLOWED); - cron_touch_lock_file(CRON_ALLOWED); -} - -/** - * @param $lock_file - */ -function cron_touch_lock_file($lock_file) -{ - file_write(make_rand_str(20), $lock_file, 0, true, true); -} - -/** - * Включение форума (при блокировке крона) - */ -function cron_enable_board() -{ - if (file_exists(BB_DISABLED)) { - rename(BB_DISABLED, BB_ENABLED); - } -} - -/** - * Отключение форума (при блокировке крона) - */ -function cron_disable_board() -{ - if (file_exists(BB_ENABLED)) { - rename(BB_ENABLED, BB_DISABLED); - } -} diff --git a/library/includes/page_header.php b/library/includes/page_header.php index d630df184..a0aade9ac 100644 --- a/library/includes/page_header.php +++ b/library/includes/page_header.php @@ -183,8 +183,8 @@ $template->assign_vars(array( 'U_TERMS' => $bb_cfg['terms_and_conditions_url'], 'U_TRACKER' => "tracker.php", - 'SHOW_SIDEBAR1' => (!empty($page_cfg['show_sidebar1'][BB_SCRIPT]) || $bb_cfg['show_sidebar1_on_every_page']), - 'SHOW_SIDEBAR2' => (!empty($page_cfg['show_sidebar2'][BB_SCRIPT]) || $bb_cfg['show_sidebar2_on_every_page']), + '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'], 'HTML_AGREEMENT' => LANG_DIR . 'html/user_agreement.html', 'HTML_COPYRIGHT' => LANG_DIR . 'html/copyright_holders.html', @@ -226,7 +226,7 @@ $template->assign_vars(array( 'U_WATCHED_TOPICS' => "profile.php?mode=watch", )); -if (!empty($page_cfg['show_torhelp'][BB_SCRIPT]) && !empty($userdata['torhelp'])) { +if (!empty($bb_cfg['page']['show_torhelp'][BB_SCRIPT]) && !empty($userdata['torhelp'])) { $ignore_time = !empty($_COOKIE['torhelp']) ? (int)$_COOKIE['torhelp'] : 0; if (TIMENOW > $ignore_time) { diff --git a/library/includes/ucp/.htaccess b/library/includes/ucp/.htaccess deleted file mode 100644 index baa56e5a3..000000000 --- a/library/includes/ucp/.htaccess +++ /dev/null @@ -1,2 +0,0 @@ -order allow,deny -deny from all \ No newline at end of file diff --git a/library/includes/ucp/viewprofile.php b/library/includes/ucp/viewprofile.php index 4d50f9e67..beac76a89 100644 --- a/library/includes/ucp/viewprofile.php +++ b/library/includes/ucp/viewprofile.php @@ -31,6 +31,7 @@ require INC_DIR . '/bbcode.php'; $datastore->enqueue(array( 'ranks', + 'cat_forums', )); if (empty($_GET[POST_USERS_URL]) || $_GET[POST_USERS_URL] == GUEST_UID) { diff --git a/library/language/af/main.php b/library/language/af/main.php index b0a3c90bc..94ff8e7c2 100644 --- a/library/language/af/main.php +++ b/library/language/af/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker'; $lang['FORUM_CFG_TITLE'] = 'Forum instellings'; $lang['TRACKER_SETTINGS'] = 'Tracker instellings'; -$lang['CHANGES_DISABLED'] = 'Veranderinge gedeaktiveer (sien $tr_cfg in config.php)'; +$lang['CHANGES_DISABLED'] = 'Veranderinge gedeaktiveer (sien $bb_cfg[\'tracker\'] in config.php)'; $lang['OFF_TRACKER'] = 'Deaktiveer spoorsnyer'; $lang['OFF_REASON'] = 'Deaktiveer rede'; diff --git a/library/language/ar/main.php b/library/language/ar/main.php index f4bf66e80..677651801 100644 --- a/library/language/ar/main.php +++ b/library/language/ar/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'تعقب'; $lang['FORUM_CFG_TITLE'] = 'المنتدى إعدادات'; $lang['TRACKER_SETTINGS'] = 'تعقب الإعدادات'; -$lang['CHANGES_DISABLED'] = 'التغييرات المعوقين (انظر $tr_cfg في config.php)'; +$lang['CHANGES_DISABLED'] = 'التغييرات المعوقين (انظر $bb_cfg[\'tracker\'] في config.php)'; $lang['OFF_TRACKER'] = 'تعطيل تعقب'; $lang['OFF_REASON'] = 'تعطيل السبب'; diff --git a/library/language/az/main.php b/library/language/az/main.php index c61f21305..d50d39838 100644 --- a/library/language/az/main.php +++ b/library/language/az/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker'; $lang['FORUM_CFG_TITLE'] = 'Parametrlər forum'; $lang['TRACKER_SETTINGS'] = 'Parametrlər tracker'; -$lang['CHANGES_DISABLED'] = 'Dəyişikliklər əlil (bax $tr_cfg bu config.php)'; +$lang['CHANGES_DISABLED'] = 'Dəyişikliklər əlil (bax $bb_cfg[\'tracker\'] bu config.php)'; $lang['OFF_TRACKER'] = 'Aradan tracker'; $lang['OFF_REASON'] = 'Səbəbi kəsilməsi'; diff --git a/library/language/be/main.php b/library/language/be/main.php index e12fd26cf..ccc90d66d 100644 --- a/library/language/be/main.php +++ b/library/language/be/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Трэкер'; $lang['FORUM_CFG_TITLE'] = 'Налады форуму'; $lang['TRACKER_SETTINGS'] = 'Налады трэкера'; -$lang['CHANGES_DISABLED'] = 'Змены адключаная (гл. $tr_cfg ў config.php)'; +$lang['CHANGES_DISABLED'] = 'Змены адключаная (гл. $bb_cfg[\'tracker\'] ў config.php)'; $lang['OFF_TRACKER'] = 'Адключыць трэкер'; $lang['OFF_REASON'] = 'Прычына адключэння'; diff --git a/library/language/bg/main.php b/library/language/bg/main.php index f34d0e142..ce1c29b6b 100644 --- a/library/language/bg/main.php +++ b/library/language/bg/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Следа'; $lang['FORUM_CFG_TITLE'] = 'Настройки на форума'; $lang['TRACKER_SETTINGS'] = 'Настройки на тракера'; -$lang['CHANGES_DISABLED'] = 'Промяната е изключена (виж $tr_cfg в config.php)'; +$lang['CHANGES_DISABLED'] = 'Промяната е изключена (виж $bb_cfg[\'tracker\'] в config.php)'; $lang['OFF_TRACKER'] = 'Да забраните на тракера'; $lang['OFF_REASON'] = 'Причината за прекъсване на'; diff --git a/library/language/bs/main.php b/library/language/bs/main.php index 871c41108..e121796d8 100644 --- a/library/language/bs/main.php +++ b/library/language/bs/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tragač'; $lang['FORUM_CFG_TITLE'] = 'Forum postavke'; $lang['TRACKER_SETTINGS'] = 'Tragač postavke'; -$lang['CHANGES_DISABLED'] = 'Promjene invalid (vidim u $tr_cfg config.php)'; +$lang['CHANGES_DISABLED'] = 'Promjene invalid (vidim u $bb_cfg[\'tracker\'] config.php)'; $lang['OFF_TRACKER'] = 'Onesposobiti tragaca'; $lang['OFF_REASON'] = 'Onesposobite razloga'; diff --git a/library/language/ca/main.php b/library/language/ca/main.php index 3dbdaf13a..57c243282 100644 --- a/library/language/ca/main.php +++ b/library/language/ca/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Seguidor'; $lang['FORUM_CFG_TITLE'] = 'Preferències del fòrum'; $lang['TRACKER_SETTINGS'] = 'Seguidor de configuració'; -$lang['CHANGES_DISABLED'] = 'Els canvis de persones amb discapacitat (vegeu $tr_cfg en config.php)'; +$lang['CHANGES_DISABLED'] = 'Els canvis de persones amb discapacitat (vegeu $bb_cfg[\'tracker\'] en config.php)'; $lang['OFF_TRACKER'] = 'Desactivar seguidor'; $lang['OFF_REASON'] = 'Desactivar raó'; diff --git a/library/language/cs/main.php b/library/language/cs/main.php index 9d0a3c27b..5592faacb 100644 --- a/library/language/cs/main.php +++ b/library/language/cs/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker'; $lang['FORUM_CFG_TITLE'] = 'Nastavení fóra'; $lang['TRACKER_SETTINGS'] = 'Tracker nastavení'; -$lang['CHANGES_DISABLED'] = 'Změny zakázány (viz $tr_cfg v config.php)'; +$lang['CHANGES_DISABLED'] = 'Změny zakázány (viz $bb_cfg[\'tracker\'] v config.php)'; $lang['OFF_TRACKER'] = 'Zakázat tracker'; $lang['OFF_REASON'] = 'Zakázat důvod'; diff --git a/library/language/da/main.php b/library/language/da/main.php index 2672cbff3..3114bf0d3 100644 --- a/library/language/da/main.php +++ b/library/language/da/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker'; $lang['FORUM_CFG_TITLE'] = 'Forum-indstillinger'; $lang['TRACKER_SETTINGS'] = 'Tracker-indstillinger'; -$lang['CHANGES_DISABLED'] = 'Ændringer deaktiveret (se $tr_cfg i config.php)'; +$lang['CHANGES_DISABLED'] = 'Ændringer deaktiveret (se $bb_cfg[\'tracker\'] i config.php)'; $lang['OFF_TRACKER'] = 'Deaktiver tracker'; $lang['OFF_REASON'] = 'Deaktiver grund'; diff --git a/library/language/de/main.php b/library/language/de/main.php index f9e09a341..66f16744a 100644 --- a/library/language/de/main.php +++ b/library/language/de/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker'; $lang['FORUM_CFG_TITLE'] = 'Forum-Einstellungen'; $lang['TRACKER_SETTINGS'] = 'Tracker-Einstellungen'; -$lang['CHANGES_DISABLED'] = 'Änderungen deaktiviert ist (siehe $tr_cfg in config.php)'; +$lang['CHANGES_DISABLED'] = 'Änderungen deaktiviert ist (siehe $bb_cfg[\'tracker\'] in config.php)'; $lang['OFF_TRACKER'] = 'Deaktivieren tracker'; $lang['OFF_REASON'] = 'Deaktivieren der Grund'; diff --git a/library/language/el/main.php b/library/language/el/main.php index f5415e0d7..3c567bcd7 100644 --- a/library/language/el/main.php +++ b/library/language/el/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker'; $lang['FORUM_CFG_TITLE'] = 'Φόρουμ ρυθμίσεις'; $lang['TRACKER_SETTINGS'] = 'Tracker ρυθμίσεις'; -$lang['CHANGES_DISABLED'] = 'Αλλαγές με αναπηρία (βλ. $tr_cfg σε config.php)'; +$lang['CHANGES_DISABLED'] = 'Αλλαγές με αναπηρία (βλ. $bb_cfg[\'tracker\'] σε config.php)'; $lang['OFF_TRACKER'] = 'Απενεργοποίηση tracker'; $lang['OFF_REASON'] = 'Απενεργοποίηση λόγο'; diff --git a/library/language/en/main.php b/library/language/en/main.php index 7d7fde575..352e8e04f 100644 --- a/library/language/en/main.php +++ b/library/language/en/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker'; $lang['FORUM_CFG_TITLE'] = 'Forum settings'; $lang['TRACKER_SETTINGS'] = 'Tracker settings'; -$lang['CHANGES_DISABLED'] = 'Changes disabled (see $tr_cfg in config.php)'; +$lang['CHANGES_DISABLED'] = 'Changes disabled (see $bb_cfg[\'tracker\'] in config.php)'; $lang['OFF_TRACKER'] = 'Disable tracker'; $lang['OFF_REASON'] = 'Disable reason'; diff --git a/library/language/es/main.php b/library/language/es/main.php index c428a8556..541715703 100644 --- a/library/language/es/main.php +++ b/library/language/es/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Rastreador'; $lang['FORUM_CFG_TITLE'] = 'En el foro de configuración'; $lang['TRACKER_SETTINGS'] = 'Rastreador de configuración'; -$lang['CHANGES_DISABLED'] = 'Cambios en la movilidad (ver $tr_cfg en config.php)'; +$lang['CHANGES_DISABLED'] = 'Cambios en la movilidad (ver $bb_cfg[\'tracker\'] en config.php)'; $lang['OFF_TRACKER'] = 'Deshabilitar tracker'; $lang['OFF_REASON'] = 'Deshabilitar la razón'; diff --git a/library/language/et/main.php b/library/language/et/main.php index 347244200..90ba3ffa1 100644 --- a/library/language/et/main.php +++ b/library/language/et/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker'; $lang['FORUM_CFG_TITLE'] = 'Foorumi seaded'; $lang['TRACKER_SETTINGS'] = 'Tracker seaded'; -$lang['CHANGES_DISABLED'] = 'Muudatused puudega (vt $tr_cfg aastal config.php)'; +$lang['CHANGES_DISABLED'] = 'Muudatused puudega (vt $bb_cfg[\'tracker\'] aastal config.php)'; $lang['OFF_TRACKER'] = 'Keelata tracker'; $lang['OFF_REASON'] = 'Keelata põhjus'; diff --git a/library/language/fi/main.php b/library/language/fi/main.php index c45ca3667..99fe97a6d 100644 --- a/library/language/fi/main.php +++ b/library/language/fi/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker'; $lang['FORUM_CFG_TITLE'] = 'Foorumin asetuksia'; $lang['TRACKER_SETTINGS'] = 'Tracker asetukset'; -$lang['CHANGES_DISABLED'] = 'Muutokset käytöstä (ks. $tr_cfg vuonna config.php)'; +$lang['CHANGES_DISABLED'] = 'Muutokset käytöstä (ks. $bb_cfg[\'tracker\'] vuonna config.php)'; $lang['OFF_TRACKER'] = 'Poistaa tracker'; $lang['OFF_REASON'] = 'Poistaa syy'; diff --git a/library/language/fr/main.php b/library/language/fr/main.php index f1a662044..37d7d22dd 100644 --- a/library/language/fr/main.php +++ b/library/language/fr/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Traqueur'; $lang['FORUM_CFG_TITLE'] = 'Les préférences du Forum'; $lang['TRACKER_SETTINGS'] = 'Des paramètres d\'un suivi'; -$lang['CHANGES_DISABLED'] = 'Les changements de personnes handicapées (voir $tr_cfg dans config.php)'; +$lang['CHANGES_DISABLED'] = 'Les changements de personnes handicapées (voir $bb_cfg[\'tracker\'] dans config.php)'; $lang['OFF_TRACKER'] = 'Désactiver le tracker'; $lang['OFF_REASON'] = 'Désactiver la raison'; diff --git a/library/language/he/main.php b/library/language/he/main.php index a9be16bba..c8f54cdb1 100644 --- a/library/language/he/main.php +++ b/library/language/he/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker'; $lang['FORUM_CFG_TITLE'] = 'פורום הגדרות'; $lang['TRACKER_SETTINGS'] = 'גשש הגדרות'; -$lang['CHANGES_DISABLED'] = 'שינויים נכים (לראות $tr_cfg ב config.php)'; +$lang['CHANGES_DISABLED'] = 'שינויים נכים (לראות $bb_cfg[\'tracker\'] ב config.php)'; $lang['OFF_TRACKER'] = 'השבת tracker'; $lang['OFF_REASON'] = 'השבת סיבה'; diff --git a/library/language/hi/main.php b/library/language/hi/main.php index bce24fc0e..5dda9d9f4 100644 --- a/library/language/hi/main.php +++ b/library/language/hi/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'ट्रैकर'; $lang['FORUM_CFG_TITLE'] = 'फ़ोरम सेटिंग'; $lang['TRACKER_SETTINGS'] = 'ट्रैकर सेटिंग्स'; -$lang['CHANGES_DISABLED'] = 'परिवर्तन अक्षम (config.php में $tr_cfg देखें)'; +$lang['CHANGES_DISABLED'] = 'परिवर्तन अक्षम (config.php में $bb_cfg[\'tracker\'] देखें)'; $lang['OFF_TRACKER'] = 'ट्रैकर अक्षम करें'; $lang['OFF_REASON'] = 'कारण अक्षम करें'; diff --git a/library/language/hr/main.php b/library/language/hr/main.php index b85c53264..61e63e2c0 100644 --- a/library/language/hr/main.php +++ b/library/language/hr/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker'; $lang['FORUM_CFG_TITLE'] = 'Postavke foruma'; $lang['TRACKER_SETTINGS'] = 'Postavke tracker'; -$lang['CHANGES_DISABLED'] = 'Promjena je deaktivirana (pogledajte $tr_cfg u config.php)'; +$lang['CHANGES_DISABLED'] = 'Promjena je deaktivirana (pogledajte $bb_cfg[\'tracker\'] u config.php)'; $lang['OFF_TRACKER'] = 'Isključiti tracker'; $lang['OFF_REASON'] = 'Razlog za isključenje'; diff --git a/library/language/hu/main.php b/library/language/hu/main.php index e9ffc570b..fa68f0969 100644 --- a/library/language/hu/main.php +++ b/library/language/hu/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker'; $lang['FORUM_CFG_TITLE'] = 'Fórum beállítások'; $lang['TRACKER_SETTINGS'] = 'Tracker beállítások'; -$lang['CHANGES_DISABLED'] = 'Változások a disabled (lásd a $tr_cfg config.php)'; +$lang['CHANGES_DISABLED'] = 'Változások a disabled (lásd a $bb_cfg[\'tracker\'] config.php)'; $lang['OFF_TRACKER'] = 'Tiltsa le tracker'; $lang['OFF_REASON'] = 'A letiltás oka'; diff --git a/library/language/hy/main.php b/library/language/hy/main.php index 2110844a8..04f7105fa 100644 --- a/library/language/hy/main.php +++ b/library/language/hy/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Ճանապարհները'; $lang['FORUM_CFG_TITLE'] = 'Ֆորումի կառավարում'; $lang['TRACKER_SETTINGS'] = 'Կառավարում ճանապարհները'; -$lang['CHANGES_DISABLED'] = 'Փոփոխություններ անջատված է (տես $tr_cfg է config.php)'; +$lang['CHANGES_DISABLED'] = 'Փոփոխություններ անջատված է (տես $bb_cfg[\'tracker\'] է config.php)'; $lang['OFF_TRACKER'] = 'Անջատել tracker'; $lang['OFF_REASON'] = 'Պատճառը պարապուրդ'; diff --git a/library/language/id/main.php b/library/language/id/main.php index 19d5427d1..0c0e979fb 100644 --- a/library/language/id/main.php +++ b/library/language/id/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker'; $lang['FORUM_CFG_TITLE'] = 'Forum pengaturan'; $lang['TRACKER_SETTINGS'] = 'Tracker pengaturan'; -$lang['CHANGES_DISABLED'] = 'Perubahan dinonaktifkan (lihat $tr_cfg di config.php)'; +$lang['CHANGES_DISABLED'] = 'Perubahan dinonaktifkan (lihat $bb_cfg[\'tracker\'] di config.php)'; $lang['OFF_TRACKER'] = 'Menonaktifkan tracker'; $lang['OFF_REASON'] = 'Menonaktifkan alasan'; diff --git a/library/language/it/main.php b/library/language/it/main.php index 24a14af7e..6aa6710db 100644 --- a/library/language/it/main.php +++ b/library/language/it/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker'; $lang['FORUM_CFG_TITLE'] = 'Le impostazioni del Forum'; $lang['TRACKER_SETTINGS'] = 'Tracker impostazioni'; -$lang['CHANGES_DISABLED'] = 'Modifiche per disabili (vedi $tr_cfg in config.php)'; +$lang['CHANGES_DISABLED'] = 'Modifiche per disabili (vedi $bb_cfg[\'tracker\'] in config.php)'; $lang['OFF_TRACKER'] = 'Disattivare tracker'; $lang['OFF_REASON'] = 'Disattivare ragione'; diff --git a/library/language/ja/main.php b/library/language/ja/main.php index 9b55209be..b6e2e03d5 100644 --- a/library/language/ja/main.php +++ b/library/language/ja/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'トラッカー'; $lang['FORUM_CFG_TITLE'] = 'フォーラムの設定'; $lang['TRACKER_SETTINGS'] = 'トラッカーの設定'; -$lang['CHANGES_DISABLED'] = 'の変更無効($tr_cfgにconfig.php)'; +$lang['CHANGES_DISABLED'] = 'の変更無効($bb_cfg[\'tracker\']にconfig.php)'; $lang['OFF_TRACKER'] = 'トラッカーを無効に'; $lang['OFF_REASON'] = '無効理由'; diff --git a/library/language/ka/main.php b/library/language/ka/main.php index 3a57d9c8d..e9932909f 100644 --- a/library/language/ka/main.php +++ b/library/language/ka/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker'; $lang['FORUM_CFG_TITLE'] = 'ფორუმის პარამეტრები'; $lang['TRACKER_SETTINGS'] = 'Tracker პარამეტრები'; -$lang['CHANGES_DISABLED'] = 'ცვლილებები შეზღუდული შესაძლებლობის მქონე პირთა (იხილეთ $tr_cfg in config.php)'; +$lang['CHANGES_DISABLED'] = 'ცვლილებები შეზღუდული შესაძლებლობის მქონე პირთა (იხილეთ $bb_cfg[\'tracker\'] in config.php)'; $lang['OFF_TRACKER'] = 'გამორთე tracker'; $lang['OFF_REASON'] = 'გამორთე მიზეზი'; diff --git a/library/language/kk/main.php b/library/language/kk/main.php index 6bbad2142..725079f62 100644 --- a/library/language/kk/main.php +++ b/library/language/kk/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker'; $lang['FORUM_CFG_TITLE'] = 'Форум параметрлері'; $lang['TRACKER_SETTINGS'] = 'Tracker параметрлері'; -$lang['CHANGES_DISABLED'] = 'өшірілген өзгерістер (config.php жылы $tr_cfg қараңыз)'; +$lang['CHANGES_DISABLED'] = 'Өшірілген өзгерістер (config.php жылы $bb_cfg[\'tracker\'] қараңыз)'; $lang['OFF_TRACKER'] = 'трекер өшіру'; $lang['OFF_REASON'] = 'өшіру себебі'; diff --git a/library/language/ko/main.php b/library/language/ko/main.php index 58e59982a..93621afe7 100644 --- a/library/language/ko/main.php +++ b/library/language/ko/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = '추적'; $lang['FORUM_CFG_TITLE'] = '포럼 설정'; $lang['TRACKER_SETTINGS'] = '추적 설정'; -$lang['CHANGES_DISABLED'] = '변화($tr_cfg 에 config.php 다)'; +$lang['CHANGES_DISABLED'] = '변화($bb_cfg[\'tracker\'] 에 config.php 다)'; $lang['OFF_TRACKER'] = '비활성화 추적자'; $lang['OFF_REASON'] = '사는 이유'; diff --git a/library/language/lt/main.php b/library/language/lt/main.php index 83c4f6999..3e365dbd1 100644 --- a/library/language/lt/main.php +++ b/library/language/lt/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker'; $lang['FORUM_CFG_TITLE'] = 'Forumo nustatymai'; $lang['TRACKER_SETTINGS'] = 'Tracker parametrai'; -$lang['CHANGES_DISABLED'] = 'Pokyčiai išjungtas (žr. $tr_cfg, config.php)'; +$lang['CHANGES_DISABLED'] = 'Pokyčiai išjungtas (žr. $bb_cfg[\'tracker\'], config.php)'; $lang['OFF_TRACKER'] = 'Išjungti tracker'; $lang['OFF_REASON'] = 'Išjungti priežastis'; diff --git a/library/language/lv/main.php b/library/language/lv/main.php index 3b9cb442f..f12cfbb64 100644 --- a/library/language/lv/main.php +++ b/library/language/lv/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker'; $lang['FORUM_CFG_TITLE'] = 'Foruma uzstādījumi'; $lang['TRACKER_SETTINGS'] = 'Tracker uzstādījumi'; -$lang['CHANGES_DISABLED'] = 'Izmaiņas invalīdiem (skatīt $tr_cfg, config.php)'; +$lang['CHANGES_DISABLED'] = 'Izmaiņas invalīdiem (skatīt $bb_cfg[\'tracker\'], config.php)'; $lang['OFF_TRACKER'] = 'Atspējot tracker'; $lang['OFF_REASON'] = 'Atspējot iemesls'; diff --git a/library/language/nl/main.php b/library/language/nl/main.php index a70d499fc..8978ec656 100644 --- a/library/language/nl/main.php +++ b/library/language/nl/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker'; $lang['FORUM_CFG_TITLE'] = 'Forum instellingen'; $lang['TRACKER_SETTINGS'] = 'Tracker instellingen'; -$lang['CHANGES_DISABLED'] = 'Wijzigingen uitgeschakeld (zie $tr_cfg in config.php)'; +$lang['CHANGES_DISABLED'] = 'Wijzigingen uitgeschakeld (zie $bb_cfg[\'tracker\'] in config.php)'; $lang['OFF_TRACKER'] = 'Uitschakelen tracker'; $lang['OFF_REASON'] = 'Uitschakelen reden'; diff --git a/library/language/no/main.php b/library/language/no/main.php index 71a81e7df..a540ad23f 100644 --- a/library/language/no/main.php +++ b/library/language/no/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker'; $lang['FORUM_CFG_TITLE'] = 'Forum innstillinger'; $lang['TRACKER_SETTINGS'] = 'Tracker-innstillinger'; -$lang['CHANGES_DISABLED'] = 'Endringer deaktivert (se $tr_cfg i config.php)'; +$lang['CHANGES_DISABLED'] = 'Endringer deaktivert (se $bb_cfg[\'tracker\'] i config.php)'; $lang['OFF_TRACKER'] = 'Deaktiver tracker'; $lang['OFF_REASON'] = 'Deaktiver grunn'; diff --git a/library/language/pl/main.php b/library/language/pl/main.php index 15a4b5d8f..a374c79d4 100644 --- a/library/language/pl/main.php +++ b/library/language/pl/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker'; $lang['FORUM_CFG_TITLE'] = 'Ustawienia forum'; $lang['TRACKER_SETTINGS'] = 'Ustawienia tracker'; -$lang['CHANGES_DISABLED'] = 'Zmiany wyłączona (patrz $tr_cfg w config.php)'; +$lang['CHANGES_DISABLED'] = 'Zmiany wyłączona (patrz $bb_cfg[\'tracker\'] w config.php)'; $lang['OFF_TRACKER'] = 'Wyłączyć tracker'; $lang['OFF_REASON'] = 'Powodem wyłączenia'; diff --git a/library/language/pt/main.php b/library/language/pt/main.php index 50164b34f..5bcbf495a 100644 --- a/library/language/pt/main.php +++ b/library/language/pt/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Perseguidor'; $lang['FORUM_CFG_TITLE'] = 'Fórum de configurações'; $lang['TRACKER_SETTINGS'] = 'Tracker definições'; -$lang['CHANGES_DISABLED'] = 'Alterações desativada (consulte $tr_cfg em config.php)'; +$lang['CHANGES_DISABLED'] = 'Alterações desativada (consulte $bb_cfg[\'tracker\'] em config.php)'; $lang['OFF_TRACKER'] = 'Desativar o rastreador'; $lang['OFF_REASON'] = 'Desactivar a razão'; diff --git a/library/language/ro/main.php b/library/language/ro/main.php index 870419418..2dd179105 100644 --- a/library/language/ro/main.php +++ b/library/language/ro/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker'; $lang['FORUM_CFG_TITLE'] = 'Setări Forum'; $lang['TRACKER_SETTINGS'] = 'Tracker setări'; -$lang['CHANGES_DISABLED'] = 'Modificări cu handicap (a se vedea $tr_cfg în config.php)'; +$lang['CHANGES_DISABLED'] = 'Modificări cu handicap (a se vedea $bb_cfg[\'tracker\'] în config.php)'; $lang['OFF_TRACKER'] = 'Dezactivați tracker'; $lang['OFF_REASON'] = 'Dezactivare motiv'; diff --git a/library/language/ru/main.php b/library/language/ru/main.php index 41d01740e..e7607a681 100644 --- a/library/language/ru/main.php +++ b/library/language/ru/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Трекер'; $lang['FORUM_CFG_TITLE'] = 'Настройки форумов'; $lang['TRACKER_SETTINGS'] = 'Настройки трекера'; -$lang['CHANGES_DISABLED'] = 'Изменения недоступны (редактируйте $tr_cfg в файле config.php)'; +$lang['CHANGES_DISABLED'] = 'Изменения недоступны (редактируйте $bb_cfg[\'tracker\'] в файле config.php)'; $lang['OFF_TRACKER'] = 'Отключить трекер'; $lang['OFF_REASON'] = 'Причина отключения'; diff --git a/library/language/sk/main.php b/library/language/sk/main.php index 7738b85bc..5b4c69925 100644 --- a/library/language/sk/main.php +++ b/library/language/sk/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker'; $lang['FORUM_CFG_TITLE'] = 'Fórum nastavenia'; $lang['TRACKER_SETTINGS'] = 'Tracker nastavenia'; -$lang['CHANGES_DISABLED'] = 'Zmeny zakázané (pozri $tr_cfg v config.php)'; +$lang['CHANGES_DISABLED'] = 'Zmeny zakázané (pozri $bb_cfg[\'tracker\'] v config.php)'; $lang['OFF_TRACKER'] = 'Vypnúť tracker'; $lang['OFF_REASON'] = 'Vypnúť dôvod'; diff --git a/library/language/sl/main.php b/library/language/sl/main.php index e3c9e9167..af4e0d52a 100644 --- a/library/language/sl/main.php +++ b/library/language/sl/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker'; $lang['FORUM_CFG_TITLE'] = 'Forum nastavitve'; $lang['TRACKER_SETTINGS'] = 'Tracker nastavitve'; -$lang['CHANGES_DISABLED'] = 'Spremembe invalide (glej $tr_cfg v config.php)'; +$lang['CHANGES_DISABLED'] = 'Spremembe invalide (glej $bb_cfg[\'tracker\'] v config.php)'; $lang['OFF_TRACKER'] = 'Onemogočite tracker'; $lang['OFF_REASON'] = 'Onemogočite razlog'; diff --git a/library/language/source/html/sidebar2.html b/library/language/source/html/sidebar2.html index 1ba622327..08a4bdf20 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 $page_cfg['show_sidebar2'] in file config.php to false. + To disable this sidebar, set the variable $bb_cfg['page']['show_sidebar2'] in file config.php to false. diff --git a/library/language/source/main.php b/library/language/source/main.php index de8d05167..535dcfd45 100644 --- a/library/language/source/main.php +++ b/library/language/source/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker'; $lang['FORUM_CFG_TITLE'] = 'Forum settings'; $lang['TRACKER_SETTINGS'] = 'Tracker settings'; -$lang['CHANGES_DISABLED'] = 'Changes disabled (see $tr_cfg in config.php)'; +$lang['CHANGES_DISABLED'] = 'Changes disabled (see $bb_cfg[\'tracker\'] in config.php)'; $lang['OFF_TRACKER'] = 'Disable tracker'; $lang['OFF_REASON'] = 'Disable reason'; diff --git a/library/language/sq/main.php b/library/language/sq/main.php index c50001934..40efb6fca 100644 --- a/library/language/sq/main.php +++ b/library/language/sq/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker'; $lang['FORUM_CFG_TITLE'] = 'Forumi cilësimet'; $lang['TRACKER_SETTINGS'] = 'Tracker cilësimet'; -$lang['CHANGES_DISABLED'] = 'Ndryshimet me aftësi të kufizuara (shih $tr_cfg në config.php)'; +$lang['CHANGES_DISABLED'] = 'Ndryshimet me aftësi të kufizuara (shih $bb_cfg[\'tracker\'] në config.php)'; $lang['OFF_TRACKER'] = 'Çaktivizoni tracker'; $lang['OFF_REASON'] = 'Çaktivizoni arsye'; diff --git a/library/language/sr/main.php b/library/language/sr/main.php index e1ec50122..9b8fb7ddb 100644 --- a/library/language/sr/main.php +++ b/library/language/sr/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Трацкер'; $lang['FORUM_CFG_TITLE'] = 'Подешавања форума'; $lang['TRACKER_SETTINGS'] = 'Подешавања трацкер'; -$lang['CHANGES_DISABLED'] = 'Промене искључена (видети $tr_cfg у config.php)'; +$lang['CHANGES_DISABLED'] = 'Промене искључена (видети $bb_cfg[\'tracker\'] у config.php)'; $lang['OFF_TRACKER'] = 'Искључите трацкер'; $lang['OFF_REASON'] = 'Разлог искључења'; diff --git a/library/language/sv/main.php b/library/language/sv/main.php index 3568b0172..70d8b657b 100644 --- a/library/language/sv/main.php +++ b/library/language/sv/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Tracker'; $lang['FORUM_CFG_TITLE'] = 'Forum inställningar'; $lang['TRACKER_SETTINGS'] = 'Tracker-inställningar'; -$lang['CHANGES_DISABLED'] = 'Förändringar funktionshindrade (se $tr_cfg i config.php)'; +$lang['CHANGES_DISABLED'] = 'Förändringar funktionshindrade (se $bb_cfg[\'tracker\'] i config.php)'; $lang['OFF_TRACKER'] = 'Inaktivera tracker'; $lang['OFF_REASON'] = 'Inaktivera anledning'; diff --git a/library/language/tg/main.php b/library/language/tg/main.php index 6867eecdf..6b2fa324d 100644 --- a/library/language/tg/main.php +++ b/library/language/tg/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Назоратчии'; $lang['FORUM_CFG_TITLE'] = 'танзимоти Озодӣ'; $lang['TRACKER_SETTINGS'] = 'танзимоти Назоратчии'; -$lang['CHANGES_DISABLED'] = 'Тағйирҳои маъюбон ($tr_cfg дар config.php нигаред)'; +$lang['CHANGES_DISABLED'] = 'Тағйирҳои маъюбон ($bb_cfg[\'tracker\'] дар config.php нигаред)'; $lang['OFF_TRACKER'] = 'Назоратчии хомӯш'; $lang['OFF_REASON'] = 'сабаби хомӯш'; diff --git a/library/language/th/main.php b/library/language/th/main.php index ca1f43a19..6ff3da71e 100644 --- a/library/language/th/main.php +++ b/library/language/th/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'แทร็กเกอร์'; $lang['FORUM_CFG_TITLE'] = 'อภิปราการตั้งค่า'; $lang['TRACKER_SETTINGS'] = 'ตัวติดตามการตั้งค่า'; -$lang['CHANGES_DISABLED'] = 'เปลี่ยนแปลงปิดการใช้งาน(ดู $tr_cfg ใน config.php)'; +$lang['CHANGES_DISABLED'] = 'เปลี่ยนแปลงปิดการใช้งาน(ดู $bb_cfg[\'tracker\'] ใน config.php)'; $lang['OFF_TRACKER'] = 'ปิดการใช้งานแทร็กเกอร์'; $lang['OFF_REASON'] = 'ปิดการใช้เหตุผล'; diff --git a/library/language/tr/main.php b/library/language/tr/main.php index 54005cfa7..3fe92fa87 100644 --- a/library/language/tr/main.php +++ b/library/language/tr/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'İzci'; $lang['FORUM_CFG_TITLE'] = 'Forum Ayarları'; $lang['TRACKER_SETTINGS'] = 'İzleyici ayarları'; -$lang['CHANGES_DISABLED'] = 'Config.php engelli değişiklikler (bkz $tr_cfg)'; +$lang['CHANGES_DISABLED'] = 'Config.php engelli değişiklikler (bkz $bb_cfg[\'tracker\'])'; $lang['OFF_TRACKER'] = 'Devre dışı bırakmak tracker'; $lang['OFF_REASON'] = 'Devre dışı bırakma nedeni'; diff --git a/library/language/uk/main.php b/library/language/uk/main.php index 1486adf30..225321537 100644 --- a/library/language/uk/main.php +++ b/library/language/uk/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Трекер'; $lang['FORUM_CFG_TITLE'] = 'Налаштування форумів'; $lang['TRACKER_SETTINGS'] = 'Налаштування трекера'; -$lang['CHANGES_DISABLED'] = 'Зміни недоступні (редагуйте $tr_cfg у файлі config.php)'; +$lang['CHANGES_DISABLED'] = 'Зміни відключена (див. в $bb_cfg[\'tracker\'] config.php)'; $lang['OFF_TRACKER'] = 'Відключити трекер'; $lang['OFF_REASON'] = 'Причина відключення'; diff --git a/library/language/uz/main.php b/library/language/uz/main.php index 903addeac..ab9abb878 100644 --- a/library/language/uz/main.php +++ b/library/language/uz/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Kuzatishdan'; $lang['FORUM_CFG_TITLE'] = 'Forum ri'; $lang['TRACKER_SETTINGS'] = 'Kuzatishdan sozlamalari'; -$lang['CHANGES_DISABLED'] = 'O\'zgarishlar o\'chirib (config.php yilda $tr_cfg qarang)'; +$lang['CHANGES_DISABLED'] = 'O\'zgarishlar o\'chirib (config.php yilda $bb_cfg[\'tracker\'] qarang)'; $lang['OFF_TRACKER'] = 'O\'chirish Kuzatishdan'; $lang['OFF_REASON'] = 'O\'chirish sababi'; diff --git a/library/language/vi/main.php b/library/language/vi/main.php index ad82dba6b..eddea546e 100644 --- a/library/language/vi/main.php +++ b/library/language/vi/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = 'Theo dõi'; $lang['FORUM_CFG_TITLE'] = 'Diễn đàn cài đặt'; $lang['TRACKER_SETTINGS'] = 'Thiết lập theo dõi'; -$lang['CHANGES_DISABLED'] = 'Thay đổi vô hiệu hóa (thấy trong $tr_cfg config.php)'; +$lang['CHANGES_DISABLED'] = 'Thay đổi vô hiệu hóa (thấy trong $bb_cfg[\'tracker\'] config.php)'; $lang['OFF_TRACKER'] = 'Vô hiệu hóa theo dõi'; $lang['OFF_REASON'] = 'Vô hiệu hóa lý do'; diff --git a/library/language/zh/main.php b/library/language/zh/main.php index b238c3826..6cf08ffaa 100644 --- a/library/language/zh/main.php +++ b/library/language/zh/main.php @@ -2278,7 +2278,7 @@ $lang['TRACKER_CFG_TITLE'] = '跟踪器'; $lang['FORUM_CFG_TITLE'] = '论坛设置'; $lang['TRACKER_SETTINGS'] = '跟踪设置'; -$lang['CHANGES_DISABLED'] = '变化无障碍(见$tr_cfg在config.php)'; +$lang['CHANGES_DISABLED'] = '变化无障碍(见$bb_cfg[\'tracker\']在config.php)'; $lang['OFF_TRACKER'] = '禁止跟踪器'; $lang['OFF_REASON'] = '禁止的原因'; diff --git a/src/Helpers/CronHelper.php b/src/Helpers/CronHelper.php new file mode 100644 index 000000000..a278557aa --- /dev/null +++ b/src/Helpers/CronHelper.php @@ -0,0 +1,135 @@ + 2400) { + self::enableBoard(); + self::releaseLockFile(); + } + } + } + + /** + * Снятие блокировки крона (по файлу) + * + * @return void + */ + public static function releaseLockFile() + { + rename(CRON_RUNNING, CRON_ALLOWED); + self::touchLockFile(CRON_ALLOWED); + } + + /** + * Создание файла блокировки + * + * @param $lock_file + * + * @return void + */ + public static function touchLockFile($lock_file) + { + file_write(make_rand_str(20), $lock_file, 0, true, true); + } + + /** + * Включение форума (при разблокировке крона) + * + * @return void + */ + public static function enableBoard() + { + if (file_exists(BB_DISABLED)) { + rename(BB_DISABLED, BB_ENABLED); + } + } + + /** + * Отключение форума (при блокировке крона) + * + * @return void + */ + public static function disableBoard() + { + if (file_exists(BB_ENABLED)) { + rename(BB_ENABLED, BB_DISABLED); + } + } + + /** + * Проверка наличия файла блокировки + * + * @return bool + */ + public static function hasFileLock() + { + $lock_obtained = false; + + if (file_exists(CRON_ALLOWED)) { + $lock_obtained = rename(CRON_ALLOWED, CRON_RUNNING); + } elseif (file_exists(CRON_RUNNING)) { + self::releaseDeadlock(); + } elseif (!file_exists(CRON_ALLOWED) && !file_exists(CRON_RUNNING)) { + file_write('', CRON_ALLOWED); + $lock_obtained = rename(CRON_ALLOWED, CRON_RUNNING); + } + + return $lock_obtained; + } + + /** + * Отслеживание запуска задач + * + * @param $mode + */ + public static function trackRunning($mode) + { + if (!defined('START_MARK')) { + define('START_MARK', TRIGGERS_DIR . '/cron_started_at_' . date('Y-m-d_H-i-s') . '_by_pid_' . getmypid()); + } + + if ($mode === 'start') { + self::touchLockFile(CRON_RUNNING); + file_write('', START_MARK); + } elseif ($mode === 'end') { + unlink(START_MARK); + } + } +} diff --git a/src/Legacy/SqlDb.php b/src/Legacy/SqlDb.php index 23d8ab430..6e4a5885f 100644 --- a/src/Legacy/SqlDb.php +++ b/src/Legacy/SqlDb.php @@ -111,7 +111,7 @@ class SqlDb */ public function connect() { - $this->cur_query = ($this->dbg_enabled) ? "connect to: {$this->cfg['dbhost']}" : 'connect'; + $this->cur_query = $this->dbg_enabled ? "connect to: {$this->cfg['dbhost']}" : 'connect'; $this->debug('start'); $p = ((bool)$this->cfg['persist']) ? 'p:' : ''; @@ -119,7 +119,7 @@ class SqlDb $this->selected_db = $this->cfg['dbname']; if (mysqli_connect_error()) { - $server = (DBG_USER) ? $this->cfg['dbhost'] : ''; + $server = DBG_USER ? $this->cfg['dbhost'] : ''; header('HTTP/1.0 503 Service Unavailable'); bb_log(' ', "db_err/connect_failed_{$this->cfg['dbhost']}"); die("Could not connect to mysql server $server"); @@ -242,9 +242,9 @@ class SqlDb } } return $result; - } else { - return false; } + + return false; } /** @@ -275,9 +275,9 @@ class SqlDb if ($field_name) { return isset($row[$field_name]) ? $row[$field_name] : false; - } else { - return $row; } + + return $row; } /** @@ -571,9 +571,9 @@ class SqlDb { if ($this->link) { return ['code' => mysqli_errno($this->link), 'message' => mysqli_error($this->link)]; - } else { - return ['code' => '', 'message' => 'not connected']; } + + return ['code' => '', 'message' => 'not connected']; } /** @@ -783,7 +783,10 @@ class SqlDb } } - @define('IN_FIRST_SLOW_QUERY', true); + if (!defined('IN_FIRST_SLOW_QUERY')) { + define('IN_FIRST_SLOW_QUERY', true); + } + CACHE('bb_cache')->set('dont_log_slow_query', $new_priority, $ignoring_time); } @@ -856,7 +859,7 @@ class SqlDb $err = $this->sql_error(); $msg .= "\n" . trim(sprintf('#%06d %s', $err['code'], $err['message'])); } else { - $msg .= " [" . $this->debug_find_source() . "]"; + $msg .= ' [' . $this->debug_find_source() . ']'; } trigger_error($msg, E_USER_ERROR); diff --git a/src/Legacy/Template.php b/src/Legacy/Template.php index bdf5060f8..281c92bdc 100644 --- a/src/Legacy/Template.php +++ b/src/Legacy/Template.php @@ -239,7 +239,7 @@ class Template { $this->cur_tpl = $filename; - global $lang, $bb_cfg, $user, $tr_cfg; + global $lang, $bb_cfg, $user; $L =& $lang; $V =& $this->vars; diff --git a/styles/templates/default/tpl_config.php b/styles/templates/default/tpl_config.php index 802719b8f..c2144f07c 100644 --- a/styles/templates/default/tpl_config.php +++ b/styles/templates/default/tpl_config.php @@ -128,15 +128,6 @@ $images['voting_graphic'][4] = $_main . 'voting_bar.gif'; $images['progress_bar'] = $_main . 'progress_bar.gif'; $images['progress_bar_full'] = $_main . 'progress_bar_full.gif'; -// Vote graphic length defines the maximum length of a vote result graphic, ie. 100% = this length -$bb_cfg['vote_graphic_length'] = 205; -$bb_cfg['privmsg_graphic_length'] = 175; - -$bb_cfg['topic_left_column_witdh'] = 150; -// Images auto-resize -$bb_cfg['post_img_width_decr'] = 52; // decrement for posted images width (px) -$bb_cfg['attach_img_width_decr'] = 130; // decrement for attach images width (px) - $template->assign_vars(array( 'IMG' => $_main, 'TEXT_BUTTONS' => $bb_cfg['text_buttons'], diff --git a/styles/templates/default/tracker.tpl b/styles/templates/default/tracker.tpl index 3a2515fcc..bf19fecd5 100644 --- a/styles/templates/default/tracker.tpl +++ b/styles/templates/default/tracker.tpl @@ -238,7 +238,7 @@ $(function(){ /> {L_HIDE_CONTENTS}

    -

    {TOR_TYPE_CHBOX}

    +

    {TOR_TYPE_CHBOX}

    @@ -522,4 +522,4 @@ function get_fs_link () } return false; } - \ No newline at end of file + diff --git a/styles/templates/default/viewtopic_attach.tpl b/styles/templates/default/viewtopic_attach.tpl index 153b63393..0fc3b92cb 100644 --- a/styles/templates/default/viewtopic_attach.tpl +++ b/styles/templates/default/viewtopic_attach.tpl @@ -146,11 +146,11 @@
    - + - + @@ -252,7 +252,7 @@ - + @@ -366,4 +366,4 @@ $('#tor-filelist-btn').click(function(){ - \ No newline at end of file + diff --git a/viewtopic.php b/viewtopic.php index 1aa6d6e9c..1bee0185d 100644 --- a/viewtopic.php +++ b/viewtopic.php @@ -30,6 +30,7 @@ require INC_DIR . '/bbcode.php'; $datastore->enqueue(array( 'ranks', + 'cat_forums', )); $page_cfg['load_tpl_vars'] = array(
    {postrow.attach.tor_reged.DOWNLOAD_NAME} {postrow.attach.tor_reged.MAGNET}
     {L_SILVER_STATUS} 
     {L_GOLD_STATUS}