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 = '
';
- break;
- case FEMALE:
- $user_gender = '
';
- break;
- default:
- $user_gender = '
';
- break;
- }
+ }
+
+ switch ($gender) {
+ case MALE:
+ $user_gender = '
';
+ break;
+ case FEMALE:
+ $user_gender = '
';
+ break;
+ default:
+ $user_gender = '
';
+ 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}