diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 000000000..87694ddab
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,19 @@
+# EditorConfig helps developers define and maintain consistent
+# coding styles between different editors and IDEs
+# editorconfig.org
+
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 2
+
+[*.{diff,md}]
+trim_trailing_whitespace = false
+
+[*.php]
+indent_size = 4
diff --git a/.gitignore b/.gitignore
index 451adc104..6d129415a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,7 @@
.idea/
composer.phar
composer.lock
+configs/local.php
data/avatars
data/torrent_files
internal_data/ajax_html
diff --git a/.scrutinizer.yml b/.scrutinizer.yml
new file mode 100644
index 000000000..a6719f51d
--- /dev/null
+++ b/.scrutinizer.yml
@@ -0,0 +1,32 @@
+build:
+ environment:
+ php:
+ version: 5.6
+
+filter:
+ excluded_paths:
+ - 'tests/*'
+
+checks:
+ php:
+ one_class_per_file: false
+ side_effects_or_types: false
+ no_mixed_inline_html: false
+ require_braces_around_control_structures: false
+ php5_style_constructor: false
+ no_global_keyword: false
+ avoid_usage_of_logical_operators: false
+ no_underscore_prefix_in_properties: false
+ no_underscore_prefix_in_methods: false
+ single_namespace_per_use: false
+ avoid_superglobals: false
+ no_exit: false
+
+coding_style:
+ php:
+ indentation:
+ general:
+ use_tabs: true
+ spaces:
+ around_operators:
+ concatenation: true
\ No newline at end of file
diff --git a/admin/admin_bt_tracker_cfg.php b/admin/admin_bt_tracker_cfg.php
index 9406a5b89..d6388f4cb 100644
--- a/admin/admin_bt_tracker_cfg.php
+++ b/admin/admin_bt_tracker_cfg.php
@@ -7,6 +7,9 @@ if (!empty($setmodules))
}
require('./pagestart.php');
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
+
if (!IS_SUPER_ADMIN) bb_die($lang['NOT_ADMIN']);
require(INC_DIR .'functions_admin_torrent.php');
@@ -51,9 +54,9 @@ set_tpl_vars ($default_cfg_num, $tr_cfg);
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'],
+ 'IGNORE_REPORTED_IP' => $di->config->get('ignore_reported_ip'),
+ 'ANNOUNCE_INTERVAL' => $di->config->get('announce_interval'),
+ 'PASSKEY_KEY' => $di->config->get('passkey_key'),
'GOLD_SILVER_ENABLED' => $tr_cfg['gold_silver_enabled'],
'DISABLE_SUBMIT' => true,
diff --git a/admin/admin_log.php b/admin/admin_log.php
index 023cebb7b..d98c866d1 100644
--- a/admin/admin_log.php
+++ b/admin/admin_log.php
@@ -7,6 +7,9 @@ if (!empty($setmodules))
}
require('./pagestart.php');
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
+
$datastore->enqueue(array(
'moderators',
));
@@ -155,7 +158,7 @@ if (($var =& $_REQUEST[$daysback_key]) && ($var != $def_days))
}
if (($var =& $_REQUEST[$datetime_key]) && ($var != $def_datetime))
{
- $tz = TIMENOW + (3600 * $bb_cfg['board_timezone']);
+ $tz = TIMENOW + (3600 * $di->config->get('board_timezone'));
if (($tmp_timestamp = strtotime($var, $tz)) > 0)
{
$datetime_val = $tmp_timestamp;
diff --git a/admin/admin_mass_email.php b/admin/admin_mass_email.php
index be9cb7882..0cb59e4e0 100644
--- a/admin/admin_mass_email.php
+++ b/admin/admin_mass_email.php
@@ -7,6 +7,9 @@ if (!empty($setmodules))
}
require('./pagestart.php');
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
+
set_time_limit(1200);
$subject = (string) trim(request_var('subject', ''));
@@ -57,9 +60,9 @@ if (isset($_POST['submit']))
foreach ($user_list as $i => $row)
{
- $emailer = new emailer($bb_cfg['smtp_delivery']);
+ $emailer = new emailer($di->config->get('smtp_delivery'));
- $emailer->from($bb_cfg['sitename'] ." <{$bb_cfg['board_email']}>");
+ $emailer->from($di->config->get('sitename') ." <{$di->config->get('board_email')}>");
$emailer->email_address($row['username'] ." <{$row['user_email']}>");
$emailer->use_template('admin_send_email');
diff --git a/admin/admin_sitemap.php b/admin/admin_sitemap.php
index 6edeb817a..c397c3267 100644
--- a/admin/admin_sitemap.php
+++ b/admin/admin_sitemap.php
@@ -21,10 +21,10 @@ if (request_var('submit', '')) {
bb_die('' . $lang['GO_BACK'] . '');
}
-$s_mess = $lang['SITEMAP_CREATED'].': '. bb_date($bb_cfg['sitemap_time'], $bb_cfg['post_date_format']) .' '. $lang['SITEMAP_AVAILABLE'] .': '. make_url('sitemap.xml') .'';
+$s_mess = $lang['SITEMAP_CREATED'].': '. bb_date($di->config->get('sitemap_time'), $di->config->get('post_date_format')) .' '. $lang['SITEMAP_AVAILABLE'] .': '. make_url('sitemap.xml') .'';
$template->assign_vars(array(
- 'STATIC_SITEMAP' => $bb_cfg['static_sitemap'],
+ 'STATIC_SITEMAP' => $di->config->get('static_sitemap'),
'MESSAGE' => (file_exists(INT_DATA_DIR ."sitemap/sitemap.xml")) ? $s_mess : $lang['SITEMAP_NOT_CREATED'],
));
diff --git a/admin/admin_smilies.php b/admin/admin_smilies.php
index 8c59ff95a..4a5a8d5bc 100644
--- a/admin/admin_smilies.php
+++ b/admin/admin_smilies.php
@@ -7,6 +7,9 @@ if (!empty($setmodules))
}
require('./pagestart.php');
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
+
// Check to see what mode we should operate in
if (isset($_POST['mode']) || isset($_GET['mode']))
{
@@ -21,13 +24,13 @@ else
$delimeter = '=+:';
// Read a listing of uploaded smilies for use in the add or edit smliey code
-$dir = opendir(BB_ROOT . $bb_cfg['smilies_path']);
+$dir = opendir(BB_ROOT . $di->config->get('smilies_path'));
while ($file = readdir($dir))
{
- if (!is_dir(bb_realpath(BB_ROOT . $bb_cfg['smilies_path'] . '/' . $file)))
+ if (!is_dir(bb_realpath(BB_ROOT . $di->config->get('smilies_path') . '/' . $file)))
{
- $img_size = getimagesize(BB_ROOT . $bb_cfg['smilies_path'] . '/' . $file);
+ $img_size = getimagesize(BB_ROOT . $di->config->get('smilies_path') . '/' . $file);
if ($img_size[0] && $img_size[1])
{
@@ -78,7 +81,7 @@ if (isset($_GET['import_pack']) || isset($_POST['import_pack']))
}
}
- $fcontents = file(BB_ROOT . $bb_cfg['smilies_path'] . '/'. $smile_pak);
+ $fcontents = file(BB_ROOT . $di->config->get('smilies_path') . '/'. $smile_pak);
if (empty($fcontents))
{
@@ -197,11 +200,11 @@ else if (isset($_POST['add']) || isset($_GET['add']))
$template->assign_vars(array(
'TPL_SMILE_EDIT' => true,
- 'SMILEY_IMG' => BB_ROOT . $bb_cfg['smilies_path'] . '/' . $smiley_images[0],
+ 'SMILEY_IMG' => BB_ROOT . $di->config->get('smilies_path') . '/' . $smiley_images[0],
'S_SMILEY_ACTION' => "admin_smilies.php",
'S_HIDDEN_FIELDS' => $s_hidden_fields,
'S_FILENAME_OPTIONS' => $filename_list,
- 'S_SMILEY_BASEDIR' => BB_ROOT . $bb_cfg['smilies_path']
+ 'S_SMILEY_BASEDIR' => BB_ROOT . $di->config->get('smilies_path')
));
}
else if ( $mode != '' )
@@ -256,11 +259,11 @@ else if ( $mode != '' )
'TPL_SMILE_EDIT' => true,
'SMILEY_CODE' => $smile_data['code'],
'SMILEY_EMOTICON' => $smile_data['emoticon'],
- 'SMILEY_IMG' => BB_ROOT . $bb_cfg['smilies_path'] . '/' . $smiley_edit_img,
+ 'SMILEY_IMG' => BB_ROOT . $di->config->get('smilies_path') . '/' . $smiley_edit_img,
'S_SMILEY_ACTION' => "admin_smilies.php",
'S_HIDDEN_FIELDS' => $s_hidden_fields,
'S_FILENAME_OPTIONS' => $filename_list,
- 'S_SMILEY_BASEDIR' => BB_ROOT . $bb_cfg['smilies_path'],
+ 'S_SMILEY_BASEDIR' => BB_ROOT . $di->config->get('smilies_path'),
));
break;
@@ -357,7 +360,7 @@ else
$template->assign_block_vars('smiles', array(
'ROW_CLASS' => $row_class,
- 'SMILEY_IMG' => BB_ROOT . $bb_cfg['smilies_path'] .'/'. $smilies[$i]['smile_url'],
+ 'SMILEY_IMG' => BB_ROOT . $di->config->get('smilies_path') .'/'. $smilies[$i]['smile_url'],
'CODE' => $smilies[$i]['code'],
'EMOT' => $smilies[$i]['emoticon'],
diff --git a/admin/admin_terms.php b/admin/admin_terms.php
index cb9437927..c1415bbb5 100644
--- a/admin/admin_terms.php
+++ b/admin/admin_terms.php
@@ -7,9 +7,12 @@ if (!empty($setmodules))
}
require('./pagestart.php');
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
+
require(INC_DIR .'bbcode.php');
-if (isset($_POST['post']) && $bb_cfg['terms'] != $_POST['message'])
+if (isset($_POST['post']) && $di->config->get('terms') != $_POST['message'])
{
bb_update_config(array('terms' => $_POST['message']));
bb_die($lang['CONFIG_UPDATED']);
@@ -17,8 +20,8 @@ if (isset($_POST['post']) && $bb_cfg['terms'] != $_POST['message'])
$template->assign_vars(array(
'S_ACTION' => 'admin_terms.php',
- 'EXT_LINK_NW' => $bb_cfg['ext_link_new_win'],
- 'MESSAGE' => ($bb_cfg['terms']) ? $bb_cfg['terms'] : '',
+ 'EXT_LINK_NW' => $di->config->get('ext_link_new_win'),
+ 'MESSAGE' => ($di->config->get('terms')) ? $di->config->get('terms') : '',
'PREVIEW_HTML' => (isset($_REQUEST['preview'])) ? bbcode2html($_POST['message']) : '',
));
diff --git a/admin/admin_user_search.php b/admin/admin_user_search.php
index 31340431e..a1c0c3384 100644
--- a/admin/admin_user_search.php
+++ b/admin/admin_user_search.php
@@ -7,6 +7,9 @@ if (!empty($setmodules))
}
require('./pagestart.php');
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
+
array_deep($_POST, 'trim');
require(INC_DIR .'functions_selects.php');
@@ -945,10 +948,10 @@ else
}
else
{
- $offset = ( ($page - 1) * $bb_cfg['topics_per_page']);
+ $offset = ( ($page - 1) * $di->config->get('topics_per_page'));
}
- $limit = "LIMIT $offset, ".$bb_cfg['topics_per_page'];
+ $limit = "LIMIT $offset, ".$di->config->get('topics_per_page');
$select_sql .= " $limit";
@@ -966,7 +969,7 @@ else
bb_die($lang['SEARCH_NO_RESULTS']);
}
}
- $num_pages = ceil( ( $total_pages['total'] / $bb_cfg['topics_per_page'] ) );
+ $num_pages = ceil( ( $total_pages['total'] / $di->config->get('topics_per_page') ) );
$pagination = '';
diff --git a/admin/admin_words.php b/admin/admin_words.php
index 76ba696b9..752987788 100644
--- a/admin/admin_words.php
+++ b/admin/admin_words.php
@@ -13,9 +13,9 @@ $di = \TorrentPier\Di::getInstance();
/** @var \TorrentPier\Cache\Adapter $cache */
$cache = $di->cache;
-if (!$bb_cfg['use_word_censor'])
+if (!$di->config->get('use_word_censor'))
{
- bb_die('Word censor disabled
($bb_cfg[\'use_word_censor\'] in config.php)');
+ bb_die('Word censor disabled');
}
$mode = request_var('mode', '');
diff --git a/admin/index.php b/admin/index.php
index 301ea5292..2166d5b7e 100644
--- a/admin/index.php
+++ b/admin/index.php
@@ -65,7 +65,7 @@ elseif (isset($_GET['pane']) && $_GET['pane'] == 'right')
{
$template->assign_vars(array(
'TPL_ADMIN_MAIN' => true,
- 'ADMIN_LOCK' => ($bb_cfg['board_disable']) ? true : false,
+ 'ADMIN_LOCK' => ($di->config->get('board_disable')) ? true : false,
'ADMIN_LOCK_CRON' => (file_exists(BB_DISABLED)) ? true :false,
));
@@ -73,8 +73,8 @@ elseif (isset($_GET['pane']) && $_GET['pane'] == 'right')
$total_posts = get_db_stat('postcount');
$total_users = get_db_stat('usercount');
$total_topics = get_db_stat('topiccount');
- $start_date = bb_date($bb_cfg['board_startdate']);
- $boarddays = (TIMENOW - $bb_cfg['board_startdate']) / 86400;
+ $start_date = bb_date($di->config->get('board_startdate'));
+ $boarddays = (TIMENOW - $di->config->get('board_startdate')) / 86400;
$posts_per_day = sprintf('%.2f', $total_posts / $boarddays);
$topics_per_day = sprintf('%.2f', $total_topics / $boarddays);
@@ -82,13 +82,13 @@ elseif (isset($_GET['pane']) && $_GET['pane'] == 'right')
$avatar_dir_size = 0;
- if ($avatar_dir = opendir(BB_ROOT . $bb_cfg['avatar_path']))
+ if ($avatar_dir = opendir(BB_ROOT . $di->config->get('avatar_path')))
{
while( $file = readdir($avatar_dir) )
{
if( $file != '.' && $file != '..' )
{
- $avatar_dir_size += filesize(BB_ROOT . $bb_cfg['avatar_path'] . '/' . $file);
+ $avatar_dir_size += filesize(BB_ROOT . $di->config->get('avatar_path') . '/' . $file);
}
}
closedir($avatar_dir);
@@ -125,7 +125,7 @@ elseif (isset($_GET['pane']) && $_GET['pane'] == 'right')
if (preg_match('/^(3\.23|4\.|5\.|10\.)/', $version))
{
$dblist = array();
- foreach ($bb_cfg['db'] as $name => $row)
+ foreach ($di->config->get('db') as $name => $row)
{
$sql = "SHOW TABLE STATUS FROM {$row[1]}";
if ($result = DB()->sql_query($sql))
@@ -165,9 +165,9 @@ elseif (isset($_GET['pane']) && $_GET['pane'] == 'right')
'USERS_PER_DAY' => $users_per_day,
'AVATAR_DIR_SIZE' => $avatar_dir_size,
'DB_SIZE' => $dbsize,
- 'GZIP_COMPRESSION' => ($bb_cfg['gzip_compress']) ? $lang['ON'] : $lang['OFF'],
- 'TP_VERSION' => $bb_cfg['tp_version'] . (!empty($bb_cfg['tp_release_state']) ? ' :: ' . $bb_cfg['tp_release_state'] : ''),
- 'TP_RELEASE_DATE' => $bb_cfg['tp_release_date'],
+ 'GZIP_COMPRESSION' => ($di->config->get('gzip_compress')) ? $lang['ON'] : $lang['OFF'],
+ 'TP_VERSION' => $di->config->get('tp_version') . (!empty($di->config->get('tp_release_state')) ? ' :: ' . $di->config->get('tp_release_state') : ''),
+ 'TP_RELEASE_DATE' => $di->config->get('tp_release_date'),
'ZF_VERSION' => Zend\Version\Version::VERSION,
));
@@ -237,7 +237,7 @@ elseif (isset($_GET['pane']) && $_GET['pane'] == 'right')
'STARTED' => bb_date($onlinerow_reg[$i]['session_start'], 'H:i', false),
'LASTUPDATE' => bb_date($onlinerow_reg[$i]['user_session_time'], 'H:i', false),
'IP_ADDRESS' => $reg_ip,
- 'U_WHOIS_IP' => $bb_cfg['whois_info'] . $reg_ip,
+ 'U_WHOIS_IP' => $di->config->get('whois_info') . $reg_ip,
));
}
}
@@ -262,7 +262,7 @@ elseif (isset($_GET['pane']) && $_GET['pane'] == 'right')
'STARTED' => bb_date($onlinerow_guest[$i]['session_start'], 'H:i', false),
'LASTUPDATE' => bb_date($onlinerow_guest[$i]['session_time'], 'H:i' , false),
'IP_ADDRESS' => $guest_ip,
- 'U_WHOIS_IP' => $bb_cfg['whois_info'] . $guest_ip,
+ 'U_WHOIS_IP' => $di->config->get('whois_info') . $guest_ip,
));
}
}
@@ -278,7 +278,7 @@ else
{
// Generate frameset
$template->assign_vars(array(
- 'CONTENT_ENCODING' => $bb_cfg['lang'][$userdata['user_lang']]['encoding'],
+ 'CONTENT_ENCODING' => $di->config->get('lang.' . $userdata['user_lang'] . '.encoding'),
'TPL_ADMIN_FRAMESET' => true,
));
send_no_cache_headers();
diff --git a/admin/stats/tracker.php b/admin/stats/tracker.php
index 69d9922d8..a709bf72a 100644
--- a/admin/stats/tracker.php
+++ b/admin/stats/tracker.php
@@ -4,6 +4,9 @@ define('IN_ADMIN', true);
define('BB_ROOT', './../../');
require(BB_ROOT .'common.php');
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
+
$user->session_start();
if (!IS_ADMIN) bb_die($lang['NOT_AUTHORISED']);
@@ -11,7 +14,7 @@ if (!IS_ADMIN) bb_die($lang['NOT_AUTHORISED']);
$peers_in_last_minutes = array(30, 15, 5, 1);
$peers_in_last_sec_limit = 300;
-$announce_interval = intval($bb_cfg['announce_interval']);
+$announce_interval = intval($di->config->get('announce_interval'));
$stat = array();
define('TMP_TRACKER_TABLE', 'tmp_tracker');
diff --git a/bt/announce.php b/bt/announce.php
index 7fc2bdf92..269955a25 100644
--- a/bt/announce.php
+++ b/bt/announce.php
@@ -23,8 +23,8 @@ if (isset($_GET['event']) && $_GET['event'] === 'completed')
dummy_exit(mt_rand(600, 1200));
}
-$announce_interval = $bb_cfg['announce_interval'];
-$passkey_key = $bb_cfg['passkey_key'];
+$announce_interval = $di->config->get('announce_interval');
+$passkey_key = $di->config->get('passkey_key');
$max_left_val = 536870912000; // 500 GB
$max_up_down_val = 5497558138880; // 5 TB
$max_up_add_val = 85899345920; // 80 GB
@@ -112,9 +112,9 @@ if (!verify_id($passkey, BT_AUTH_KEY_LENGTH))
// IP
$ip = $_SERVER['REMOTE_ADDR'];
-if (!$bb_cfg['ignore_reported_ip'] && isset($_GET['ip']) && $ip !== $_GET['ip'])
+if (!$di->config->get('ignore_reported_ip') && isset($_GET['ip']) && $ip !== $_GET['ip'])
{
- if (!$bb_cfg['verify_reported_ip'])
+ if (!$di->config->get('verify_reported_ip'))
{
$ip = $_GET['ip'];
}
@@ -124,7 +124,7 @@ if (!$bb_cfg['ignore_reported_ip'] && isset($_GET['ip']) && $ip !== $_GET['ip'])
{
if ($x_ip === $_GET['ip'])
{
- if (!$bb_cfg['allow_internal_ip'] && preg_match("#^(10|172\.16|192\.168)\.#", $x_ip))
+ if (!$di->config->get('allow_internal_ip') && preg_match("#^(10|172\.16|192\.168)\.#", $x_ip))
{
break;
}
@@ -278,7 +278,7 @@ else
}
// 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 (!$di->config->get('unlimited_users.' . $user_id) && $tr_cfg['limit_active_tor'] && (($tr_cfg['limit_seed_count'] && $seeder) || ($tr_cfg['limit_leech_count'] && !$seeder)))
{
$sql = "SELECT COUNT(DISTINCT topic_id) AS active_torrents
FROM ". BB_BT_TRACKER ."
diff --git a/common.php b/common.php
index 26919184a..df2efb604 100644
--- a/common.php
+++ b/common.php
@@ -52,7 +52,6 @@ $di->register(new \TorrentPier\ServiceProviders\TranslationServiceProvider());
$di->register(new \TorrentPier\ServiceProviders\TwigServiceProvider());
$di->register(new \TorrentPier\ServiceProviders\CaptchaServiceProvider());
-$bb_cfg = $di->config->toArray();
$page_cfg = $di->config->page->toArray();
$tr_cfg = $di->config->tracker->toArray();
$rating_limits = $di->config->rating->toArray();
@@ -63,10 +62,10 @@ use Zend\Loader\StandardAutoloader;
$loader = new StandardAutoloader(array('autoregister_zf' => true));
$loader->register();
-$server_protocol = ($bb_cfg['cookie_secure']) ? 'https://' : 'http://';
-$server_port = (in_array($bb_cfg['server_port'], array(80, 443))) ? '' : ':' . $bb_cfg['server_port'];
-define('FORUM_PATH', $bb_cfg['script_path']);
-define('FULL_URL', $server_protocol . $bb_cfg['server_name'] . $server_port . $bb_cfg['script_path']);
+$server_protocol = ($di->config->get('cookie_secure')) ? 'https://' : 'http://';
+$server_port = (in_array($di->config->get('server_port'), array(80, 443))) ? '' : ':' . $di->config->get('server_port');
+define('FORUM_PATH', $di->config->get('script_path'));
+define('FULL_URL', $server_protocol . $di->config->get('server_name') . $server_port . $di->config->get('script_path'));
unset($server_protocol, $server_port);
// Debug options
@@ -82,8 +81,8 @@ 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('PEERS_LIST_EXPIRE', round($bb_cfg['announce_interval'] * 0.7)); // sec
+define('PEER_HASH_EXPIRE', round($di->config->get('announce_interval') * (0.85 * $tr_cfg['expire_factor']))); // sec
+define('PEERS_LIST_EXPIRE', round($di->config->get('announce_interval') * 0.7)); // sec
define('DL_STATUS_RELEASER', -1);
define('DL_STATUS_DOWN', 0);
@@ -115,7 +114,7 @@ $DBS = new DBS([
false
]
],
- 'db_alias' => $bb_cfg['db_alias']
+ 'db_alias' => $di->config->get('db_alias')
]);
/**
@@ -140,35 +139,35 @@ require(INC_DIR . 'datastore/xcache.php');
require(INC_DIR . 'datastore/file.php');
// Initialize datastore
-switch ($bb_cfg['datastore_type'])
+switch ($di->config->get('datastore_type'))
{
case 'memcache':
- $datastore = new datastore_memcache($bb_cfg['cache']['memcache'], $bb_cfg['cache']['prefix']);
+ $datastore = new datastore_memcache($di->config->get('cache.memcache'), $di->config->get('cache.prefix'));
break;
case 'sqlite':
$default_cfg = array(
- 'db_file_path' => $bb_cfg['cache']['db_dir'] .'datastore.sqlite.db',
+ 'db_file_path' => $di->config->get('cache.db_dir') .'datastore.sqlite.db',
'pconnect' => true,
'con_required' => true,
);
- $datastore = new datastore_sqlite($default_cfg, $bb_cfg['cache']['prefix']);
+ $datastore = new datastore_sqlite($default_cfg, $di->config->get('cache.prefix'));
break;
case 'redis':
- $datastore = new datastore_redis($bb_cfg['cache']['redis'], $bb_cfg['cache']['prefix']);
+ $datastore = new datastore_redis($di->config->get('cache.redis'), $di->config->get('cache.prefix'));
break;
case 'apc':
- $datastore = new datastore_apc($bb_cfg['cache']['prefix']);
+ $datastore = new datastore_apc($di->config->get('cache.prefix'));
break;
case 'xcache':
- $datastore = new datastore_xcache($bb_cfg['cache']['prefix']);
+ $datastore = new datastore_xcache($di->config->get('cache.prefix'));
break;
case 'filecache':
- default: $datastore = new datastore_file($bb_cfg['cache']['db_dir'] . 'datastore/', $bb_cfg['cache']['prefix']);
+ default: $datastore = new datastore_file($di->config->get('cache.db_dir') . 'datastore/', $di->config->get('cache.prefix'));
}
function sql_dbg_enabled ()
diff --git a/group.php b/group.php
index 68a6b2449..421343efc 100644
--- a/group.php
+++ b/group.php
@@ -6,6 +6,9 @@ require(BB_ROOT .'common.php');
require(INC_DIR .'bbcode.php');
require(INC_DIR .'functions_group.php');
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
+
$page_cfg['use_tablesorter'] = true;
$s_member_groups = $s_pending_groups = $s_member_groups_opt = $s_pending_groups_opt = '';
@@ -13,25 +16,28 @@ $select_sort_mode = $select_sort_order = '';
function generate_user_info(&$row, $date_format, $group_mod, &$from, &$posts, &$joined, &$pm, &$email, &$www, &$user_time, &$avatar)
{
- global $lang, $images, $bb_cfg;
+ global $lang, $images;
+
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
$from = (!empty($row['user_from'])) ? $row['user_from'] : '';
$joined = bb_date($row['user_regdate']);
$user_time = (!empty($row['user_time'])) ? bb_date($row['user_time']) : $lang['NONE'];
$posts = ($row['user_posts']) ? $row['user_posts'] : 0;
- $pm = ($bb_cfg['text_buttons']) ? ''. $lang['SEND_PM_TXTB'] .'' : '
';
+ $pm = ($di->config->get('text_buttons')) ? ''. $lang['SEND_PM_TXTB'] .'' : '
';
$avatar = get_avatar($row['user_id'], $row['avatar_ext_id'], !bf($row['user_opt'], 'user_opt', 'dis_avatar'), '', 50, 50);
if (bf($row['user_opt'], 'user_opt', 'user_viewemail') || $group_mod)
{
- $email_uri = ($bb_cfg['board_email_form']) ? ("profile.php?mode=email&". POST_USERS_URL ."=".$row['user_id']) : 'mailto:'. $row['user_email'];
+ $email_uri = ($di->config->get('board_email_form')) ? ("profile.php?mode=email&". POST_USERS_URL ."=".$row['user_id']) : 'mailto:'. $row['user_email'];
$email = ''. $row['user_email'] .'';
}
else $email = '';
if ($row['user_website'])
{
- $www = ($bb_cfg['text_buttons']) ? ''. $lang['VISIT_WEBSITE_TXTB'] .'' : '
';
+ $www = ($di->config->get('text_buttons')) ? ''. $lang['VISIT_WEBSITE_TXTB'] .'' : '
';
}
else $www = '';
@@ -44,7 +50,7 @@ set_die_append_msg();
$group_id = isset($_REQUEST[POST_GROUPS_URL]) ? intval($_REQUEST[POST_GROUPS_URL]) : null;
$start = isset($_REQUEST['start']) ? abs(intval($_REQUEST['start'])) : 0;
-$per_page = $bb_cfg['group_members_per_page'];
+$per_page = $di->config->get('group_members_per_page');
$view_mode = isset($_REQUEST['view']) ? (string) $_REQUEST['view'] : null;
$rel_limit = 50;
@@ -217,19 +223,19 @@ else if (isset($_POST['joingroup']) && $_POST['joingroup'])
add_user_into_group($group_id, $userdata['user_id'], 1, TIMENOW);
- if ($bb_cfg['group_send_email'])
+ if ($di->config->get('group_send_email'))
{
require(CLASS_DIR .'emailer.php');
- $emailer = new emailer($bb_cfg['smtp_delivery']);
+ $emailer = new emailer($di->config->get('smtp_delivery'));
- $emailer->from($bb_cfg['sitename'] ." <{$bb_cfg['board_email']}>");
+ $emailer->from($di->config->get('sitename') ." <{$di->config->get('board_email')}>");
$emailer->email_address($moderator['username'] ." <{$moderator['user_email']}>");
$emailer->use_template('group_request', $moderator['user_lang']);
$emailer->assign_vars(array(
'USER' => $userdata['username'],
- 'SITENAME' => $bb_cfg['sitename'],
+ 'SITENAME' => $di->config->get('sitename'),
'GROUP_MODERATOR' => $moderator['username'],
'U_GROUP' => make_url(GROUP_URL . $group_id),
));
@@ -269,18 +275,18 @@ else
add_user_into_group($group_id, $row['user_id']);
- if ($bb_cfg['group_send_email'])
+ if ($di->config->get('group_send_email'))
{
require(CLASS_DIR .'emailer.php');
- $emailer = new emailer($bb_cfg['smtp_delivery']);
+ $emailer = new emailer($di->config->get('smtp_delivery'));
- $emailer->from($bb_cfg['sitename'] ." <{$bb_cfg['board_email']}>");
+ $emailer->from($di->config->get('sitename') ." <{$di->config->get('board_email')}>");
$emailer->email_address($row['username'] ." <{$row['user_email']}>");
$emailer->use_template('group_added', $row['user_lang']);
$emailer->assign_vars(array(
- 'SITENAME' => $bb_cfg['sitename'],
+ 'SITENAME' => $di->config->get('sitename'),
'GROUP_NAME' => $group_info['group_name'],
'U_GROUP' => make_url(GROUP_URL . $group_id),
));
@@ -330,7 +336,7 @@ else
}
}
// Email users when they are approved
- if (!empty($_POST['approve']) && $bb_cfg['group_send_email'])
+ if (!empty($_POST['approve']) && $di->config->get('group_send_email'))
{
$sql_select = "SELECT username, user_email, user_lang
FROM ". BB_USERS ."
@@ -342,9 +348,9 @@ else
}
require(CLASS_DIR .'emailer.php');
- $emailer = new emailer($bb_cfg['smtp_delivery']);
+ $emailer = new emailer($di->config->get('smtp_delivery'));
- $emailer->from($bb_cfg['sitename'] ." <{$bb_cfg['board_email']}>");
+ $emailer->from($di->config->get('sitename') ." <{$di->config->get('board_email')}>");
foreach (DB()->fetch_rowset($sql_select) as $row)
{
@@ -353,7 +359,7 @@ else
}
$emailer->assign_vars(array(
- 'SITENAME' => $bb_cfg['sitename'],
+ 'SITENAME' => $di->config->get('sitename'),
'GROUP_NAME' => $group_info['group_name'],
'U_GROUP' => make_url(GROUP_URL . $group_id),
));
@@ -438,7 +444,7 @@ else
$username = $group_moderator['username'];
$user_id = $group_moderator['user_id'];
- generate_user_info($group_moderator, $bb_cfg['default_dateformat'], $is_moderator, $from, $posts, $joined, $pm, $email, $www, $user_time, $avatar);
+ generate_user_info($group_moderator, $di->config->get('default_dateformat'), $is_moderator, $from, $posts, $joined, $pm, $email, $www, $user_time, $avatar);
$group_type = '';
if ($group_info['group_type'] == GROUP_OPEN)
@@ -597,7 +603,7 @@ else
{
$user_id = $member['user_id'];
- generate_user_info($member, $bb_cfg['default_dateformat'], $is_moderator, $from, $posts, $joined, $pm, $email, $www, $user_time, $avatar);
+ generate_user_info($member, $di->config->get('default_dateformat'), $is_moderator, $from, $posts, $joined, $pm, $email, $www, $user_time, $avatar);
if ($group_info['group_type'] != GROUP_HIDDEN || $is_group_member || $is_moderator)
{
@@ -658,7 +664,7 @@ else
{
$user_id = $member['user_id'];
- generate_user_info($member, $bb_cfg['default_dateformat'], $is_moderator, $from, $posts, $joined, $pm, $email, $www, $user_time, $avatar);
+ generate_user_info($member, $di->config->get('default_dateformat'), $is_moderator, $from, $posts, $joined, $pm, $email, $www, $user_time, $avatar);
$row_class = !($i % 2) ? 'row1' : 'row2';
diff --git a/group_edit.php b/group_edit.php
index 4b1daa07c..edd460c66 100644
--- a/group_edit.php
+++ b/group_edit.php
@@ -5,6 +5,9 @@ define('BB_ROOT', './');
require(BB_ROOT .'common.php');
require(INC_DIR .'functions_group.php');
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
+
$page_cfg['include_bbcode_js'] = true;
// Start session management
@@ -34,12 +37,12 @@ if ($is_moderator)
// Avatar
if ($submit)
{
- if (!empty($_FILES['avatar']['name']) && $bb_cfg['group_avatars']['up_allowed'])
+ if (!empty($_FILES['avatar']['name']) && $di->config->get('group_avatars.up_allowed'))
{
require(INC_DIR .'functions_upload.php');
$upload = new upload_common();
- if ($upload->init($bb_cfg['group_avatars'], $_FILES['avatar']) && $upload->store('avatar', array("user_id" => GROUP_AVATAR_MASK . $group_id, "avatar_ext_id" => $group_info['avatar_ext_id'])))
+ if ($upload->init($di->config->get('group_avatars'), $_FILES['avatar']) && $upload->store('avatar', array("user_id" => GROUP_AVATAR_MASK . $group_id, "avatar_ext_id" => $group_info['avatar_ext_id'])))
{
$avatar_ext_id = (int) $upload->file_ext_id;
}
@@ -86,7 +89,7 @@ if ($is_moderator)
'S_HIDDEN_FIELDS' => $s_hidden_fields,
'S_GROUP_CONFIG_ACTION' => "group_edit.php?" . POST_GROUPS_URL . "=$group_id",
- 'AVATAR_EXPLAIN' => sprintf($lang['AVATAR_EXPLAIN'], $bb_cfg['group_avatars']['max_width'], $bb_cfg['group_avatars']['max_height'], (round($bb_cfg['group_avatars']['max_size'] / 1024))),
+ 'AVATAR_EXPLAIN' => sprintf($lang['AVATAR_EXPLAIN'], $di->config->get('group_avatars.max_width'), $di->config->get('group_avatars.max_height'), (round($di->config->get('group_avatars.max_size') / 1024))),
'AVATAR_IMG' => get_avatar(GROUP_AVATAR_MASK . $group_id, $group_info['avatar_ext_id']),
));
diff --git a/index.php b/index.php
index 44580d6c2..80a1c2b9b 100644
--- a/index.php
+++ b/index.php
@@ -23,11 +23,11 @@ $datastore->enqueue(array(
'stats',
'moderators',
));
-if ($bb_cfg['show_latest_news'])
+if ($di->config->get('show_latest_news'))
{
$datastore->enqueue('latest_news');
}
-if ($bb_cfg['show_network_news'])
+if ($di->config->get('show_network_news'))
{
$datastore->enqueue('network_news');
}
@@ -269,7 +269,7 @@ foreach ($cat_forums as $cid => $c)
'LAST_TOPIC_ID' => $f['last_topic_id'],
'LAST_TOPIC_TIP' => $f['last_topic_title'],
'LAST_TOPIC_TITLE' => wbr(str_short($f['last_topic_title'], $last_topic_max_len)),
- 'LAST_POST_TIME' => bb_date($f['last_post_time'], $bb_cfg['last_post_date_format']),
+ 'LAST_POST_TIME' => bb_date($f['last_post_time'], $di->config->get('last_post_date_format')),
'LAST_POST_USER' => profile_url(array('username' => str_short($f['last_post_username'], 15), 'user_id' => $f['last_post_user_id'], 'user_rank' => $f['last_post_user_rank'])),
));
}
@@ -285,14 +285,14 @@ $template->assign_vars(array(
'TOTAL_TOPICS' => sprintf($lang['POSTED_TOPICS_TOTAL'], $stats['topiccount']),
'TOTAL_POSTS' => sprintf($lang['POSTED_ARTICLES_TOTAL'], $stats['postcount']),
'TOTAL_USERS' => sprintf($lang['REGISTERED_USERS_TOTAL'], $stats['usercount']),
- 'TOTAL_GENDER' => ($bb_cfg['gender']) ? sprintf($lang['USERS_TOTAL_GENDER'], $stats['male'], $stats['female'], $stats['unselect']) : '',
+ 'TOTAL_GENDER' => ($di->config->get('gender')) ? sprintf($lang['USERS_TOTAL_GENDER'], $stats['male'], $stats['female'], $stats['unselect']) : '',
'NEWEST_USER' => sprintf($lang['NEWEST_USER'], profile_url($stats['newestuser'])),
// Tracker stats
- 'TORRENTS_STAT' => ($bb_cfg['tor_stats']) ? sprintf($lang['TORRENTS_STAT'], $stats['torrentcount'], humn_size($stats['size'])) : '',
- 'PEERS_STAT' => ($bb_cfg['tor_stats']) ? sprintf($lang['PEERS_STAT'], $stats['peers'], $stats['seeders'], $stats['leechers']) : '',
- 'SPEED_STAT' => ($bb_cfg['tor_stats']) ? sprintf($lang['SPEED_STAT'], humn_size($stats['speed']) .'/s') : '',
- 'SHOW_MOD_INDEX' => $bb_cfg['show_mod_index'],
+ 'TORRENTS_STAT' => ($di->config->get('tor_stats')) ? sprintf($lang['TORRENTS_STAT'], $stats['torrentcount'], humn_size($stats['size'])) : '',
+ 'PEERS_STAT' => ($di->config->get('tor_stats')) ? sprintf($lang['PEERS_STAT'], $stats['peers'], $stats['seeders'], $stats['leechers']) : '',
+ 'SPEED_STAT' => ($di->config->get('tor_stats')) ? sprintf($lang['SPEED_STAT'], humn_size($stats['speed']) .'/s') : '',
+ 'SHOW_MOD_INDEX' => $di->config->get('show_mod_index'),
'FORUM_IMG' => $images['forum'],
'FORUM_NEW_IMG' => $images['forum_new'],
'FORUM_LOCKED_IMG' => $images['forum_locked'],
@@ -310,13 +310,13 @@ $template->assign_vars(array(
));
// Set tpl vars for bt_userdata
-if ($bb_cfg['bt_show_dl_stat_on_index'] && !IS_GUEST)
+if ($di->config->get('bt_show_dl_stat_on_index') && !IS_GUEST)
{
show_bt_userdata($userdata['user_id']);
}
// Latest news
-if ($bb_cfg['show_latest_news'])
+if ($di->config->get('show_latest_news'))
{
if (!$latest_news = $datastore->get('latest_news'))
{
@@ -332,7 +332,7 @@ if ($bb_cfg['show_latest_news'])
{
$template->assign_block_vars('news', array(
'NEWS_TOPIC_ID' => $news['topic_id'],
- 'NEWS_TITLE' => str_short($news['topic_title'], $bb_cfg['max_news_title']),
+ 'NEWS_TITLE' => str_short($news['topic_title'], $di->config->get('max_news_title')),
'NEWS_TIME' => bb_date($news['topic_time'], 'd-M', false),
'NEWS_IS_NEW' => is_unread($news['topic_time'], $news['topic_id'], $news['forum_id']),
));
@@ -340,7 +340,7 @@ if ($bb_cfg['show_latest_news'])
}
// Network news
-if ($bb_cfg['show_network_news'])
+if ($di->config->get('show_network_news'))
{
if (!$network_news = $datastore->get('network_news'))
{
@@ -356,14 +356,14 @@ if ($bb_cfg['show_network_news'])
{
$template->assign_block_vars('net', array(
'NEWS_TOPIC_ID' => $net['topic_id'],
- 'NEWS_TITLE' => str_short($net['topic_title'], $bb_cfg['max_net_title']),
+ 'NEWS_TITLE' => str_short($net['topic_title'], $di->config->get('max_net_title')),
'NEWS_TIME' => bb_date($net['topic_time'], 'd-M', false),
'NEWS_IS_NEW' => is_unread($net['topic_time'], $net['topic_id'], $net['forum_id']),
));
}
}
-if ($bb_cfg['birthday_check_day'] && $bb_cfg['birthday_enabled'])
+if ($di->config->get('birthday_check_day') && $di->config->get('birthday_enabled'))
{
$week_list = $today_list = array();
$week_all = $today_all = false;
@@ -381,9 +381,9 @@ if ($bb_cfg['birthday_check_day'] && $bb_cfg['birthday_enabled'])
$week_list[] = profile_url($week) .' ('. birthday_age($week['user_birthday']-1) .')';
}
$week_all = ($week_all) ? ' ...' : '';
- $week_list = sprintf($lang['BIRTHDAY_WEEK'], $bb_cfg['birthday_check_day'], join(', ', $week_list)) . $week_all;
+ $week_list = sprintf($lang['BIRTHDAY_WEEK'], $di->config->get('birthday_check_day'), join(', ', $week_list)) . $week_all;
}
- else $week_list = sprintf($lang['NOBIRTHDAY_WEEK'], $bb_cfg['birthday_check_day']);
+ else $week_list = sprintf($lang['NOBIRTHDAY_WEEK'], $di->config->get('birthday_check_day'));
if ($stats['birthday_today_list'])
{
diff --git a/install/upgrade/r496-user_birthday.php b/install/upgrade/r496-user_birthday.php
index 1d84435f9..257d598e9 100644
--- a/install/upgrade/r496-user_birthday.php
+++ b/install/upgrade/r496-user_birthday.php
@@ -1,5 +1,9 @@
request['mode'];
$user_id = (int) $this->request['user_id'];
@@ -22,7 +25,7 @@ switch ($mode)
case 'delete':
delete_avatar($user_id, $u_data['avatar_ext_id']);
$new_ext_id = 0;
- $response = '
';
+ $response = '
';
break;
default:
$this->ajax_die('Invalid mode');
diff --git a/library/ajax/change_tor_status.php b/library/ajax/change_tor_status.php
index 03da8b89f..880aa99ac 100644
--- a/library/ajax/change_tor_status.php
+++ b/library/ajax/change_tor_status.php
@@ -2,14 +2,17 @@
if (!defined('IN_AJAX')) die(basename(__FILE__));
-global $userdata, $bb_cfg, $lang;
+global $userdata, $lang;
+
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
if (!isset($this->request['topic_id'])) $this->ajax_die('Invalid topic_id');
$topic_id = (int) $this->request['topic_id'];
$mode = (string) $this->request['mode'];
-if ($bb_cfg['tor_comment'])
+if ($di->config->get('tor_comment'))
{
$comment = (string) $this->request['comment'];
}
@@ -73,14 +76,14 @@ switch ($mode)
change_tor_status($topic_id, $new_status);
- $this->response['status'] = $bb_cfg['tor_icons'][$new_status] .' '. $lang['TOR_STATUS_NAME'][$new_status]. ' · '. profile_url($userdata) .' · '. delta_time(TIMENOW) . $lang['TOR_BACK']. '';
+ $this->response['status'] = $di->config->get('tor_icons.' . $new_status) .' '. $lang['TOR_STATUS_NAME'][$new_status]. ' · '. profile_url($userdata) .' · '. delta_time(TIMENOW) . $lang['TOR_BACK']. '';
- if ($bb_cfg['tor_comment'] && (($comment && $comment != $lang['COMMENT']) || in_array($new_status, $bb_cfg['tor_reply'])))
+ if ($di->config->get('tor_comment') && (($comment && $comment != $lang['COMMENT']) || in_array($new_status, $di->config->get('tor_reply'))))
{
if ($tor['poster_id'] > 0)
{
$subject = sprintf($lang['TOR_MOD_TITLE'], $tor['topic_title']);
- $message = sprintf($lang['TOR_MOD_MSG'], get_username($tor['poster_id']), make_url(TOPIC_URL . $topic_id), $bb_cfg['tor_icons'][$new_status] .' '.$lang['TOR_STATUS_NAME'][$new_status]);
+ $message = sprintf($lang['TOR_MOD_MSG'], get_username($tor['poster_id']), make_url(TOPIC_URL . $topic_id), $di->config->get('tor_icons.' . $new_status) .' '.$lang['TOR_STATUS_NAME'][$new_status]);
if ($comment && $comment != $lang['COMMENT']) $message .= "\n\n[b]". $lang['COMMENT'] .'[/b]: '. $comment;
@@ -91,7 +94,7 @@ switch ($mode)
break;
case 'status_reply':
- if (!$bb_cfg['tor_comment']) $this->ajax_die($lang['MODULE_OFF']);
+ if (!$di->config->get('tor_comment')) $this->ajax_die($lang['MODULE_OFF']);
$subject = sprintf($lang['TOR_AUTH_TITLE'], $tor['topic_title']);
$message = sprintf($lang['TOR_AUTH_MSG'], get_username($tor['checked_user_id']), make_url(TOPIC_URL . $topic_id), $tor['topic_title']);
diff --git a/library/ajax/edit_group_profile.php b/library/ajax/edit_group_profile.php
index 8621f75fc..3bbca2615 100644
--- a/library/ajax/edit_group_profile.php
+++ b/library/ajax/edit_group_profile.php
@@ -2,7 +2,10 @@
if (!defined('IN_AJAX')) die(basename(__FILE__));
-global $bb_cfg, $userdata, $lang;
+global $userdata, $lang;
+
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
if (!($group_id = intval($this->request['group_id'])) || !($group_info = get_group_data($group_id)))
{
diff --git a/library/ajax/edit_user_profile.php b/library/ajax/edit_user_profile.php
index d9b37fd96..acf351c51 100644
--- a/library/ajax/edit_user_profile.php
+++ b/library/ajax/edit_user_profile.php
@@ -2,7 +2,10 @@
if (!defined('IN_AJAX')) die(basename(__FILE__));
-global $bb_cfg, $lang;
+global $lang;
+
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
if (!($user_id = intval($this->request['user_id'])) || !($profiledata = get_userdata($user_id)))
{
@@ -47,7 +50,7 @@ switch ($field)
break;
case 'user_gender':
- if (!$bb_cfg['gender']) $this->ajax_die($lang['MODULE_OFF']);
+ if (!$di->config->get('gender')) $this->ajax_die($lang['MODULE_OFF']);
if (!isset($lang['GENDER_SELECT'][$value]))
{
$this->ajax_die($lang['ERROR']);
@@ -56,7 +59,7 @@ switch ($field)
break;
case 'user_birthday':
- if (!$bb_cfg['birthday_enabled']) $this->ajax_die($lang['MODULE_OFF']);
+ if (!$di->config->get('birthday_enabled')) $this->ajax_die($lang['MODULE_OFF']);
$birthday_date = date_parse($value);
if (!empty($birthday_date['year']))
@@ -65,13 +68,13 @@ switch ($field)
{
$this->ajax_die($lang['WRONG_BIRTHDAY_FORMAT']);
}
- elseif (bb_date(TIMENOW, 'Y', 'false') - $birthday_date['year'] > $bb_cfg['birthday_max_age'])
+ elseif (bb_date(TIMENOW, 'Y', 'false') - $birthday_date['year'] > $di->config->get('birthday_max_age'))
{
- $this->ajax_die(sprintf($lang['BIRTHDAY_TO_HIGH'], $bb_cfg['birthday_max_age']));
+ $this->ajax_die(sprintf($lang['BIRTHDAY_TO_HIGH'], $di->config->get('birthday_max_age')));
}
- elseif (bb_date(TIMENOW, 'Y', 'false') - $birthday_date['year'] < $bb_cfg['birthday_min_age'])
+ elseif (bb_date(TIMENOW, 'Y', 'false') - $birthday_date['year'] < $di->config->get('birthday_min_age'))
{
- $this->ajax_die(sprintf($lang['BIRTHDAY_TO_LOW'], $bb_cfg['birthday_min_age']));
+ $this->ajax_die(sprintf($lang['BIRTHDAY_TO_LOW'], $di->config->get('birthday_min_age')));
}
}
@@ -111,8 +114,8 @@ switch ($field)
case 'user_regdate':
case 'user_lastvisit':
- $tz = TIMENOW + (3600 * $bb_cfg['board_timezone']);
- if ((($value = strtotime($value, $tz)) < $bb_cfg['board_startdate']) || ($value > TIMENOW))
+ $tz = TIMENOW + (3600 * $di->config->get('board_timezone'));
+ if ((($value = strtotime($value, $tz)) < $di->config->get('board_startdate')) || ($value > TIMENOW))
{
$this->ajax_die($lang['INVALID_DATE'] . $this->request['value']);
}
diff --git a/library/ajax/index_data.php b/library/ajax/index_data.php
index 8ac61ea90..c6aa002e2 100644
--- a/library/ajax/index_data.php
+++ b/library/ajax/index_data.php
@@ -2,7 +2,10 @@
if (!defined('IN_AJAX')) die(basename(__FILE__));
-global $bb_cfg, $lang, $userdata, $datastore;
+global $lang, $userdata, $datastore;
+
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
$mode = (string) $this->request['mode'];
$html = '';
@@ -21,9 +24,9 @@ switch($mode)
{
$html[] = profile_url($week) .' ('. birthday_age($week['user_birthday']) .')';
}
- $html = sprintf($lang['BIRTHDAY_WEEK'], $bb_cfg['birthday_check_day'], join(', ', $html));
+ $html = sprintf($lang['BIRTHDAY_WEEK'], $di->config->get('birthday_check_day'), join(', ', $html));
}
- else $html = sprintf($lang['NOBIRTHDAY_WEEK'], $bb_cfg['birthday_check_day']);
+ else $html = sprintf($lang['NOBIRTHDAY_WEEK'], $di->config->get('birthday_check_day'));
break;
case 'birthday_today':
@@ -79,13 +82,8 @@ switch($mode)
$tz = (int) $this->request['tz'];
if ($tz < -12) $tz = -12;
if ($tz > 13) $tz = 13;
- if ($tz != $bb_cfg['board_timezone'])
- {
- // Set current user timezone
- DB()->query("UPDATE ". BB_USERS ." SET user_timezone = $tz WHERE user_id = ". $userdata['user_id'] ." LIMIT 1");
- $bb_cfg['board_timezone'] = $tz;
- cache_rm_user_sessions ($userdata['user_id']);
- }
+ DB()->query("UPDATE " . BB_USERS . " SET user_timezone = $tz WHERE user_id = " . $userdata['user_id'] . " LIMIT 1");
+ cache_rm_user_sessions($userdata['user_id']);
break;
case 'get_traf_stats':
@@ -104,7 +102,7 @@ switch($mode)
'. $lang['UPLOADED'] .' |
'. $lang['RELEASED'] .' |
'. $lang['BONUS'] .' | ';
- $html .= ($bb_cfg['seed_bonus_enabled']) ? ''. $lang['SEED_BONUS'] .' | ' : '';
+ $html .= ($di->config->get('seed_bonus_enabled')) ? ''. $lang['SEED_BONUS'] .' | ' : '';
$html .= '
'. $lang['TOTAL_TRAF'] .' |
@@ -112,17 +110,17 @@ switch($mode)
' .humn_size($btu['u_up_total']) .' |
'. humn_size($btu['u_up_release']) .' |
'. humn_size($btu['u_up_bonus']) .' | ';
- $html .= ($bb_cfg['seed_bonus_enabled']) ? ''. $profiledata['user_points'] .' | ' : '';
+ $html .= ($di->config->get('seed_bonus_enabled')) ? ''. $profiledata['user_points'] .' | ' : '';
$html .= '
'. $lang['SPEED'] .' |
'. $lang['DL_DL_SPEED'] .': '. $speed_down .' |
'. $lang['DL_UL_SPEED'] .': '. $speed_up .' | ';
- $html .= ($bb_cfg['seed_bonus_enabled']) ? ' | ' : '';
+ $html .= ($di->config->get('seed_bonus_enabled')) ? ' | ' : '';
$html .= '
';
$this->response['user_ratio'] = '
- '. $lang['USER_RATIO'] .': |
+ '. $lang['USER_RATIO'] .': |
'. $user_ratio .' |
';
break;
diff --git a/library/ajax/manage_admin.php b/library/ajax/manage_admin.php
index 6d22c3c95..63069f346 100644
--- a/library/ajax/manage_admin.php
+++ b/library/ajax/manage_admin.php
@@ -2,7 +2,7 @@
if (!defined('IN_AJAX')) die(basename(__FILE__));
-global $userdata, $lang, $bb_cfg;
+global $userdata, $lang;
/** @var \TorrentPier\Di $di */
$di = \TorrentPier\Di::getInstance();
@@ -55,22 +55,22 @@ switch ($mode)
case 'indexer':
- exec("indexer --config {$bb_cfg['sphinx_config_path']} --all --rotate", $result);
+ exec("indexer --config {$di->config->get('sphinx_config_path')} --all --rotate", $result);
- if (!is_file($bb_cfg['sphinx_config_path'].".log"))
+ if (!is_file($di->config->get('sphinx_config_path').".log"))
{
- file_put_contents($bb_cfg['sphinx_config_path'].".log", "####Logger from dimka3210.####".date("H:i:s", TIMENOW)."##############################\r\n\r\n\r\n\r\n", FILE_APPEND);
+ file_put_contents($di->config->get('sphinx_config_path').".log", "####Logger from dimka3210.####".date("H:i:s", TIMENOW)."##############################\r\n\r\n\r\n\r\n", FILE_APPEND);
}
- file_put_contents($bb_cfg['sphinx_config_path'].".log", "##############################".date("H:i:s", TIMENOW)."##############################\r\n", FILE_APPEND);
+ file_put_contents($di->config->get('sphinx_config_path').".log", "##############################".date("H:i:s", TIMENOW)."##############################\r\n", FILE_APPEND);
foreach ($result as $row)
{
- file_put_contents($bb_cfg['sphinx_config_path'].".log", $row."\r\n", FILE_APPEND);
+ file_put_contents($di->config->get('sphinx_config_path').".log", $row."\r\n", FILE_APPEND);
}
- file_put_contents($bb_cfg['sphinx_config_path'].".log", "\r\n", FILE_APPEND);
- file_put_contents($bb_cfg['sphinx_config_path'].".log", "\r\n", FILE_APPEND);
+ file_put_contents($di->config->get('sphinx_config_path').".log", "\r\n", FILE_APPEND);
+ file_put_contents($di->config->get('sphinx_config_path').".log", "\r\n", FILE_APPEND);
$this->response['indexer_html'] = ''. $lang['INDEXER'] .'';
diff --git a/library/ajax/manage_user.php b/library/ajax/manage_user.php
index b1783e083..df31ade5a 100644
--- a/library/ajax/manage_user.php
+++ b/library/ajax/manage_user.php
@@ -2,7 +2,10 @@
if (!defined('IN_AJAX')) die(basename(__FILE__));
-global $userdata, $lang, $bb_cfg;
+global $userdata, $lang;
+
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
$mode = (string) $this->request['mode'];
$user_id = $this->request['user_id'];
diff --git a/library/ajax/mod_action.php b/library/ajax/mod_action.php
index 68a158432..b9d7c9d7b 100644
--- a/library/ajax/mod_action.php
+++ b/library/ajax/mod_action.php
@@ -2,7 +2,10 @@
if (!defined('IN_AJAX')) die(basename(__FILE__));
-global $userdata, $bb_cfg, $lang, $datastore;
+global $userdata, $lang, $datastore;
+
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
$mode = (string) $this->request['mode'];
@@ -25,7 +28,7 @@ switch ($mode)
change_tor_status($topic_id, $status);
}
- $this->response['status'] = $bb_cfg['tor_icons'][$status];
+ $this->response['status'] = $di->config->get('tor_icons.' . $status);
$this->response['topics'] = $topic_ids;
break;
@@ -48,15 +51,15 @@ switch ($mode)
DB()->query("UPDATE ". BB_TOPICS ." SET topic_title = '$topic_title_sql' WHERE topic_id = $topic_id LIMIT 1");
// Обновление кеша новостей на главной
- $news_forums = array_flip(explode(',', $bb_cfg['latest_news_forum_id']));
- if (isset($news_forums[$t_data['forum_id']]) && $bb_cfg['show_latest_news'])
+ $news_forums = array_flip(explode(',', $di->config->get('latest_news_forum_id')));
+ if (isset($news_forums[$t_data['forum_id']]) && $di->config->get('show_latest_news'))
{
$datastore->enqueue('latest_news');
$datastore->update('latest_news');
}
- $net_forums = array_flip(explode(',', $bb_cfg['network_news_forum_id']));
- if (isset($net_forums[$t_data['forum_id']]) && $bb_cfg['show_network_news'])
+ $net_forums = array_flip(explode(',', $di->config->get('network_news_forum_id')));
+ if (isset($net_forums[$t_data['forum_id']]) && $di->config->get('show_network_news'))
{
$datastore->enqueue('network_news');
$datastore->update('network_news');
@@ -109,8 +112,8 @@ switch ($mode)
{
$user_reg_ip = decode_ip($profiledata['user_reg_ip']);
$user_last_ip = decode_ip($profiledata['user_last_ip']);
- $reg_ip = ''. $user_reg_ip .'';
- $last_ip = ''. $user_last_ip .'';
+ $reg_ip = ''. $user_reg_ip .'';
+ $last_ip = ''. $user_last_ip .'';
}
$this->response['ip_list_html'] = '
diff --git a/library/ajax/posts.php b/library/ajax/posts.php
index e518f305b..143844e50 100644
--- a/library/ajax/posts.php
+++ b/library/ajax/posts.php
@@ -2,7 +2,10 @@
if (!defined('IN_AJAX')) die(basename(__FILE__));
-global $lang, $bb_cfg, $userdata;
+global $lang, $userdata;
+
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
if (!isset($this->request['type']))
{
@@ -138,12 +141,12 @@ switch($this->request['type'])
{
if ($text != $post['post_text'])
{
- if ($bb_cfg['max_smilies'])
+ if ($di->config->get('max_smilies'))
{
- $count_smilies = substr_count(bbcode2html($text), '
request['type'])
{
if ($userdata['user_level'] == USER)
{
- if (TIMENOW - $row['last_post_time'] < $bb_cfg['flood_interval'])
+ if (TIMENOW - $row['last_post_time'] < $di->config->get('flood_interval'))
{
$this->ajax_die($lang['FLOOD_ERROR']);
}
@@ -287,12 +290,12 @@ switch($this->request['type'])
}
}
- if ($bb_cfg['max_smilies'])
+ if ($di->config->get('max_smilies'))
{
- $count_smilies = substr_count(bbcode2html($message), '
'.make_url('sitemap.xml').'';
+ $html .= $lang['SITEMAP_CREATED'].': '.bb_date(TIMENOW, $di->config->get('post_date_format')).' '.$lang['SITEMAP_AVAILABLE'].': '.make_url('sitemap.xml').'';
} else {
$html .= $lang['SITEMAP_NOT_CREATED'];
}
diff --git a/library/ajax/user_register.php b/library/ajax/user_register.php
index 818b95c28..66ec1cde7 100644
--- a/library/ajax/user_register.php
+++ b/library/ajax/user_register.php
@@ -2,7 +2,10 @@
if (!defined('IN_AJAX')) die(basename(__FILE__));
-global $bb_cfg, $lang, $userdata;
+global $lang, $userdata;
+
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
$mode = (string) $this->request['mode'];
diff --git a/library/ajax/view_torrent.php b/library/ajax/view_torrent.php
index f2cd345e9..8373f29d7 100644
--- a/library/ajax/view_torrent.php
+++ b/library/ajax/view_torrent.php
@@ -155,11 +155,14 @@ class torrent
function build_file_item ($name, $length)
{
- global $bb_cfg, $images, $lang;
+ global $images, $lang;
+
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
$magnet_name = $magnet_ext = '';
- if ($bb_cfg['magnet_links_enabled'])
+ if ($di->config->get('magnet_links_enabled'))
{
$magnet_name = '
';
$magnet_ext = '
';
diff --git a/library/config.php b/library/config.php
index c2901a69f..3ce4f4827 100644
--- a/library/config.php
+++ b/library/config.php
@@ -110,7 +110,6 @@ $config = [
// Cache
'cache' => [
- 'pconnect' => true,
'db_dir' => realpath(BB_ROOT) .'/internal_data/cache/filecache/',
'prefix' => 'tp_', // Префикс кеша ('tp_')
'memcache' => [
@@ -123,16 +122,6 @@ $config = [
'host' => '127.0.0.1',
'port' => 6379,
'con_required' => true,
- ],
- 'engines' => [
- // Available cache types: memcache, sqlite, redis, apc, xcache (default of filecache)
- # name => array( (string) type, (array) cfg )
- 'bb_cache' => ['filecache', []],
- 'bb_config' => ['filecache', []],
- 'tr_cache' => ['filecache', []],
- 'session_cache' => ['filecache', []],
- 'bb_login_err' => ['filecache', []],
- 'bb_poll_data' => ['filecache', []],
]
],
@@ -205,7 +194,6 @@ $config = [
// Language
'charset' => 'utf8', // page charset
- 'auto_language' => true, // select user-preferred language automatically
'lang' => [
'ru' => [
'name' => 'Русский',
@@ -361,9 +349,9 @@ $config = [
// PM
'privmsg_disable' => false, // отключить систему личных сообщений на форуме
'max_outgoing_pm_cnt' => 10, // ограничение на кол. одновременных исходящих лс (для замедления рассылки спама)
- 'max_inbox_privmsgs' => 200, // максимальное число сообщений в папке входящие
- 'max_savebox_privmsgs' => 25, // максимальное число сообщений в папке сохраненные
- 'max_sentbox_privmsgs' => 50, // максимальное число сообщений в папке отправленные
+ 'max_inbox_privmsgs' => 500, // максимальное число сообщений в папке входящие (удалить)
+ 'max_savebox_privmsgs' => 500, // максимальное число сообщений в папке сохраненные (удалить)
+ 'max_sentbox_privmsgs' => 500, // максимальное число сообщений в папке отправленные (удалить)
'pm_days_keep' => 180, // время хранения ЛС
// Actions log
@@ -523,33 +511,72 @@ $config = [
'0.4' => 1,
'0.5' => 2,
'0.6' => 3,
- ]
+ ],
+
+ // Иконки статусов раздач
+ '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_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_frozen_author_download' => [
+ TOR_CHECKING => true,
+ TOR_NO_DESC => true,
+ TOR_PREMOD => true,
+ ],
+
+ // Запрет на редактирование головного сообщения
+ 'tor_cannot_edit' => [
+ TOR_CHECKING => true,
+ TOR_CLOSED => true,
+ TOR_CONSUMED => true,
+ TOR_DUP => true,
+ ],
+
+ // Запрет на создание новых раздач если стоит статус недооформлено/неоформлено/сомнительно
+ 'tor_cannot_new' => [TOR_NEED_EDIT, TOR_NO_DESC, TOR_DOUBTFUL],
+
+ // Разрешение на ответ релизера, если раздача исправлена.
+ 'tor_reply' => [TOR_NEED_EDIT, TOR_NO_DESC, TOR_DOUBTFUL],
+
+ // Если такой статус у релиза, то статистика раздачи будет скрыта
+ '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
+ 'vote_graphic_length' => 205,
+ 'privmsg_graphic_length' => 175,
+ 'topic_left_column_witdh' => 150,
+
+ // Images auto-resize
+ 'post_img_width_decr' => 52,
+ 'attach_img_width_decr' => 130,
];
-if (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && $config['auto_language'])
-{
- $user_lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
- if (file_exists(LANG_ROOT_DIR . $user_lang .'/'))
- {
- $config['default_lang_dir'] = LANG_ROOT_DIR . $user_lang .'/';
- $config['default_lang'] = $user_lang;
- }
- else
- {
- $config['default_lang_dir'] = LANG_ROOT_DIR .'en/';
- $config['default_lang'] = 'en';
- }
-}
-else
-{
- if (isset($config['default_lang']) && file_exists(LANG_ROOT_DIR . $config['default_lang'] .'/'))
- {
- $config['default_lang_dir'] = LANG_ROOT_DIR . $config['default_lang'] .'/';
- }
- else
- {
- $config['default_lang_dir'] = LANG_ROOT_DIR .'en/';
- }
-}
-
return $config;
diff --git a/library/defines.php b/library/defines.php
index 0cf6be440..660029f16 100644
--- a/library/defines.php
+++ b/library/defines.php
@@ -61,4 +61,20 @@ define('CRON_RUNNING', TRIGGERS_DIR .'cron_running');
// Misc
define('MEM_USAGE', function_exists('memory_get_usage'));
-define('GZIP_OUTPUT_ALLOWED', (extension_loaded('zlib') && !ini_get('zlib.output_compression')));
\ No newline at end of file
+// Gzip
+define('GZIP_OUTPUT_ALLOWED', (extension_loaded('zlib') && !ini_get('zlib.output_compression')));
+
+// TODO: temporary, move to another place
+// Torrents (reserved: -1)
+define('TOR_NOT_APPROVED', 0); // не проверено
+define('TOR_CLOSED', 1); // закрыто
+define('TOR_APPROVED', 2); // проверено
+define('TOR_NEED_EDIT', 3); // недооформлено
+define('TOR_NO_DESC', 4); // неоформлено
+define('TOR_DUP', 5); // повтор
+define('TOR_CLOSED_CPHOLD', 6); // закрыто правообладателем
+define('TOR_CONSUMED', 7); // поглощено
+define('TOR_DOUBTFUL', 8); // сомнительно
+define('TOR_CHECKING', 9); // проверяется
+define('TOR_TMP', 10); // временная
+define('TOR_PREMOD', 11); // премодерация
\ No newline at end of file
diff --git a/library/includes/bbcode.php b/library/includes/bbcode.php
index 9c260d7d9..ede32bb49 100644
--- a/library/includes/bbcode.php
+++ b/library/includes/bbcode.php
@@ -96,7 +96,10 @@ function prepare_message ($message)
// Either in a window or inline
function generate_smilies($mode)
{
- global $bb_cfg, $template, $lang, $datastore;
+ global $template, $lang, $datastore;
+
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
$inline_columns = 4;
$inline_rows = 7;
@@ -136,7 +139,7 @@ function generate_smilies($mode)
$template->assign_block_vars('smilies_row.smilies_col', array(
'SMILEY_CODE' => $data['code'],
- 'SMILEY_IMG' => $bb_cfg['smilies_path'] . '/' . $smile_url,
+ 'SMILEY_IMG' => $di->config->get('smilies_path') . '/' . $smile_url,
'SMILEY_DESC' => $data['emoticon'],
));
@@ -347,11 +350,12 @@ function strip_bbcode ($message, $stripquotes = true, $fast_and_dirty = false, $
function extract_search_words ($text)
{
- global $bb_cfg;
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
- $max_words_count = $bb_cfg['max_search_words_per_post'];
- $min_word_len = max(2, $bb_cfg['search_min_word_len'] - 1);
- $max_word_len = $bb_cfg['search_max_word_len'];
+ $max_words_count = $di->config->get('max_search_words_per_post');
+ $min_word_len = max(2, $di->config->get('search_min_word_len') - 1);
+ $max_word_len = $di->config->get('search_max_word_len');
$text = ' ' . str_compact(strip_tags(mb_strtolower($text))) . ' ';
$text = str_replace(array('[', ']'), array('[', ']'), $text);
@@ -415,12 +419,13 @@ function replace_synonyms ($text)
function add_search_words ($post_id, $post_message, $topic_title = '', $only_return_words = false)
{
- global $bb_cfg;
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
$text = $topic_title .' '. $post_message;
$words = ($text) ? extract_search_words($text) : array();
- if ($only_return_words || $bb_cfg['sphinx_enabled'])
+ if ($only_return_words || $di->config->get('sphinx_enabled'))
{
return join("\n", $words);
}
@@ -557,7 +562,8 @@ class bbcode
*/
function bbcode2html ($text)
{
- global $bb_cfg;
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
$text = " $text ";
$text = $this->clean_up($text);
@@ -594,7 +600,7 @@ class bbcode
$text = $this->new_line2html($text);
$text = trim($text);
- if ($bb_cfg['tidy_post'])
+ if ($di->config->get('tidy_post'))
{
$text = $this->tidy($text);
}
@@ -627,7 +633,9 @@ class bbcode
*/
private function spam_filter ($text)
{
- global $bb_cfg;
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
+
static $spam_words = null;
static $spam_replace = ' СПАМ';
@@ -637,13 +645,13 @@ class bbcode
}
// set $spam_words and $spam_replace
- if (!$bb_cfg['spam_filter_file_path'])
+ if (!$di->config->get('spam_filter_file_path'))
{
return $text;
}
if (is_null($spam_words))
{
- $spam_words = file_get_contents($bb_cfg['spam_filter_file_path']);
+ $spam_words = file_get_contents($di->config->get('spam_filter_file_path'));
$spam_words = strtolower($spam_words);
$spam_words = explode("\n", $spam_words);
}
@@ -713,14 +721,15 @@ class bbcode
*/
function url_callback ($m)
{
- global $bb_cfg;
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
$url = trim($m[1]);
$url_name = (isset($m[2])) ? trim($m[2]) : $url;
if (!preg_match("#^https?://#isu", $url) && !preg_match("/^#/", $url)) $url = 'http://' . $url;
- if (in_array(parse_url($url, PHP_URL_HOST), $bb_cfg['nofollow']['allowed_url']) || $bb_cfg['nofollow']['disabled'])
+ if (in_array(parse_url($url, PHP_URL_HOST), $di->config->get('nofollow.allowed_url')) || $di->config->get('nofollow.disabled'))
{
$link = "$url_name";
}
@@ -791,13 +800,14 @@ class bbcode
*/
function make_url_clickable_callback ($m)
{
- global $bb_cfg;
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
$max_len = 70;
$href = $m[1];
$name = (mb_strlen($href, 'UTF-8') > $max_len) ? mb_substr($href, 0, $max_len - 19) .'...'. mb_substr($href, -16) : $href;
- if (in_array(parse_url($href, PHP_URL_HOST), $bb_cfg['nofollow']['allowed_url']) || $bb_cfg['nofollow']['disabled'])
+ if (in_array(parse_url($href, PHP_URL_HOST), $di->config->get('nofollow.allowed_url')) || $di->config->get('nofollow.disabled'))
{
$link = "$name";
}
@@ -972,15 +982,18 @@ function get_words_rate ($text)
function hide_passkey ($str)
{
- global $bb_cfg;
- return preg_replace("#\?{$bb_cfg['passkey_key']}=[a-zA-Z0-9]{". BT_AUTH_KEY_LENGTH ."}#", "?{$bb_cfg['passkey_key']}=passkey", $str);
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
+
+ return preg_replace("#\?{$di->config->get('passkey_key')}=[a-zA-Z0-9]{". BT_AUTH_KEY_LENGTH ."}#", "?{$di->config->get('passkey_key')}=passkey", $str);
}
function get_parsed_post ($postrow, $mode = 'full', $return_chars = 600)
{
- global $bb_cfg;
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
- if ($bb_cfg['use_posts_cache'] && !empty($postrow['post_html']))
+ if ($di->config->get('use_posts_cache') && !empty($postrow['post_html']))
{
return $postrow['post_html'];
}
@@ -988,7 +1001,7 @@ function get_parsed_post ($postrow, $mode = 'full', $return_chars = 600)
$message = bbcode2html($postrow['post_text']);
// Posts cache
- if ($bb_cfg['use_posts_cache'])
+ if ($di->config->get('use_posts_cache'))
{
DB()->shutdown['post_html'][] = array(
'post_id' => (int) $postrow['post_id'],
diff --git a/library/includes/classes/emailer.php b/library/includes/classes/emailer.php
index a2f6dab67..86d750938 100644
--- a/library/includes/classes/emailer.php
+++ b/library/includes/classes/emailer.php
@@ -15,26 +15,24 @@ class emailer
function emailer ($use_smtp/*$tpl_name, $sbj, $to_address*/)
{
- global $bb_cfg;
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
$this->reset();
- $this->from = $bb_cfg['board_email'];
- $this->reply_to = $bb_cfg['board_email'];
- $this->use_smtp = $use_smtp; /*!empty($bb_cfg['smtp_host']);
-
- $this->use_template($tpl_name);
- $this->set_subject($sbj);
- $this->email_address($to_address);*/
+ $this->from = $di->config->get('board_email');
+ $this->reply_to = $di->config->get('board_email');
+ $this->use_smtp = $use_smtp;
}
function set_default_vars ()
{
- global $bb_cfg;
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
$this->vars = array(
- 'BOARD_EMAIL' => $bb_cfg['board_email'],
- 'SITENAME' => $bb_cfg['board_email_sitename'],
- 'EMAIL_SIG' => !empty($bb_cfg['board_email_sig']) ? "-- \n{$bb_cfg['board_email_sig']}" : '',
+ 'BOARD_EMAIL' => $di->config->get('board_email'),
+ 'SITENAME' => $di->config->get('board_email_sitename'),
+ 'EMAIL_SIG' => !empty($di->config->get('board_email_sig')) ? "-- \n{$di->config->get('board_email_sig')}" : '',
);
}
@@ -86,7 +84,8 @@ class emailer
function use_template ($template_file, $template_lang = '')
{
- global $bb_cfg;
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
if (trim($template_file) == '')
{
@@ -95,7 +94,7 @@ class emailer
if (trim($template_lang) == '')
{
- $template_lang = $bb_cfg['default_lang'];
+ $template_lang = $di->config->get('default_lang');
}
if (empty($this->tpl_msg[$template_lang . $template_file]))
@@ -104,7 +103,7 @@ class emailer
if (!file_exists(bb_realpath($tpl_file)))
{
- $tpl_file = LANG_ROOT_DIR ."{$bb_cfg['default_lang']}/email/$template_file.html";
+ $tpl_file = LANG_ROOT_DIR ."{$di->config->get('default_lang')}/email/$template_file.html";
if (!file_exists(bb_realpath($tpl_file)))
{
@@ -135,9 +134,12 @@ class emailer
// Send the mail out to the recipients set previously in var $this->address
function send ($email_format = 'text')
{
- global $bb_cfg, $userdata;
+ global $userdata;
- if ($bb_cfg['emailer_disabled'])
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
+
+ if ($di->config->get('emailer_disabled'))
{
return false;
}
@@ -178,12 +180,12 @@ class emailer
if (preg_match('#^(Charset:(.*?))$#m', $this->msg, $match))
{
- $this->encoding = (trim($match[2]) != '') ? trim($match[2]) : trim($bb_cfg['lang'][$userdata['user_lang']]['encoding']);
+ $this->encoding = (trim($match[2]) != '') ? trim($match[2]) : trim($di->config->get('lang.' . $userdata['user_lang'] . '.encoding'));
$drop_header .= '[\r\n]*?' . preg_quote($match[1], '#');
}
else
{
- $this->encoding = trim($bb_cfg['lang'][$userdata['user_lang']]['encoding']);
+ $this->encoding = trim($di->config->get('lang.' . $userdata['user_lang'] . '.encoding'));
}
$this->subject = $this->encode($this->subject);
@@ -199,7 +201,7 @@ class emailer
// Build header
$type = ($email_format == 'html') ? 'html' : 'plain';
- $this->extra_headers = (($this->reply_to != '') ? "Reply-to: $this->reply_to\n" : '') . (($this->from != '') ? "From: $this->from\n" : "From: " . $bb_cfg['board_email'] . "\n") . "Return-Path: " . $bb_cfg['board_email'] . "\nMessage-ID: <" . md5(uniqid(TIMENOW)) . "@" . $bb_cfg['server_name'] . ">\nMIME-Version: 1.0\nContent-type: text/$type; charset=" . $this->encoding . "\nContent-transfer-encoding: 8bit\nDate: " . date('r', TIMENOW) . "\nX-Priority: 0\nX-MSMail-Priority: Normal\nX-Mailer: Microsoft Office Outlook, Build 11.0.5510\nX-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441\nX-Sender: " . $bb_cfg['board_email'] . "\n" . $this->extra_headers . (($cc != '') ? "Cc: $cc\n" : '') . (($bcc != '') ? "Bcc: $bcc\n" : '');
+ $this->extra_headers = (($this->reply_to != '') ? "Reply-to: $this->reply_to\n" : '') . (($this->from != '') ? "From: $this->from\n" : "From: " . $di->config->get('board_email') . "\n") . "Return-Path: " . $di->config->get('board_email') . "\nMessage-ID: <" . md5(uniqid(TIMENOW)) . "@" . $di->config->get('server_name') . ">\nMIME-Version: 1.0\nContent-type: text/$type; charset=" . $this->encoding . "\nContent-transfer-encoding: 8bit\nDate: " . date('r', TIMENOW) . "\nX-Priority: 0\nX-MSMail-Priority: Normal\nX-Mailer: Microsoft Office Outlook, Build 11.0.5510\nX-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441\nX-Sender: " . $di->config->get('board_email') . "\n" . $this->extra_headers . (($cc != '') ? "Cc: $cc\n" : '') . (($bcc != '') ? "Bcc: $bcc\n" : '');
// Send message
if ($this->use_smtp)
diff --git a/library/includes/classes/sitemap.php b/library/includes/classes/sitemap.php
index dbe56862a..e59f522e3 100644
--- a/library/includes/classes/sitemap.php
+++ b/library/includes/classes/sitemap.php
@@ -120,14 +120,15 @@ class sitemap
}
function get_static () {
- global $bb_cfg;
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
$xml = '';
$lm = date('c');
$this->priority = $this->stat_priority;
- if (isset($bb_cfg['static_sitemap'])) {
- $static_url = preg_replace("/\s/", '', $bb_cfg['static_sitemap']); //вырезаем переносы строк
+ if ($di->config->get('static_sitemap')) {
+ $static_url = preg_replace("/\s/", '', $di->config->get('static_sitemap')); //вырезаем переносы строк
preg_match_all('#(https?://[\w-]+[\.\w-]+/((?!https?://)[\w- ./?%&=])+)#', $static_url, $out);
$static_url = count($out['0']);
diff --git a/library/includes/cron/jobs/board_maintenance.php b/library/includes/cron/jobs/board_maintenance.php
index fb14a1b16..dc7bae484 100644
--- a/library/includes/cron/jobs/board_maintenance.php
+++ b/library/includes/cron/jobs/board_maintenance.php
@@ -2,6 +2,9 @@
if (!defined('BB_ROOT')) die(basename(__FILE__));
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
+
require_once(INC_DIR .'functions_admin.php');
// Синхронизация
@@ -10,7 +13,7 @@ sync('user_posts', 'all');
sync_all_forums();
// Чистка bb_poll_users
-if ($poll_max_days = (int) $bb_cfg['poll_max_days'])
+if ($poll_max_days = (int) $di->config->get('poll_max_days'))
{
$per_cycle = 20000;
$row = DB()->fetch_row("SELECT MIN(topic_id) AS start_id, MAX(topic_id) AS finish_id FROM ". BB_POLL_USERS);
@@ -43,7 +46,7 @@ if ($poll_max_days = (int) $bb_cfg['poll_max_days'])
DB()->query("UPDATE ". BB_USERS ." SET user_newpasswd = '' WHERE user_lastvisit < ". (TIMENOW - 7*86400));
// Чистка кеша постов
-if ($posts_days = intval($bb_cfg['posts_cache_days_keep']))
+if ($posts_days = intval($di->config->get('posts_cache_days_keep')))
{
DB()->query("DELETE FROM ". BB_POSTS_HTML ." WHERE post_html_time < DATE_SUB(NOW(), INTERVAL $posts_days DAY)");
}
\ No newline at end of file
diff --git a/library/includes/cron/jobs/clean_dlstat.php b/library/includes/cron/jobs/clean_dlstat.php
index 5c19c66dc..6e0698cc2 100644
--- a/library/includes/cron/jobs/clean_dlstat.php
+++ b/library/includes/cron/jobs/clean_dlstat.php
@@ -2,12 +2,15 @@
if (!defined('BB_ROOT')) die(basename(__FILE__));
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
+
// Delete staled dl-status records
$keeping_dlstat = array(
- DL_STATUS_WILL => (int) $bb_cfg['dl_will_days_keep'],
- DL_STATUS_DOWN => (int) $bb_cfg['dl_down_days_keep'],
- DL_STATUS_COMPLETE => (int) $bb_cfg['dl_complete_days_keep'],
- DL_STATUS_CANCEL => (int) $bb_cfg['dl_cancel_days_keep'],
+ DL_STATUS_WILL => (int) $di->config->get('dl_will_days_keep'),
+ DL_STATUS_DOWN => (int) $di->config->get('dl_down_days_keep'),
+ DL_STATUS_COMPLETE => (int) $di->config->get('dl_complete_days_keep'),
+ DL_STATUS_CANCEL => (int) $di->config->get('dl_cancel_days_keep'),
);
$delete_dlstat_sql = array();
@@ -45,7 +48,7 @@ DB()->query("
");
// Tor-Stats cleanup
-if ($torstat_days_keep = intval($bb_cfg['torstat_days_keep']))
+if ($torstat_days_keep = intval($di->config->get('torstat_days_keep')))
{
DB()->query("DELETE QUICK FROM ". BB_BT_TORSTAT ." WHERE last_modified_torstat < DATE_SUB(NOW(), INTERVAL $torstat_days_keep DAY)");
}
diff --git a/library/includes/cron/jobs/clean_log.php b/library/includes/cron/jobs/clean_log.php
index 9fb3455e0..96ef50020 100644
--- a/library/includes/cron/jobs/clean_log.php
+++ b/library/includes/cron/jobs/clean_log.php
@@ -2,7 +2,10 @@
if (!defined('BB_ROOT')) die(basename(__FILE__));
-$log_days_keep = (int) $bb_cfg['log_days_keep'];
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
+
+$log_days_keep = (int) $di->config->get('log_days_keep');
DB()->query("
DELETE FROM ". BB_LOG ."
diff --git a/library/includes/cron/jobs/prune_forums.php b/library/includes/cron/jobs/prune_forums.php
index 303b7ff4a..3b5e48e82 100644
--- a/library/includes/cron/jobs/prune_forums.php
+++ b/library/includes/cron/jobs/prune_forums.php
@@ -2,9 +2,12 @@
if (!defined('BB_ROOT')) die(basename(__FILE__));
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
+
require_once(INC_DIR .'functions_admin.php');
-if ($bb_cfg['prune_enable'])
+if ($di->config->get('prune_enable'))
{
$sql = "SELECT forum_id, prune_days FROM ". BB_FORUMS ." WHERE prune_days != 0";
diff --git a/library/includes/cron/jobs/prune_inactive_users.php b/library/includes/cron/jobs/prune_inactive_users.php
index 6634856a1..c763d8c15 100644
--- a/library/includes/cron/jobs/prune_inactive_users.php
+++ b/library/includes/cron/jobs/prune_inactive_users.php
@@ -2,6 +2,9 @@
if (!defined('BB_ROOT')) die(basename(__FILE__));
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
+
require_once(INC_DIR .'functions_admin.php');
$users_per_cycle = 1000;
@@ -12,7 +15,7 @@ while (true)
$prune_users = $not_activated_users = $not_active_users = array();
- if ($not_activated_days = intval($bb_cfg['user_not_activated_days_keep']))
+ if ($not_activated_days = intval($di->config->get('user_not_activated_days_keep')))
{
$sql = DB()->fetch_rowset("SELECT user_id FROM ". BB_USERS ."
WHERE user_level = 0
@@ -28,7 +31,7 @@ while (true)
}
}
- if ($not_active_days = intval($bb_cfg['user_not_active_days_keep']))
+ if ($not_active_days = intval($di->config->get('user_not_active_days_keep')))
{
$sql = DB()->fetch_rowset("SELECT user_id FROM ". BB_USERS ."
WHERE user_level = 0
diff --git a/library/includes/cron/jobs/prune_topic_moved.php b/library/includes/cron/jobs/prune_topic_moved.php
index 4624718a2..519540ac3 100644
--- a/library/includes/cron/jobs/prune_topic_moved.php
+++ b/library/includes/cron/jobs/prune_topic_moved.php
@@ -2,9 +2,12 @@
if (!defined('BB_ROOT')) die(basename(__FILE__));
-if ($bb_cfg['topic_moved_days_keep'])
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
+
+if ($di->config->get('topic_moved_days_keep'))
{
- $prune_time = TIMENOW - 86400*$bb_cfg['topic_moved_days_keep'];
+ $prune_time = TIMENOW - 86400*$di->config->get('topic_moved_days_keep');
DB()->query("
DELETE FROM ". BB_TOPICS ."
diff --git a/library/includes/cron/jobs/sessions_cleanup.php b/library/includes/cron/jobs/sessions_cleanup.php
index 81ea0c841..ff76d0a12 100644
--- a/library/includes/cron/jobs/sessions_cleanup.php
+++ b/library/includes/cron/jobs/sessions_cleanup.php
@@ -2,10 +2,13 @@
if (!defined('BB_ROOT')) die(basename(__FILE__));
-$user_session_expire_time = TIMENOW - intval($bb_cfg['user_session_duration']);
-$admin_session_expire_time = TIMENOW - intval($bb_cfg['admin_session_duration']);
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
-$user_session_gc_time = $user_session_expire_time - intval($bb_cfg['user_session_gc_ttl']);
+$user_session_expire_time = TIMENOW - intval($di->config->get('user_session_duration'));
+$admin_session_expire_time = TIMENOW - intval($di->config->get('admin_session_duration'));
+
+$user_session_gc_time = $user_session_expire_time - intval($di->config->get('user_session_gc_ttl'));
$admin_session_gc_time = $admin_session_expire_time;
// ############################ Tables LOCKED ################################
diff --git a/library/includes/cron/jobs/tr_cleanup_and_dlstat.php b/library/includes/cron/jobs/tr_cleanup_and_dlstat.php
index d27e11905..2c36ef4ad 100644
--- a/library/includes/cron/jobs/tr_cleanup_and_dlstat.php
+++ b/library/includes/cron/jobs/tr_cleanup_and_dlstat.php
@@ -2,6 +2,9 @@
if (!defined('BB_ROOT')) die(basename(__FILE__));
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
+
$releaser = DL_STATUS_RELEASER;
define('NEW_BB_BT_LAST_TORSTAT', 'new_bt_last_torstat');
@@ -58,7 +61,7 @@ DB()->query("
// Clean peers table
if ($tr_cfg['autoclean'])
{
- $announce_interval = max(intval($bb_cfg['announce_interval']), 60);
+ $announce_interval = max(intval($di->config->get('announce_interval')), 60);
$expire_factor = max(floatval($tr_cfg['expire_factor']), 1);
$peer_expire_time = TIMENOW - floor($announce_interval * $expire_factor);
@@ -94,7 +97,7 @@ if ($tr_cfg['update_dlstat'])
// Update TOTAL user's dlstat
// This is not needed if Ocelot enabled. It's important.
- if (!$bb_cfg['ocelot']['enabled'])
+ if (!$di->config->get('ocelot.enabled'))
{
DB()->query("
UPDATE
diff --git a/library/includes/cron/jobs/tr_complete_count.php b/library/includes/cron/jobs/tr_complete_count.php
index 66230187e..abd2361a5 100644
--- a/library/includes/cron/jobs/tr_complete_count.php
+++ b/library/includes/cron/jobs/tr_complete_count.php
@@ -2,9 +2,10 @@
if (!defined('BB_ROOT')) die(basename(__FILE__));
-global $bb_cfg;
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
-if ($bb_cfg['ocelot']['enabled'])
+if ($di->config->get('ocelot.enabled'))
{
// Update TORRENT "completed" counters
DB()->query("
diff --git a/library/includes/cron/jobs/tr_maintenance.php b/library/includes/cron/jobs/tr_maintenance.php
index 05644fe81..c7e864edc 100644
--- a/library/includes/cron/jobs/tr_maintenance.php
+++ b/library/includes/cron/jobs/tr_maintenance.php
@@ -2,13 +2,16 @@
if (!defined('BB_ROOT')) die(basename(__FILE__));
-if (empty($bb_cfg['seeder_last_seen_days_keep']) || empty($bb_cfg['seeder_never_seen_days_keep']))
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
+
+if (empty($di->config->get('seeder_last_seen_days_keep')) || empty($di->config->get('seeder_never_seen_days_keep')))
{
return;
}
-$last_seen_time = TIMENOW - 86400*$bb_cfg['seeder_last_seen_days_keep'];
-$never_seen_time = TIMENOW - 86400*$bb_cfg['seeder_never_seen_days_keep'];
+$last_seen_time = TIMENOW - 86400*$di->config->get('seeder_last_seen_days_keep');
+$never_seen_time = TIMENOW - 86400*$di->config->get('seeder_never_seen_days_keep');
$limit_sql = 3000;
$topics_sql = [];
diff --git a/library/includes/cron/jobs/tr_make_snapshot.php b/library/includes/cron/jobs/tr_make_snapshot.php
index 7f5041188..5302ae906 100644
--- a/library/includes/cron/jobs/tr_make_snapshot.php
+++ b/library/includes/cron/jobs/tr_make_snapshot.php
@@ -2,14 +2,15 @@
if (!defined('BB_ROOT')) die(basename(__FILE__));
-global $bb_cfg;
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
DB()->expect_slow_query(600);
//
// Make tracker snapshot
//
-if (!$bb_cfg['ocelot']['enabled'])
+if (!$di->config->get('ocelot.enabled'))
{
define('NEW_BB_BT_TRACKER_SNAP', 'new_tracker_snap');
define('OLD_BB_BT_TRACKER_SNAP', 'old_tracker_snap');
@@ -30,7 +31,7 @@ while (true)
$val = array();
- if (!$bb_cfg['ocelot']['enabled'])
+ if (!$di->config->get('ocelot.enabled'))
{
$sql = "
SELECT
@@ -59,7 +60,7 @@ while (true)
if ($val)
{
- if (!$bb_cfg['ocelot']['enabled'])
+ if (!$di->config->get('ocelot.enabled'))
{
DB()->query("
REPLACE INTO " . NEW_BB_BT_TRACKER_SNAP . "
@@ -91,7 +92,7 @@ while (true)
$start_id += $per_cycle;
}
-if (!$bb_cfg['ocelot']['enabled'])
+if (!$di->config->get('ocelot.enabled'))
{
DB()->query("
RENAME TABLE
@@ -112,7 +113,7 @@ DB()->query("DROP TABLE IF EXISTS ". NEW_BB_BT_DLSTATUS_SNAP .", ". OLD_BB_BT_DL
DB()->query("CREATE TABLE ". NEW_BB_BT_DLSTATUS_SNAP ." LIKE ". BB_BT_DLSTATUS_SNAP);
-if ($bb_cfg['bt_show_dl_list'] && $bb_cfg['bt_dl_list_only_count'])
+if ($di->config->get('bt_show_dl_list') && $di->config->get('bt_dl_list_only_count'))
{
DB()->query("
INSERT INTO ". NEW_BB_BT_DLSTATUS_SNAP ."
@@ -136,7 +137,7 @@ DB()->query("DROP TABLE IF EXISTS ". NEW_BB_BT_DLSTATUS_SNAP .", ". OLD_BB_BT_DL
//
// TORHELP
//
-if ($bb_cfg['torhelp_enabled'])
+if ($di->config->get('torhelp_enabled'))
{
$tor_min_seeders = 0; // "<="
$tor_min_leechers = 2; // ">="
@@ -182,7 +183,7 @@ if ($bb_cfg['torhelp_enabled'])
WHERE
trsn.seeders <= $tor_min_seeders
AND trsn.leechers >= $tor_min_leechers
- AND tor.forum_id != ". (int) $bb_cfg['trash_forum_id'] ."
+ AND tor.forum_id != ". (int) $di->config->get('trash_forum_id') ."
AND tor.complete_count >= $tor_min_completed
AND tor.seeder_last_seen <= (UNIX_TIMESTAMP() - $tor_seed_last_seen_days*86400)
AND dl.user_id IN($online_users_csv)
diff --git a/library/includes/cron/jobs/tr_seed_bonus.php b/library/includes/cron/jobs/tr_seed_bonus.php
index 862adca9c..ef9b61768 100644
--- a/library/includes/cron/jobs/tr_seed_bonus.php
+++ b/library/includes/cron/jobs/tr_seed_bonus.php
@@ -2,9 +2,12 @@
if (!defined('BB_ROOT')) die(basename(__FILE__));
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
+
DB()->expect_slow_query(600);
-if ($bb_cfg['seed_bonus_enabled'] && $bb_cfg['seed_bonus_points'] && $bb_cfg['seed_bonus_release'])
+if ($di->config->get('seed_bonus_enabled') && $di->config->get('seed_bonus_points') && $di->config->get('seed_bonus_release'))
{
DB()->query("
CREATE TEMPORARY TABLE tmp_bonus (
@@ -13,7 +16,7 @@ if ($bb_cfg['seed_bonus_enabled'] && $bb_cfg['seed_bonus_points'] && $bb_cfg['se
) ENGINE = MEMORY
");
- $tor_size = ($bb_cfg['seed_bonus_tor_size'] * 1073741824);
+ $tor_size = ($di->config->get('seed_bonus_tor_size') * 1073741824);
DB()->query("INSERT INTO tmp_bonus
SELECT bt.user_id, count(bt.seeder) AS release_count
@@ -24,8 +27,8 @@ if ($bb_cfg['seed_bonus_enabled'] && $bb_cfg['seed_bonus_points'] && $bb_cfg['se
GROUP BY user_id
");
- $seed_bonus = unserialize($bb_cfg['seed_bonus_points']);
- $seed_release = unserialize($bb_cfg['seed_bonus_release']);
+ $seed_bonus = unserialize($di->config->get('seed_bonus_points'));
+ $seed_release = unserialize($di->config->get('seed_bonus_release'));
foreach($seed_bonus as $i => $points)
{
@@ -33,7 +36,7 @@ if ($bb_cfg['seed_bonus_enabled'] && $bb_cfg['seed_bonus_points'] && $bb_cfg['se
$user_points = ((float) $points / 4);
$release = (int) $seed_release[$i];
- $user_regdate = (TIMENOW - $bb_cfg['seed_bonus_user_regdate'] * 86400);
+ $user_regdate = (TIMENOW - $di->config->get('seed_bonus_user_regdate') * 86400);
DB()->query("
UPDATE ". BB_USERS ." u, ". BB_BT_USERS ." bu, tmp_bonus b
diff --git a/library/includes/cron/jobs/update_forums_atom.php b/library/includes/cron/jobs/update_forums_atom.php
index a37875b90..302f0b135 100644
--- a/library/includes/cron/jobs/update_forums_atom.php
+++ b/library/includes/cron/jobs/update_forums_atom.php
@@ -2,16 +2,17 @@
if (!defined('BB_ROOT')) die(basename(__FILE__));
-global $bb_cfg;
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
require_once(INC_DIR .'functions_atom.php');
$timecheck = TIMENOW - 600;
$forums_data = DB()->fetch_rowset("SELECT forum_id, allow_reg_tracker, forum_name FROM ". BB_FORUMS);
-if (file_exists($bb_cfg['atom']['path'] .'/f/0.atom'))
+if (file_exists($di->config->get('atom.path') .'/f/0.atom'))
{
- if (filemtime($bb_cfg['atom']['path'] .'/f/0.atom') <= $timecheck) update_forum_feed(0, $forums_data);
+ if (filemtime($di->config->get('atom.path') .'/f/0.atom') <= $timecheck) update_forum_feed(0, $forums_data);
}
else
{
@@ -20,9 +21,9 @@ else
foreach ($forums_data as $forum_data)
{
- if (file_exists($bb_cfg['atom']['path'] .'/f/'. $forum_data['forum_id'] .'.atom'))
+ if (file_exists($di->config->get('atom.path') .'/f/'. $forum_data['forum_id'] .'.atom'))
{
- if (filemtime($bb_cfg['atom']['path'] .'/f/'. $forum_data['forum_id'] .'.atom') <= $timecheck) update_forum_feed($forum_data['forum_id'], $forum_data);
+ if (filemtime($di->config->get('atom.path') .'/f/'. $forum_data['forum_id'] .'.atom') <= $timecheck) update_forum_feed($forum_data['forum_id'], $forum_data);
}
else
{
diff --git a/library/includes/datastore/build_cat_forums.php b/library/includes/datastore/build_cat_forums.php
index 32d9d5dfe..8bb770595 100644
--- a/library/includes/datastore/build_cat_forums.php
+++ b/library/includes/datastore/build_cat_forums.php
@@ -2,7 +2,10 @@
if (!defined('BB_ROOT')) die(basename(__FILE__));
-global $bf, $bb_cfg;
+global $bf;
+
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
//
// cat_forums
@@ -128,9 +131,9 @@ $this->store('viewtopic_forum_select', $data);
//
// latest_news
//
-if ($bb_cfg['show_latest_news'] && ($news_forum_ids = $bb_cfg['latest_news_forum_id']))
+if ($di->config->get('show_latest_news') && ($news_forum_ids = $di->config->get('latest_news_forum_id')))
{
- $news_count = max($bb_cfg['latest_news_count'], 1);
+ $news_count = max($di->config->get('latest_news_count'), 1);
$data = DB()->fetch_rowset("
SELECT topic_id, topic_time, topic_title, forum_id
@@ -147,9 +150,9 @@ if ($bb_cfg['show_latest_news'] && ($news_forum_ids = $bb_cfg['latest_news_forum
//
// Network_news
//
-if ($bb_cfg['show_network_news'] && ($net_forum_ids = $bb_cfg['network_news_forum_id']))
+if ($di->config->get('show_network_news') && ($net_forum_ids = $di->config->get('network_news_forum_id')))
{
- $net_count = max($bb_cfg['network_news_count'], 1);
+ $net_count = max($di->config->get('network_news_count'), 1);
$data = DB()->fetch_rowset("
SELECT topic_id, topic_time, topic_title, forum_id
diff --git a/library/includes/datastore/build_smilies.php b/library/includes/datastore/build_smilies.php
index 01d9ad6a3..23d6e40b0 100644
--- a/library/includes/datastore/build_smilies.php
+++ b/library/includes/datastore/build_smilies.php
@@ -2,9 +2,10 @@
if (!defined('BB_ROOT')) die(basename(__FILE__));
-global $bb_cfg;
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
-$smilies = array();
+$smilies = [];
$rowset = DB()->fetch_rowset("SELECT * FROM ". BB_SMILIES);
sort($rowset);
@@ -12,7 +13,7 @@ sort($rowset);
foreach ($rowset as $smile)
{
$smilies['orig'][] = '#(?<=^|\W)'. preg_quote($smile['code'], '#') .'(?=$|\W)#';
- $smilies['repl'][] = '
';
+ $smilies['repl'][] = '
';
$smilies['smile'][] = $smile;
}
diff --git a/library/includes/datastore/build_stats.php b/library/includes/datastore/build_stats.php
index 4750aaa04..6efac6284 100644
--- a/library/includes/datastore/build_stats.php
+++ b/library/includes/datastore/build_stats.php
@@ -2,9 +2,10 @@
if (!defined('BB_ROOT')) die(basename(__FILE__));
-global $bb_cfg;
+/** @var \TorrentPier\Di $di */
+$di = \TorrentPier\Di::getInstance();
-$data = array();
+$data = [];
// usercount
$row = DB()->fetch_row("SELECT COUNT(*) AS usercount FROM ". BB_USERS ." WHERE user_id NOT IN(". EXCLUDED_USERS .")");
@@ -20,7 +21,7 @@ $data['postcount'] = commify($row['postcount']);
$data['topiccount'] = commify($row['topiccount']);
// Tracker stats
-if ($bb_cfg['tor_stats'])
+if ($di->config->get('tor_stats'))
{
// torrents stat
$row = DB()->fetch_row("SELECT COUNT(topic_id) AS torrentcount, SUM(size) AS size FROM ". BB_BT_TORRENTS);
@@ -36,7 +37,7 @@ if ($bb_cfg['tor_stats'])
}
// gender stat
-if ($bb_cfg['gender'])
+if ($di->config->get('gender'))
{
$male = DB()->fetch_row("SELECT COUNT(user_id) AS male FROM ". BB_USERS ." WHERE user_gender = ". MALE ." AND user_id NOT IN(". EXCLUDED_USERS .")");
$female = DB()->fetch_row("SELECT COUNT(user_id) AS female FROM ". BB_USERS ." WHERE user_gender = ". FEMALE ." AND user_id NOT IN(". EXCLUDED_USERS .")");
@@ -48,7 +49,7 @@ if ($bb_cfg['gender'])
}
// birthday stat
-if ($bb_cfg['birthday_check_day'] && $bb_cfg['birthday_enabled'])
+if ($di->config->get('birthday_check_day') && $di->config->get('birthday_enabled'))
{
$sql = DB()->fetch_rowset("SELECT user_id, username, user_rank , user_birthday
FROM ". BB_USERS ."
@@ -59,7 +60,7 @@ if ($bb_cfg['birthday_check_day'] && $bb_cfg['birthday_enabled'])
");
$date_today = bb_date(TIMENOW, 'md', false);
- $date_forward = bb_date(TIMENOW + ($bb_cfg['birthday_check_day']*86400), 'md', false);
+ $date_forward = bb_date(TIMENOW + ($di->config->get('birthday_check_day')*86400), 'md', false);
$birthday_today_list = $birthday_week_list = array();
diff --git a/library/includes/functions.php b/library/includes/functions.php
index 9e7c0c5ec..730987369 100644
--- a/library/includes/functions.php
+++ b/library/includes/functions.php
@@ -4,22 +4,31 @@ if (!defined('BB_ROOT')) die(basename(__FILE__));
function get_path_from_id ($id, $ext_id, $base_path, $first_div, $sec_div)
{
- global $bb_cfg;
- $ext = isset($bb_cfg['file_id_ext'][$ext_id]) ? $bb_cfg['file_id_ext'][$ext_id] : '';
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
+
+ $ext = $di->config->get('file_id_ext.' . $ext_id) ? $di->config->get('file_id_ext.' . $ext_id) : '';
+
return ($base_path ? "$base_path/" : '') . floor($id/$first_div) .'/'. ($id % $sec_div) .'/'. $id . ($ext ? ".$ext" : '');
}
function get_avatar_path ($id, $ext_id, $base_path = null, $first_div = 10000, $sec_div = 100)
{
- global $bb_cfg;
- $base_path = isset($base_path) ? $base_path : $bb_cfg['avatars']['upload_path'];
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
+
+ $base_path = isset($base_path) ? $base_path : $di->config->get('avatars.upload_path');
+
return get_path_from_id($id, $ext_id, $base_path, $first_div, $sec_div);
}
function get_attach_path ($id, $ext_id = '', $base_path = null, $first_div = 10000, $sec_div = 100)
{
- global $bb_cfg;
- $base_path = isset($base_path) ? $base_path : $bb_cfg['attach']['upload_path'];
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
+
+ $base_path = isset($base_path) ? $base_path : $di->config->get('attach.upload_path');
+
return get_path_from_id($id, $ext_id, $base_path, $first_div, $sec_div);
}
@@ -706,16 +715,6 @@ class html_common
return '';
}
-
-# function build_option ($opt_name, $opt_val, $selected = null, $max_length = false)
-# {
-# return "\t\t\n";
-# }
-
-# function build_optgroup ($label, $contents, $max_length = false)
-# {
-# return "\t\n";
-# }
}
function build_select ($name, $params, $selected = null, $max_length = HTML_SELECT_MAX_LENGTH, $multiple_size = null, $js = '')
@@ -897,7 +896,8 @@ function humn_size ($size, $rounder = null, $min = null, $space = ' ')
function bt_show_ip ($ip, $port = '')
{
- global $bb_cfg;
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
if (IS_AM)
{
@@ -907,13 +907,14 @@ function bt_show_ip ($ip, $port = '')
}
else
{
- return ($bb_cfg['bt_show_ip_only_moder']) ? false : decode_ip_xx($ip);
+ return ($di->config->get('bt_show_ip_only_moder')) ? false : decode_ip_xx($ip);
}
}
function bt_show_port ($port)
{
- global $bb_cfg;
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
if (IS_AM)
{
@@ -921,7 +922,7 @@ function bt_show_port ($port)
}
else
{
- return ($bb_cfg['bt_show_port_only_moder']) ? false : $port;
+ return ($di->config->get('bt_show_port_only_moder')) ? false : $port;
}
}
@@ -1479,15 +1480,18 @@ function get_forum_select ($mode = 'guest', $name = POST_FORUM_URL, $selected =
function setup_style ()
{
- global $bb_cfg, $template, $userdata;
+ global $template, $userdata;
+
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
// AdminCP works only with default template
- $tpl_dir_name = defined('IN_ADMIN') ? 'default' : basename($bb_cfg['tpl_name']);
- $stylesheet = defined('IN_ADMIN') ? 'main.css' : basename($bb_cfg['stylesheet']);
+ $tpl_dir_name = defined('IN_ADMIN') ? 'default' : basename($di->config->get('tpl_name'));
+ $stylesheet = defined('IN_ADMIN') ? 'main.css' : basename($di->config->get('stylesheet'));
if (!IS_GUEST && !empty($userdata['tpl_name']))
{
- foreach ($bb_cfg['templates'] as $folder => $name)
+ foreach ($di->config->get('templates') as $folder => $name)
{
if ($userdata['tpl_name'] == $folder) $tpl_dir_name = basename($userdata['tpl_name']);
}
@@ -1500,7 +1504,7 @@ function setup_style ()
'BB_ROOT' => BB_ROOT,
'SPACER' => make_url('styles/images/spacer.gif'),
'STYLESHEET' => make_url($css_dir . $stylesheet),
- 'EXT_LINK_NEW_WIN' => $bb_cfg['ext_link_new_win'],
+ 'EXT_LINK_NEW_WIN' => $di->config->get('ext_link_new_win'),
'TPL_DIR' => make_url($css_dir),
'SITE_URL' => make_url('/'),
));
@@ -1515,14 +1519,17 @@ function setup_style ()
// Create date / time with format and friendly date
function bb_date ($gmepoch, $format = false, $friendly_date = true)
{
- global $bb_cfg, $lang, $userdata;
+ global $lang, $userdata;
- if (!$format) $format = $bb_cfg['default_dateformat'];
- if (empty($lang)) require_once($bb_cfg['default_lang_dir'] .'main.php');
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
+
+ if (!$format) $format = $di->config->get('default_dateformat');
+ if (empty($lang)) require_once($di->config->get('default_lang_dir') .'main.php');
if (empty($userdata['session_logged_in']))
{
- $tz = $bb_cfg['board_timezone'];
+ $tz = $di->config->get('board_timezone');
}
else
{
@@ -1565,15 +1572,18 @@ function bb_date ($gmepoch, $format = false, $friendly_date = true)
}
}
- return ($bb_cfg['translate_dates']) ? strtr(strtoupper($date), $lang['DATETIME']) : $date;
+ return ($di->config->get('translate_dates')) ? strtr(strtoupper($date), $lang['DATETIME']) : $date;
}
function birthday_age ($date)
{
- global $bb_cfg;
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
+
if (!$date) return false;
- $tz = TIMENOW + (3600 * $bb_cfg['board_timezone']);
+ $tz = TIMENOW + (3600 * $di->config->get('board_timezone'));
+
return delta_time(strtotime($date, $tz));
}
@@ -1705,15 +1715,13 @@ function generate_pagination ($base_url, $num_items, $per_page, $start_item, $ad
//
function obtain_word_list (&$orig_word, &$replacement_word)
{
- global $bb_cfg;
-
/** @var \TorrentPier\Di $di */
$di = \TorrentPier\Di::getInstance();
/** @var \TorrentPier\Cache\Adapter $cache */
$cache = $di->cache;
- if (!$bb_cfg['use_word_censor']) return false;
+ if (!$di->config->get('use_word_censor')) return false;
if (!$cache->has('censored')) {
$sql = DB()->fetch_rowset("SELECT word, replacement FROM " . BB_WORDS);
@@ -1733,7 +1741,10 @@ function obtain_word_list (&$orig_word, &$replacement_word)
function bb_die ($msg_text)
{
- global $ajax, $bb_cfg, $lang, $template, $theme, $user;
+ global $ajax, $lang, $template, $theme, $user;
+
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
if (defined('IN_AJAX'))
{
@@ -1751,7 +1762,7 @@ function bb_die ($msg_text)
// If empty lang
if (empty($lang))
{
- require($bb_cfg['default_lang_dir'] .'main.php');
+ require($di->config->get('default_lang_dir') .'main.php');
}
// If empty session
@@ -1765,7 +1776,7 @@ function bb_die ($msg_text)
{
if (empty($template))
{
- $template = new Template(BB_ROOT ."templates/{$bb_cfg['tpl_name']}");
+ $template = new Template(BB_ROOT ."templates/{$di->config->get('tpl_name')}");
}
if (empty($theme))
{
@@ -1795,14 +1806,15 @@ function bb_die ($msg_text)
function bb_simple_die ($txt)
{
- global $bb_cfg;
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
if (!empty($_COOKIE['explain']))
{
bb_die("bb_simple_die:
$txt");
}
- header('Content-Type: text/plain; charset='. $bb_cfg['charset']);
+ header('Content-Type: text/plain; charset='. $di->config->get('charset'));
die($txt);
}
@@ -1825,7 +1837,8 @@ function meta_refresh ($url, $time = 5)
function redirect ($url)
{
- global $bb_cfg;
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
if (headers_sent($filename, $linenum))
{
@@ -1838,11 +1851,11 @@ function redirect ($url)
}
$url = trim($url);
- $server_protocol = ($bb_cfg['cookie_secure']) ? 'https://' : 'http://';
+ $server_protocol = ($di->config->get('cookie_secure')) ? 'https://' : 'http://';
- $server_name = preg_replace('#^\/?(.*?)\/?$#', '\1', trim($bb_cfg['server_name']));
- $server_port = ($bb_cfg['server_port'] <> 80) ? ':' . trim($bb_cfg['server_port']) : '';
- $script_name = preg_replace('#^\/?(.*?)\/?$#', '\1', trim($bb_cfg['script_path']));
+ $server_name = preg_replace('#^\/?(.*?)\/?$#', '\1', trim($di->config->get('server_name')));
+ $server_port = ($di->config->get('server_port') <> 80) ? ':' . trim($di->config->get('server_port')) : '';
+ $script_name = preg_replace('#^\/?(.*?)\/?$#', '\1', trim($di->config->get('script_path')));
if ($script_name)
{
@@ -1969,7 +1982,7 @@ class log_action
function init ()
{
- global $lang, $bb_cfg;
+ global $lang;
foreach ($lang['LOG_ACTION']['LOG_TYPE'] as $log_type => $log_desc)
{
@@ -2029,9 +2042,12 @@ class log_action
function get_topic_icon ($topic, $is_unread = null)
{
- global $bb_cfg, $images;
+ global $images;
- $t_hot = ($topic['topic_replies'] >= $bb_cfg['hot_threshold']);
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
+
+ $t_hot = ($topic['topic_replies'] >= $di->config->get('hot_threshold'));
$is_unread = is_null($is_unread) ? is_unread($topic['topic_last_post_time'], $topic['topic_id'], $topic['forum_id']) : $is_unread;
if ($topic['topic_status'] == TOPIC_MOVED)
@@ -2142,8 +2158,10 @@ function get_poll_data_items_js ($topic_id)
function poll_is_active ($t_data)
{
- global $bb_cfg;
- return ($t_data['topic_vote'] == 1 && $t_data['topic_time'] > TIMENOW - $bb_cfg['poll_max_days'] * 86400);
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
+
+ return ($t_data['topic_vote'] == 1 && $t_data['topic_time'] > TIMENOW - $di->config->get('poll_max_days') * 86400);
}
function print_confirmation ($tpl_vars)
@@ -2210,7 +2228,10 @@ function clean_title ($str, $replace_underscore = false)
function clean_text_match ($text, $ltrim_star = true, $remove_stopwords = false, $die_if_empty = false)
{
- global $bb_cfg, $lang;
+ global $lang;
+
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
$text = str_compact($text);
$ltrim_chars = ($ltrim_star) ? ' *-!' : ' ';
@@ -2223,7 +2244,7 @@ function clean_text_match ($text, $ltrim_star = true, $remove_stopwords = false,
$text = remove_stopwords($text);
}
- if ($bb_cfg['sphinx_enabled'])
+ if ($di->config->get('sphinx_enabled'))
{
$text = preg_replace('#(?<=\S)\-#u', ' ', $text); // "1-2-3" -> "1 2 3"
$text = preg_replace('#[^0-9a-zA-Zа-яА-ЯёЁ\-_*|]#u', ' ', $text); // допустимые символы (кроме " которые отдельно)
@@ -2279,19 +2300,22 @@ function log_sphinx_error ($err_type, $err_msg, $query = '')
function get_title_match_topics($search)
{
- global $bb_cfg, $sphinx, $userdata, $lang;
+ global $sphinx, $userdata, $lang;
+
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
$where_ids = array();
$forum_ids = (isset($search['ids']) && is_array($search['ids'])) ? array_diff($search['ids'], array(0 => 0)) : '';
$title_match_sql = encode_text_match($search['query']);
- if ($bb_cfg['sphinx_enabled'])
+ if ($di->config->get('sphinx_enabled'))
{
init_sphinx();
$where = (isset($search['topic_match'])) ? 'topics' : 'posts';
- $sphinx->SetServer($bb_cfg['sphinx_topic_titles_host'], $bb_cfg['sphinx_topic_titles_port']);
+ $sphinx->SetServer($di->config->get('sphinx_topic_titles_host'), $di->config->get('sphinx_topic_titles_port'));
if ($forum_ids)
{
$sphinx->SetFilter('forum_id', $forum_ids, false);
@@ -2323,7 +2347,7 @@ function get_title_match_topics($search)
else
{
$where_forum = ($forum_ids) ? "AND forum_id IN(" . join(',', $forum_ids) . ")" : '';
- $search_bool_mode = ($bb_cfg['allow_search_in_bool_mode']) ? ' IN BOOLEAN MODE' : '';
+ $search_bool_mode = ($di->config->get('allow_search_in_bool_mode')) ? ' IN BOOLEAN MODE' : '';
if (isset($search['topic_match']))
{
@@ -2381,17 +2405,20 @@ function pad_with_space ($str)
function create_magnet ($infohash, $auth_key, $logged_in)
{
- global $bb_cfg, $_GET, $images;
+ global $images;
- $passkey_url = ((!$logged_in || isset($_GET['no_passkey'])) && $bb_cfg['bt_tor_browse_only_reg']) ? '' : "?{$bb_cfg['passkey_key']}=$auth_key";
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
- if ($bb_cfg['ocelot']['enabled'])
+ $passkey_url = ((!$logged_in || isset($_GET['no_passkey'])) && $di->config->get('bt_tor_browse_only_reg')) ? '' : "?{$di->config->get('passkey_key')}=$auth_key";
+
+ if ($di->config->get('ocelot.enabled'))
{
- return '
';
+ return '
';
}
else
{
- return '
';
+ return '
';
}
}
@@ -2450,7 +2477,10 @@ function send_pm ($user_id, $subject, $message, $poster_id = BOT_UID)
function profile_url ($data)
{
- global $bb_cfg, $lang, $datastore;
+ global $lang, $datastore;
+
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
if (!$ranks = $datastore->get('ranks'))
{
@@ -2468,7 +2498,7 @@ function profile_url ($data)
if (empty($title)) $title = $lang['USER'];
if (empty($style)) $style = 'colorUser';
- if (!$bb_cfg['color_nick']) $style = '';
+ if (!$di->config->get('color_nick')) $style = '';
$username = !empty($data['username']) ? $data['username'] : $lang['GUEST'];
$user_id = (!empty($data['user_id']) && $username != $lang['GUEST']) ? $data['user_id'] : GUEST_UID;
@@ -2485,7 +2515,8 @@ function profile_url ($data)
function get_avatar ($user_id, $ext_id, $allow_avatar = true, $size = true, $height = '', $width = '')
{
- global $bb_cfg;
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
if ($size)
{
@@ -2495,11 +2526,11 @@ function get_avatar ($user_id, $ext_id, $allow_avatar = true, $size = true, $hei
$height = ($height != '') ? 'height="'. $height .'"' : '';
$width = ($width != '') ? 'width="'. $width .'"' : '';
- $user_avatar = '
';
+ $user_avatar = '
';
- if ($user_id == BOT_UID && $bb_cfg['avatars']['bot_avatar'])
+ if ($user_id == BOT_UID && $di->config->get('avatars.bot_avatar'))
{
- $user_avatar = '
';
+ $user_avatar = '
';
}
else if ($allow_avatar && $ext_id)
{
@@ -2514,9 +2545,12 @@ function get_avatar ($user_id, $ext_id, $allow_avatar = true, $size = true, $hei
function gender_image ($gender)
{
- global $bb_cfg, $lang, $images;
+ global $lang, $images;
- if (!$bb_cfg['gender'])
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
+
+ if (!$di->config->get('gender'))
{
$user_gender = '';
return $user_gender;
diff --git a/library/includes/functions_admin.php b/library/includes/functions_admin.php
index 05e9661d7..04efe3ef3 100644
--- a/library/includes/functions_admin.php
+++ b/library/includes/functions_admin.php
@@ -714,7 +714,10 @@ function post_delete ($mode_or_post_id, $user_id = null, $exclude_first = true)
function user_delete ($user_id, $delete_posts = false)
{
- global $bb_cfg, $log_action;
+ global $log_action;
+
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
if (!$user_csv = get_id_csv($user_id))
{
@@ -801,7 +804,7 @@ function user_delete ($user_id, $delete_posts = false)
// Delete user feed
foreach (explode(',', $user_csv) as $user_id)
{
- $file_path = $bb_cfg['atom']['path'] .'/u/'. floor($user_id/5000) .'/'. ($user_id % 100) .'/'. $user_id .'.atom';
+ $file_path = $di->config->get('atom.path') .'/u/'. floor($user_id/5000) .'/'. ($user_id % 100) .'/'. $user_id .'.atom';
unlink($file_path);
}
}
diff --git a/library/includes/functions_admin_cron.php b/library/includes/functions_admin_cron.php
index b1464f194..121f863b3 100644
--- a/library/includes/functions_admin_cron.php
+++ b/library/includes/functions_admin_cron.php
@@ -2,7 +2,10 @@
function run_jobs($jobs)
{
- global $bb_cfg, $tr_cfg, $datastore;
+ global $tr_cfg, $datastore;
+
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
define('IN_CRON', true);
diff --git a/library/includes/functions_atom.php b/library/includes/functions_atom.php
index 503e43fd3..956ac2b40 100644
--- a/library/includes/functions_atom.php
+++ b/library/includes/functions_atom.php
@@ -7,8 +7,10 @@ if (!defined('BB_ROOT')) die(basename(__FILE__));
function update_forum_feed ($forum_id, $forum_data)
{
- global $bb_cfg;
- $file_path = $bb_cfg['atom']['path'] .'/f/'. $forum_id .'.atom';
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
+
+ $file_path = $di->config->get('atom.path') .'/f/'. $forum_id .'.atom';
$select_tor_sql = $join_tor_sql = '';
if ($forum_id == 0) $forum_data['atom_forum_name'] = 'Общая по всем разделам';
if ($forum_id > 0 && $forum_data['atom_tr_allowed'])
@@ -63,7 +65,7 @@ function update_forum_feed ($forum_id, $forum_data)
}
if (isset($topic['tor_status']))
{
- if (isset($bb_cfg['tor_frozen'][$topic['tor_status']])) continue;
+ if ($di->config->get('tor_frozen.' . $topic['tor_status'])) continue;
}
$topics[] = $topic;
}
@@ -78,8 +80,10 @@ function update_forum_feed ($forum_id, $forum_data)
function update_user_feed ($user_id, $username)
{
- global $bb_cfg;
- $file_path = $bb_cfg['atom']['path'] .'/u/'. floor($user_id/5000) .'/'. ($user_id % 100) .'/'. $user_id .'.atom';
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
+
+ $file_path = $di->config->get('atom.path') .'/u/'. floor($user_id/5000) .'/'. ($user_id % 100) .'/'. $user_id .'.atom';
$sql = "
SELECT
t.topic_id, t.topic_title, t.topic_status,
@@ -106,7 +110,7 @@ function update_user_feed ($user_id, $username)
}
if (isset($topic['tor_status']))
{
- if (isset($bb_cfg['tor_frozen'][$topic['tor_status']])) continue;
+ if ($di->config->get('tor_frozen.' . $topic['tor_status'])) continue;
}
$topics[] = $topic;
}
@@ -121,7 +125,9 @@ function update_user_feed ($user_id, $username)
function create_atom ($file_path, $mode, $id, $title, $topics)
{
- global $bb_cfg;
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
+
$dir = dirname($file_path);
if (!file_exists($dir))
{
@@ -137,11 +143,11 @@ function create_atom ($file_path, $mode, $id, $title, $topics)
}
$atom = "";
$atom .= "\n";
- $atom .= "\n";
+ $atom .= "config->get('server_name') . $di->config->get('script_path') ."\">\n";
$atom .= "$title\n";
$atom .= "". $date ."T$time+00:00\n";
$atom .= "tag:rto.feed,2000:/$mode/$id\n";
- $atom .= "\n";
+ $atom .= "config->get('server_name') . $di->config->get('script_path') ."\" />\n";
foreach ($topics as $topic)
{
$topic_id = $topic['topic_id'];
diff --git a/library/includes/functions_post.php b/library/includes/functions_post.php
index f2a32672e..79f333953 100644
--- a/library/includes/functions_post.php
+++ b/library/includes/functions_post.php
@@ -7,7 +7,10 @@ if (!defined('BB_ROOT')) die(basename(__FILE__));
//
function prepare_post(&$mode, &$post_data, &$error_msg, &$username, &$subject, &$message)
{
- global $bb_cfg, $user, $userdata, $lang;
+ global $user, $userdata, $lang;
+
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
// Check username
if (!empty($username))
@@ -50,12 +53,12 @@ function prepare_post(&$mode, &$post_data, &$error_msg, &$username, &$subject, &
}
// Check smilies limit
- if ($bb_cfg['max_smilies'])
+ if ($di->config->get('max_smilies'))
{
- $count_smilies = substr_count(bbcode2html($message), '
");
+ $emailer->from($di->config->get('sitename') ." <{$di->config->get('board_email')}>");
$emailer->email_address($row['username'] ." <{$row['user_email']}>");
$emailer->use_template('topic_notify', $row['user_lang']);
$emailer->assign_vars(array(
'TOPIC_TITLE' => html_entity_decode($topic_title),
- 'SITENAME' => $bb_cfg['sitename'],
+ 'SITENAME' => $di->config->get('sitename'),
'USERNAME' => $row['username'],
'U_TOPIC' => $u_topic,
'U_STOP_WATCHING_TOPIC' => $unwatch_topic,
diff --git a/library/includes/functions_selects.php b/library/includes/functions_selects.php
index 143845676..0931987af 100644
--- a/library/includes/functions_selects.php
+++ b/library/includes/functions_selects.php
@@ -7,11 +7,12 @@ if (!defined('BB_ROOT')) die(basename(__FILE__));
//
function language_select ($default_lang, $select_name = 'language')
{
- global $bb_cfg;
+ /** @var \TorrentPier\Di $di */
+ $di = \TorrentPier\Di::getInstance();
$lang_select = '';
- return ($x > 1) ? $lang_select : reset($bb_cfg['lang'])['name'];
+ return ($x > 1) ? $lang_select : reset($di->config->get('lang'))['name'];
}
//
@@ -31,7 +32,7 @@ function tz_select ($default, $select_name = 'timezone')
if (!isset($default))
{
- $default == $sys_timezone;
+ $default = $sys_timezone;
}
$tz_select = '