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..aa95de5ab 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,9 @@ ### TorrentPier ### -.idea/ +.idea +bower_components composer.phar composer.lock +configs/local.php data/avatars data/torrent_files internal_data/ajax_html @@ -11,6 +13,7 @@ internal_data/log internal_data/sitemap internal_data/triggers library/config.local.php +node_modules vendor ### Archives ### @@ -35,4 +38,4 @@ $RECYCLE.BIN/ .Spotlight-V100 .Trashes *.orig -*.rej \ No newline at end of file +*.rej 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/app.php b/app.php index 4434da1f5..7c56997ca 100644 --- a/app.php +++ b/app.php @@ -7,17 +7,12 @@ $view = $di->view; /** @var \TorrentPier\Db\Adapter $db */ $db = $di->db; - $view->addGlobal('title', 'Title Page Simple'); - $categories = $db->select('bb_categories', function (\Zend\Db\Sql\Select $query) { $query->join('bb_forums', 'bb_categories.cat_id = bb_forums.cat_id'); })->all(); - - - echo $view->make('app', [ 'data' => 'Hello world', 'categories' => $categories diff --git a/bootstrap.php b/bootstrap.php index 3c4ca85c8..e9171a804 100644 --- a/bootstrap.php +++ b/bootstrap.php @@ -2,8 +2,8 @@ require_once __DIR__ . '/vendor/autoload.php'; -use TorrentPier\Di, - TorrentPier\ServiceProviders; +use TorrentPier\Di; +use TorrentPier\ServiceProviders; $di = new Di(); diff --git a/bower.json b/bower.json new file mode 100644 index 000000000..eca6c23f5 --- /dev/null +++ b/bower.json @@ -0,0 +1,24 @@ +{ + "name": "torrentpier", + "description": "TorrentPier. Bittorrent-tracker engine", + "main": "build/index.js", + "authors": [ + "Exile " + ], + "license": "GPL-3.0", + "homepage": "https://torrentpier.me/", + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "tests" + ], + "dependencies": { + "bootstrap": "^3.3.7", + "jquery": "^3.1.0", + "moment": "^2.14.1", + "font-awesome": "fontawesome#^4.6.3", + "jquery.quicksearch": "quicksearch#^2.3.0" + } +} 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/composer.json b/composer.json index 8738048ca..af82508b8 100644 --- a/composer.json +++ b/composer.json @@ -15,14 +15,12 @@ "support": { "email": "support@torrentpier.me", "issues" : "https://github.com/torrentpier/torrentpier/issues", - "forum": "https://torrentpier.me/", - "get": "http://get.torrentpier.me/", - "docs": "http://faq.torrentpier.me/" + "forum": "https://torrentpier.me/forum/", + "get": "https://get.torrentpier.me/", + "docs": "https://faq.torrentpier.me/" }, "require": { "php": "^5.5 || ^7.0", - "ext-curl": "*", - "ext-mbstring": "*", "google/recaptcha": "^1.0", "monolog/monolog": "^1.18", "pimple/pimple": "^3.0", 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'] .'' : '' . $lang['SEND_PRIVATE_MESSAGE'] . ''; + $pm = ($di->config->get('text_buttons')) ? ''. $lang['SEND_PM_TXTB'] .'' : '' . $lang['SEND_PRIVATE_MESSAGE'] . ''; $avatar = get_avatar($row['user_id'], $row['avatar_ext_id'], !bf($row['user_opt'], 'user_opt', 'dis_avatar'), '', 50, 50); if (bf($row['user_opt'], 'user_opt', 'user_viewemail') || $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'] .'' : '' . $lang['VISIT_WEBSITE'] . ''; + $www = ($di->config->get('text_buttons')) ? ''. $lang['VISIT_WEBSITE_TXTB'] .'' : '' . $lang['VISIT_WEBSITE'] . ''; } 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 = ''. $user_id .''; + $response = ''. $user_id .''; 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..4c23bc89b 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; @@ -120,7 +123,6 @@ function generate_smilies($mode) if ($num_smilies) { - $smilies_count = ($mode == 'inline') ? min(19, $num_smilies) : $num_smilies; $smilies_split_row = ($mode == 'inline') ? $inline_columns - 1 : $window_columns - 1; $s_colspan = 0; @@ -136,7 +138,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 +349,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 +418,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 +561,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 +599,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 +632,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,21 +644,19 @@ 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); } $found_spam = array(); - $tm_start = utime(); - $msg_decoded = $text; $msg_decoded = html_entity_decode($msg_decoded); $msg_decoded = urldecode($msg_decoded); @@ -681,7 +686,6 @@ class bbcode $text = preg_replace("/($spam_exp)(\S*)/i", $spam_replace, $msg_decoded); $text = htmlCHR($text, false, ENT_NOQUOTES); -# bb_log(date("H:i:s") ." | ". sprintf('%.4f', (utime() - $tm_start)) ." | ". sprintf('%-6s', strlen($text)) ." | ". join(' ** ', $found_spam) ."\n", 'spam_filter'); } return $text; @@ -713,14 +717,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 +796,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 +978,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 +997,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'], @@ -1002,4 +1011,4 @@ function get_parsed_post ($postrow, $mode = 'full', $return_chars = 600) function update_post_html ($postrow) { DB()->query("DELETE FROM ". BB_POSTS_HTML ." WHERE post_id = ". (int) $postrow['post_id'] ." LIMIT 1"); -} \ No newline at end of file +} 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'][] = ' '. $smile['emoticon'] .''; + $smilies['repl'][] = ' '. $smile['emoticon'] .''; $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". $contents ."\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_id .''; + $user_avatar = ''. $user_id .''; - if ($user_id == BOT_UID && $bb_cfg['avatars']['bot_avatar']) + if ($user_id == BOT_UID && $di->config->get('avatars.bot_avatar')) { - $user_avatar = ''. $user_id .''; + $user_avatar = ''. $user_id .''; } 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..fdb209fef 100644 --- a/library/includes/functions_selects.php +++ b/library/includes/functions_selects.php @@ -2,65 +2,57 @@ if (!defined('BB_ROOT')) die(basename(__FILE__)); -// // Languages -// -function language_select ($default_lang, $select_name = 'language') +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']; + $lang_select = ''; + return ($x > 1) ? $lang_select : $di->config->get('lang')->ru; } -// // Pick a timezone -// -function tz_select ($default, $select_name = 'timezone') +function tz_select($default, $select_name = 'timezone') { - global $sys_timezone, $lang; + global $sys_timezone, $lang; - if (!isset($default)) - { - $default == $sys_timezone; - } - $tz_select = ''; - while( list($offset, $zone) = each($lang['TZ']) ) - { - $selected = ( $offset == $default ) ? ' selected="selected"' : ''; - $tz_select .= ''; - } - $tz_select .= ''; + while (list($offset, $zone) = each($lang['TZ'])) { + $selected = ($offset == $default) ? ' selected="selected"' : ''; + $tz_select .= ''; + } + $tz_select .= ''; - return $tz_select; + return $tz_select; } -// // Templates -// -function templates_select ($default_style, $select_name = 'tpl_name') +function templates_select($default_style, $select_name = 'tpl_name') { - global $bb_cfg; + /** @var \TorrentPier\Di $di */ + $di = \TorrentPier\Di::getInstance(); - $templates_select = ''; - return ($x > 1) ? $templates_select : reset($bb_cfg['templates']); -} \ No newline at end of file + $templates_select = ''; + return ($x > 1) ? $templates_select : $di->config->get('templates')->default; +} diff --git a/library/includes/functions_torrent.php b/library/includes/functions_torrent.php index 3ada637c3..ba7d3e036 100644 --- a/library/includes/functions_torrent.php +++ b/library/includes/functions_torrent.php @@ -22,7 +22,10 @@ function torrent_auth_check ($forum_id, $poster_id) function tracker_unregister ($topic_id, $redirect_url = '') { - global $bb_cfg, $lang, $log_action; + global $lang, $log_action; + + /** @var \TorrentPier\Di $di */ + $di = \TorrentPier\Di::getInstance(); $tor = DB()->fetch_row(" SELECT forum_id, tor_status FROM ". BB_BT_TORRENTS ." WHERE topic_id = ". intval($topic_id) ." LIMIT 1 @@ -64,13 +67,13 @@ function tracker_unregister ($topic_id, $redirect_url = '') } // Unset DL-type for topic - if ($bb_cfg['bt_unset_dltype_on_tor_unreg'] && $topic_id) + if ($di->config->get('bt_unset_dltype_on_tor_unreg') && $topic_id) { DB()->query("UPDATE ". BB_TOPICS ." SET tracker_status = 0 WHERE topic_id = $topic_id LIMIT 1"); } // Ocelot - if ($bb_cfg['ocelot']['enabled']) + if ($di->config->get('ocelot.enabled')) { if ($row = DB()->fetch_row("SELECT info_hash FROM ". BB_BT_TORRENTS ." WHERE topic_id = $topic_id LIMIT 1")) { @@ -122,7 +125,10 @@ function torrent_cp_close ($topic_id, $forum_id) function tracker_register ($topic_id, $mode = '', $tor_status = TOR_NOT_APPROVED, $reg_time = TIMENOW) { - global $bb_cfg, $lang, $reg_mode; + global $lang; + + /** @var \TorrentPier\Di $di */ + $di = \TorrentPier\Di::getInstance(); $reg_mode = $mode; @@ -163,7 +169,7 @@ function tracker_register ($topic_id, $mode = '', $tor_status = TOR_NOT_APPROVED return torrent_error_exit($lang['TORFILE_INVALID']); } - if ($bb_cfg['bt_disable_dht']) + if ($di->config->get('bt_disable_dht')) { $tor_decoded['info']['private'] = (int) 1; $fp = fopen($filename, 'w+'); @@ -183,7 +189,7 @@ function tracker_register ($topic_id, $mode = '', $tor_status = TOR_NOT_APPROVED $info_hash_md5 = md5($info_hash); // Ocelot - if ($bb_cfg['ocelot']['enabled']) + if ($di->config->get('ocelot.enabled')) { ocelot_update_tracker('add_torrent', array('info_hash' => rawurlencode($info_hash), 'id' => $topic_id, 'freetorrent' => 0)); } @@ -279,7 +285,10 @@ function change_tor_status ($topic_id, $tor_status) // Set gold / silver type for torrent function change_tor_type ($topic_id, $tor_status_gold) { - global $bb_cfg, $lang; + global $lang; + + /** @var \TorrentPier\Di $di */ + $di = \TorrentPier\Di::getInstance(); if (!IS_AM) bb_die($lang['ONLY_FOR_MOD']); @@ -289,7 +298,7 @@ function change_tor_type ($topic_id, $tor_status_gold) DB()->query("UPDATE ". BB_BT_TORRENTS ." SET tor_type = $tor_status_gold WHERE topic_id = $topic_id LIMIT 1"); // Ocelot - if ($bb_cfg['ocelot']['enabled']) + if ($di->config->get('ocelot.enabled')) { if ($row = DB()->fetch_row("SELECT info_hash FROM ". BB_BT_TORRENTS ." WHERE topic_id = $topic_id LIMIT 1")) { @@ -301,7 +310,10 @@ function change_tor_type ($topic_id, $tor_status_gold) function send_torrent_with_passkey ($t_data) { - global $bb_cfg, $lang, $tr_cfg, $userdata; + global $lang, $tr_cfg, $userdata; + + /** @var \TorrentPier\Di $di */ + $di = \TorrentPier\Di::getInstance(); $topic_id = $t_data['topic_id']; $poster_id = $t_data['topic_poster']; @@ -314,7 +326,7 @@ function send_torrent_with_passkey ($t_data) { bb_die($lang['PASSKEY_ERR_TOR_NOT_REG']); } - else if (isset($bb_cfg['tor_frozen'][$row['tor_status']])) + elseif ($di->config->get('tor_frozen.' . $row['tor_status'])) { if (!IS_AM) bb_die("Раздача имеет статус: {$lang['TOR_STATUS_NAME'][$row['tor_status']]}

Скачивание запрещено"); //TODO: перевести } @@ -332,7 +344,7 @@ function send_torrent_with_passkey ($t_data) { bb_simple_die('Could not generate passkey'); } - elseif ($bb_cfg['ocelot']['enabled']) + elseif ($di->config->get('ocelot.enabled')) { ocelot_update_tracker('add_user', array('id' => $user_id ,'passkey' => $passkey_val)); } @@ -340,7 +352,7 @@ function send_torrent_with_passkey ($t_data) // Ratio limit for torrents dl $user_ratio = get_bt_ratio($bt_userdata); - $min_ratio = $bb_cfg['bt_min_ratio_allow_dl_tor']; + $min_ratio = $di->config->get('bt_min_ratio_allow_dl_tor'); if ($min_ratio && $user_id != $poster_id && !is_null($user_ratio)) { @@ -417,16 +429,16 @@ function send_torrent_with_passkey ($t_data) unset($tor['nodes']); // Announce URL - $announce = $bb_cfg['ocelot']['enabled'] ? strval($bb_cfg['ocelot']['url'] .$passkey_val. "/announce") : strval($bb_cfg['bt_announce_url'] . "?{$bb_cfg['passkey_key']}=$passkey_val"); + $announce = $di->config->get('ocelot.enabled') ? strval($di->config->get('ocelot.url') .$passkey_val. "/announce") : strval($di->config->get('bt_announce_url') . "?{$di->config->get('passkey_key')}=$passkey_val"); // Replace original announce url with tracker default - if ($bb_cfg['bt_replace_ann_url'] || !isset($tor['announce'])) + if ($di->config->get('bt_replace_ann_url') || !isset($tor['announce'])) { $tor['announce'] = $announce; } // Delete all additional urls - if ($bb_cfg['bt_del_addit_ann_urls'] || $bb_cfg['bt_disable_dht']) + if ($di->config->get('bt_del_addit_ann_urls') || $di->config->get('bt_disable_dht')) { unset($tor['announce-list']); } @@ -455,7 +467,7 @@ function send_torrent_with_passkey ($t_data) } // Add publisher & topic url - $publisher_name = $bb_cfg['server_name']; + $publisher_name = $di->config->get('server_name'); $publisher_url = make_url(TOPIC_URL . $topic_id); $tor['publisher'] = strval($publisher_name); @@ -469,7 +481,7 @@ function send_torrent_with_passkey ($t_data) // Send torrent $output = \Rych\Bencode\Bencode::encode($tor); - $dl_fname = '['.$bb_cfg['server_name'].'].t' . $topic_id . '.torrent'; + $dl_fname = '['.$di->config->get('server_name').'].t' . $topic_id . '.torrent'; if (!empty($_COOKIE['explain'])) { @@ -487,7 +499,10 @@ function send_torrent_with_passkey ($t_data) function generate_passkey ($user_id, $force_generate = false) { - global $bb_cfg, $lang; + global $lang; + + /** @var \TorrentPier\Di $di */ + $di = \TorrentPier\Di::getInstance(); $user_id = (int) $user_id; @@ -535,7 +550,7 @@ function generate_passkey ($user_id, $force_generate = false) if (DB()->affected_rows() == 1) { // Ocelot - if ($bb_cfg['ocelot']['enabled']) + if ($di->config->get('ocelot.enabled')) { ocelot_update_tracker('change_passkey', array('oldpasskey' => $old_passkey,'newpasskey' => $passkey_val)); } @@ -580,9 +595,10 @@ function tracker_rm_user ($user_id) function ocelot_update_tracker ($action, $updates) { - global $bb_cfg; + /** @var \TorrentPier\Di $di */ + $di = \TorrentPier\Di::getInstance(); - $get = $bb_cfg['ocelot']['secret'] . "/update?action=$action"; + $get = $di->config->get('ocelot.secret') . "/update?action=$action"; foreach ($updates as $key => $value) { @@ -602,7 +618,8 @@ function ocelot_update_tracker ($action, $updates) function ocelot_send_request ($get, $max_attempts = 1, &$err = false) { - global $bb_cfg; + /** @var \TorrentPier\Di $di */ + $di = \TorrentPier\Di::getInstance(); $header = "GET /$get HTTP/1.1\r\nConnection: Close\r\n\r\n"; $attempts = $sleep = $success = $response = 0; @@ -616,7 +633,7 @@ function ocelot_send_request ($get, $max_attempts = 1, &$err = false) } // Send request - $file = fsockopen($bb_cfg['ocelot']['host'], $bb_cfg['ocelot']['port'], $error_num, $error_string); + $file = fsockopen($di->config->get('ocelot.host'), $di->config->get('ocelot.port'), $error_num, $error_string); if ($file) { if (fwrite($file, $header) === false) diff --git a/library/includes/functions_upload.php b/library/includes/functions_upload.php index 2174ea04e..b93717582 100644 --- a/library/includes/functions_upload.php +++ b/library/includes/functions_upload.php @@ -23,7 +23,7 @@ class upload_common var $file_ext = ''; var $file_ext_id = ''; var $file_size = ''; - var $ext_ids = array(); // array_flip($bb_cfg['file_id_ext']) + var $ext_ids = array(); // array_flip($di->config->get('file_id_ext')) var $errors = array(); var $img_types = array( 1 => 'gif', @@ -36,7 +36,10 @@ class upload_common function init ($cfg = array(), $post_params = array(), $uploaded_only = true) { - global $bb_cfg, $lang; + global $lang; + + /** @var \TorrentPier\Di $di */ + $di = \TorrentPier\Di::getInstance(); $this->cfg = array_merge($this->cfg, $cfg); $this->file = $post_params; @@ -73,7 +76,7 @@ class upload_common return false; } // get ext - $this->ext_ids = array_flip($bb_cfg['file_id_ext']); + $this->ext_ids = array_flip($di->config->get('file_id_ext')); $file_name_ary = explode('.', $this->file['name']); $this->file_ext = strtolower(end($file_name_ary)); diff --git a/library/includes/init_bb.php b/library/includes/init_bb.php index dc1521927..f2efc0a3f 100644 --- a/library/includes/init_bb.php +++ b/library/includes/init_bb.php @@ -6,6 +6,9 @@ if (!defined('BB_CFG_LOADED')) trigger_error('File config.php not loaded', E_USE if (PHP_VERSION < '5.5') die('TorrentPier requires PHP version 5.5 and above (ZF requirement). Your PHP version is '. PHP_VERSION); +/** @var \TorrentPier\Di $di */ +$di = \TorrentPier\Di::getInstance(); + // Define some basic configuration arrays unset($stopwords, $synonyms_match, $synonyms_replace); $userdata = $theme = $images = $lang = $nav_links = $bf = []; @@ -27,9 +30,10 @@ define('UA_GZIP_SUPPORTED', (isset($_SERVER['HTTP_ACCEPT_ENCODING']) && strpos($ function compress_output ($contents) { - global $bb_cfg; + /** @var \TorrentPier\Di $di */ + $di = \TorrentPier\Di::getInstance(); - if ($bb_cfg['gzip_compress'] && GZIP_OUTPUT_ALLOWED && !defined('NO_GZIP')) + if ($di->config->get('gzip_compress') && GZIP_OUTPUT_ALLOWED && !defined('NO_GZIP')) { if (UA_GZIP_SUPPORTED && strlen($contents) > 2000) { @@ -48,7 +52,7 @@ if (!defined('IN_AJAX')) } // Cookie params -$c = $bb_cfg['cookie_prefix']; +$c = $di->config->get('cookie_prefix'); define('COOKIE_DATA', $c .'data'); define('COOKIE_FORUM', $c .'f'); define('COOKIE_MARK', $c .'mark_read'); @@ -64,8 +68,10 @@ define('COOKIE_MAX_TRACKS', 90); function bb_setcookie ($name, $val, $lifetime = COOKIE_PERSIST, $httponly = false) { - global $bb_cfg; - return setcookie($name, $val, $lifetime, $bb_cfg['script_path'], $bb_cfg['cookie_domain'], $bb_cfg['cookie_secure'], $httponly); + /** @var \TorrentPier\Di $di */ + $di = \TorrentPier\Di::getInstance(); + + return setcookie($name, $val, $lifetime, $di->config->get('script_path'), $di->config->get('cookie_domain'), $di->config->get('cookie_secure'), $httponly); } // Debug options @@ -163,75 +169,6 @@ define('POLL_FINISHED', 2); // Group avatars define('GROUP_AVATAR_MASK', 999000); -// 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); // премодерация - -$bb_cfg['tor_icons'] = array( - TOR_NOT_APPROVED => '*', - TOR_CLOSED => 'x', - TOR_APPROVED => '', - TOR_NEED_EDIT => '?', - TOR_NO_DESC => '!', - TOR_DUP => 'D', - TOR_CLOSED_CPHOLD => '©', - TOR_CONSUMED => '', - TOR_DOUBTFUL => '#', - TOR_CHECKING => '%', - TOR_TMP => 'T', - TOR_PREMOD => '', -); - -// Запрет на скачивание -$bb_cfg['tor_frozen'] = array( - TOR_CHECKING => true, - TOR_CLOSED => true, - TOR_CLOSED_CPHOLD => true, - TOR_CONSUMED => true, - TOR_DUP => true, - TOR_NO_DESC => true, - TOR_PREMOD => true, -); - -// Разрешение на скачку автором, если закрыто на скачивание. -$bb_cfg['tor_frozen_author_download'] = array( - TOR_CHECKING => true, - TOR_NO_DESC => true, - TOR_PREMOD => true, -); - -// Запрет на редактирование головного сообщения -$bb_cfg['tor_cannot_edit'] = array( - TOR_CHECKING => true, - TOR_CLOSED => true, - TOR_CONSUMED => true, - TOR_DUP => true, -); - -// Запрет на создание новых раздач если стоит статус недооформлено/неоформлено/сомнительно -$bb_cfg['tor_cannot_new'] = array(TOR_NEED_EDIT, TOR_NO_DESC, TOR_DOUBTFUL); - -// Разрешение на ответ релизера, если раздача исправлена. -$bb_cfg['tor_reply'] = array(TOR_NEED_EDIT, TOR_NO_DESC, TOR_DOUBTFUL); - -// Если такой статус у релиза, то статистика раздачи будет скрыта -$bb_cfg['tor_no_tor_act'] = array( - TOR_CLOSED => true, - TOR_DUP => true, - TOR_CLOSED_CPHOLD => true, - TOR_CONSUMED => true, -); - // Table names define('BUF_TOPIC_VIEW', 'buf_topic_view'); define('BUF_LAST_SEEDER', 'buf_last_seeder'); @@ -288,11 +225,11 @@ define('CAT_URL', 'index.php?c='); define('DOWNLOAD_URL', 'dl.php?t='); define('FORUM_URL', 'viewforum.php?f='); define('GROUP_URL', 'group.php?g='); -define('LOGIN_URL', $bb_cfg['login_url']); +define('LOGIN_URL', $di->config->get('login_url')); define('MODCP_URL', 'modcp.php?f='); -define('PM_URL', $bb_cfg['pm_url']); +define('PM_URL', $di->config->get('pm_url')); define('POST_URL', 'viewtopic.php?p='); -define('POSTING_URL', $bb_cfg['posting_url']); +define('POSTING_URL', $di->config->get('posting_url')); define('PROFILE_URL', 'profile.php?mode=viewprofile&u='); define('BONUS_URL', 'profile.php?mode=bonus'); define('TOPIC_URL', 'viewtopic.php?t='); @@ -356,31 +293,6 @@ function bb_exit ($output = '') exit; } -function prn_r ($var, $title = '', $print = true) -{ - $r = '
'. (($title) ? "$title\n\n" : '') . htmlspecialchars(print_r($var, true)) .'
'; - if ($print) echo $r; - return $r; -} - -function pre ($var, $title = '', $print = true) -{ - prn_r($var, $title, $print); -} - -function prn () -{ - if (!DBG_USER) return; - foreach (func_get_args() as $var) prn_r($var); -} - -function vdump ($var, $title = '') -{ - echo '
'. (($title) ? "$title\n\n" : '');
-	var_dump($var);
-	echo '
'; -} - function htmlCHR ($txt, $double_encode = false, $quote_style = ENT_QUOTES, $charset = 'UTF-8') { return (string) htmlspecialchars($txt, $quote_style, $charset, $double_encode); @@ -401,8 +313,6 @@ require(INC_DIR .'sessions.php'); require(INC_DIR .'template.php'); require(CORE_DIR .'mysql.php'); -$bb_cfg = array_merge(bb_get_config(BB_CONFIG), $bb_cfg); - $user = new user_common(); $userdata =& $user->data; @@ -415,16 +325,16 @@ $log_action = new log_action(); $datastore->enqueue(array('cat_forums')); // Дата старта вашего проекта -if (!$bb_cfg['board_startdate']) +if (!$di->config->get('board_startdate')) { bb_update_config(array('board_startdate' => TIMENOW)); DB()->query("UPDATE ". BB_USERS ." SET user_regdate = ". TIMENOW ." WHERE user_id IN(2, ". EXCLUDED_USERS .")"); } // Cron -if ((empty($_POST) && !defined('IN_ADMIN') && !defined('IN_AJAX') && !file_exists(CRON_RUNNING) && ($bb_cfg['cron_enabled'] || defined('START_CRON'))) || defined('FORCE_CRON')) +if ((empty($_POST) && !defined('IN_ADMIN') && !defined('IN_AJAX') && !file_exists(CRON_RUNNING) && ($di->config->get('cron_enabled') || defined('START_CRON'))) || defined('FORCE_CRON')) { - if (TIMENOW - $bb_cfg['cron_last_check'] > $bb_cfg['cron_check_interval']) + if (TIMENOW - $di->config->get('cron_last_check') > $di->config->get('cron_check_interval')) { // Update cron_last_check bb_update_config(array('cron_last_check' => (TIMENOW + 10))); @@ -452,10 +362,10 @@ if ((empty($_POST) && !defined('IN_ADMIN') && !defined('IN_AJAX') && !file_exist } // Exit if board is disabled via ON/OFF trigger or by admin -if (($bb_cfg['board_disable'] || file_exists(BB_DISABLED)) && !defined('IN_ADMIN') && !defined('IN_AJAX') && !defined('IN_LOGIN')) +if (($di->config->get('board_disable') || file_exists(BB_DISABLED)) && !defined('IN_ADMIN') && !defined('IN_AJAX') && !defined('IN_LOGIN')) { header('HTTP/1.0 503 Service Unavailable'); - if ($bb_cfg['board_disable']) + if ($di->config->get('board_disable')) { // admin lock send_no_cache_headers(); @@ -485,7 +395,7 @@ function cron_release_deadlock () function cron_release_file_lock () { - $lock_released = rename(CRON_RUNNING, CRON_ALLOWED); + rename(CRON_RUNNING, CRON_ALLOWED); cron_touch_lock_file(CRON_ALLOWED); } diff --git a/library/includes/online_userlist.php b/library/includes/online_userlist.php index f697b6b4a..a9d0994c2 100644 --- a/library/includes/online_userlist.php +++ b/library/includes/online_userlist.php @@ -134,7 +134,7 @@ else if (isset($_REQUEST['f'])) $total_online = $logged_online + $guests_online; -if ($total_online > $bb_cfg['record_online_users']) +if ($total_online > $di->config->get('record_online_users')) { bb_update_config(array( 'record_online_users' => $total_online, diff --git a/library/includes/page_footer.php b/library/includes/page_footer.php index 740823672..0214702a9 100644 --- a/library/includes/page_footer.php +++ b/library/includes/page_footer.php @@ -2,7 +2,7 @@ if (!defined('BB_ROOT')) die(basename(__FILE__)); -global $bb_cfg, $userdata, $template, $DBS, $lang; +global $userdata, $template, $DBS, $lang; /** @var \TorrentPier\Di $di */ $di = \TorrentPier\Di::getInstance(); @@ -25,7 +25,7 @@ if (!empty($template)) $show_dbg_info = (DBG_USER && IS_ADMIN && !(isset($_GET['pane']) && $_GET['pane'] == 'left')); -if(!$bb_cfg['gzip_compress']) +if(!$di->config->get('gzip_compress')) { flush(); } @@ -35,7 +35,7 @@ if ($show_dbg_info) $gen_time = utime() - TIMESTART; $gen_time_txt = sprintf('%.3f', $gen_time); $gzip_text = (UA_GZIP_SUPPORTED) ? 'GZIP ' : 'GZIP '; - $gzip_text .= ($bb_cfg['gzip_compress']) ? $lang['ON'] : $lang['OFF']; + $gzip_text .= ($di->config->get('gzip_compress')) ? $lang['ON'] : $lang['OFF']; $stat = '[  '. $lang['EXECUTION_TIME'] ." $gen_time_txt ". $lang['SEC']; @@ -50,7 +50,7 @@ if ($show_dbg_info) $stat .= "  |  $gzip_text"; $stat .= '  |  '.$lang['MEMORY']; - $stat .= humn_size($bb_cfg['mem_on_start'], 2) .' / '; + $stat .= humn_size($di->config->get('mem_on_start'), 2) .' / '; $stat .= humn_size(sys('mem_peak'), 2) .' / '; $stat .= humn_size(sys('mem'), 2); diff --git a/library/includes/page_header.php b/library/includes/page_header.php index 50a7947e1..9e99fd64a 100644 --- a/library/includes/page_header.php +++ b/library/includes/page_header.php @@ -5,7 +5,7 @@ if (defined('PAGE_HEADER_SENT')) return; // Parse and show the overall page header -global $page_cfg, $userdata, $user, $bb_cfg, $template, $lang, $images; +global $page_cfg, $userdata, $user, $template, $lang, $images; /** @var \TorrentPier\Di $di */ $di = \TorrentPier\Di::getInstance(); @@ -48,7 +48,7 @@ if (defined('SHOW_ONLINE') && SHOW_ONLINE) 'TOTAL_USERS_ONLINE' => ${$online_list}['stat'], 'LOGGED_IN_USER_LIST' => ${$online_list}['userlist'], 'USERS_ONLINE_COUNTS' => ${$online_list}['cnt'], - 'RECORD_USERS' => sprintf($lang['RECORD_ONLINE_USERS'], $bb_cfg['record_online_users'], bb_date($bb_cfg['record_online_date'])), + 'RECORD_USERS' => sprintf($lang['RECORD_ONLINE_USERS'], $di->config->get('record_online_users'), bb_date($di->config->get('record_online_date'))), )); } @@ -113,7 +113,7 @@ $template->assign_vars(array( // The following assigns all _common_ variables that may be used at any point in a template $template->assign_vars(array( 'SIMPLE_HEADER' => !empty($gen_simple_header), - 'CONTENT_ENCODING' => $bb_cfg['lang'][$userdata['user_lang']]['encoding'], + 'CONTENT_ENCODING' => $di->config->get('lang.' . $userdata['user_lang'] . '.encoding'), 'IN_ADMIN' => defined('IN_ADMIN'), 'USER_HIDE_CAT' => (BB_SCRIPT == 'index'), @@ -125,9 +125,9 @@ $template->assign_vars(array( 'USE_TABLESORTER' => !empty($page_cfg['use_tablesorter']), - 'SITENAME' => $bb_cfg['sitename'], + 'SITENAME' => $di->config->get('sitename'), 'U_INDEX' => BB_ROOT ."index.php", - 'T_INDEX' => sprintf($lang['FORUM_INDEX'], $bb_cfg['sitename']), + 'T_INDEX' => sprintf($lang['FORUM_INDEX'], $di->config->get('sitename')), 'IS_GUEST' => IS_GUEST, 'IS_USER' => IS_USER, @@ -138,9 +138,9 @@ $template->assign_vars(array( 'FORUM_PATH' => FORUM_PATH, 'FULL_URL' => FULL_URL, - 'CURRENT_TIME' => sprintf($lang['CURRENT_TIME'], bb_date(TIMENOW, $bb_cfg['last_visit_date_format'], false)), - 'S_TIMEZONE' => preg_replace('/\(.*?\)/', '', sprintf($lang['ALL_TIMES'], $lang['TZ'][str_replace(',', '.', floatval($bb_cfg['board_timezone']))])), - 'BOARD_TIMEZONE' => $bb_cfg['board_timezone'], + 'CURRENT_TIME' => sprintf($lang['CURRENT_TIME'], bb_date(TIMENOW, $di->config->get('last_visit_date_format'), false)), + 'S_TIMEZONE' => preg_replace('/\(.*?\)/', '', sprintf($lang['ALL_TIMES'], $lang['TZ'][str_replace(',', '.', floatval($di->config->get('board_timezone')))])), + 'BOARD_TIMEZONE' => $di->config->get('board_timezone'), 'PM_INFO' => $pm_info, 'PRIVMSG_IMG' => $icon_pm, @@ -151,7 +151,7 @@ $template->assign_vars(array( 'THIS_USER' => profile_url($userdata), 'THIS_AVATAR' => get_avatar($userdata['user_id'], $userdata['avatar_ext_id'], !bf($userdata['user_opt'], 'user_opt', 'dis_avatar')), 'SHOW_LOGIN_LINK' => !defined('IN_LOGIN'), - 'AUTOLOGIN_DISABLED' => !$bb_cfg['allow_autologin'], + 'AUTOLOGIN_DISABLED' => !$di->config->get('allow_autologin'), 'S_LOGIN_ACTION' => LOGIN_URL, 'U_CUR_DOWNLOADS' => PROFILE_URL . $userdata['user_id'], @@ -167,11 +167,11 @@ $template->assign_vars(array( 'U_REGISTER' => "profile.php?mode=register", 'U_SEARCH' => "search.php", 'U_SEND_PASSWORD' => "profile.php?mode=sendpassword", - 'U_TERMS' => $bb_cfg['terms_and_conditions_url'], + 'U_TERMS' => $di->config->get('terms_and_conditions_url'), 'U_TRACKER' => "tracker.php", - 'SHOW_SIDEBAR1' => (!empty($page_cfg['show_sidebar1'][BB_SCRIPT]) || $bb_cfg['show_sidebar1_on_every_page']), - 'SHOW_SIDEBAR2' => (!empty($page_cfg['show_sidebar2'][BB_SCRIPT]) || $bb_cfg['show_sidebar2_on_every_page']), + 'SHOW_SIDEBAR1' => (!empty($page_cfg['show_sidebar1'][BB_SCRIPT]) || $di->config->get('show_sidebar1_on_every_page')), + 'SHOW_SIDEBAR2' => (!empty($page_cfg['show_sidebar2'][BB_SCRIPT]) || $di->config->get('show_sidebar2_on_every_page')), 'HTML_AGREEMENT' => LANG_DIR . 'html/user_agreement.html', 'HTML_COPYRIGHT' => LANG_DIR . 'html/copyright_holders.html', @@ -185,11 +185,11 @@ $template->assign_vars(array( 'DOWNLOAD_URL' => BB_ROOT . DOWNLOAD_URL, 'FORUM_URL' => BB_ROOT . FORUM_URL, 'GROUP_URL' => BB_ROOT . GROUP_URL, - 'LOGIN_URL' => $bb_cfg['login_url'], + 'LOGIN_URL' => $di->config->get('login_url'), 'NEWEST_URL' => '&view=newest#newest', - 'PM_URL' => $bb_cfg['pm_url'], + 'PM_URL' => $di->config->get('pm_url'), 'POST_URL' => BB_ROOT . POST_URL, - 'POSTING_URL' => $bb_cfg['posting_url'], + 'POSTING_URL' => $di->config->get('posting_url'), 'PROFILE_URL' => BB_ROOT . PROFILE_URL, 'TOPIC_URL' => BB_ROOT . TOPIC_URL, @@ -259,7 +259,7 @@ $template->pparse('page_header'); define('PAGE_HEADER_SENT', true); -if (!$bb_cfg['gzip_compress']) +if (!$di->config->get('gzip_compress')) { flush(); } \ No newline at end of file diff --git a/library/includes/sessions.php b/library/includes/sessions.php index 2bc93a3f7..489a7cacc 100644 --- a/library/includes/sessions.php +++ b/library/includes/sessions.php @@ -79,7 +79,8 @@ class user_common */ function session_start ($cfg = array()) { - global $bb_cfg; + /** @var \TorrentPier\Di $di */ + $di = \TorrentPier\Di::getInstance(); $update_sessions_table = false; $this->cfg = array_merge($this->cfg, $cfg); @@ -100,7 +101,7 @@ class user_common { $SQL['WHERE'][] = "s.session_id = '$session_id'"; - if ($bb_cfg['torhelp_enabled']) + if ($di->config->get('torhelp_enabled')) { $SQL['SELECT'][] = "th.topic_id_csv AS torhelp"; $SQL['LEFT JOIN'][] = BB_BT_TORHELP ." th ON(u.user_id = th.user_id)"; @@ -120,7 +121,7 @@ class user_common { $this->data = DB()->fetch_row($SQL); - if ($this->data && (TIMENOW - $this->data['session_time']) > $bb_cfg['session_update_intrv']) + if ($this->data && (TIMENOW - $this->data['session_time']) > $di->config->get('session_update_intrv')) { $this->data['session_time'] = TIMENOW; $update_sessions_table = true; @@ -169,7 +170,7 @@ class user_common if (!$this->data) { $login = false; - $user_id = ($bb_cfg['allow_autologin'] && $this->sessiondata['uk'] && $this->sessiondata['uid']) ? $this->sessiondata['uid'] : GUEST_UID; + $user_id = ($di->config->get('allow_autologin') && $this->sessiondata['uk'] && $this->sessiondata['uid']) ? $this->sessiondata['uid'] : GUEST_UID; if ($userdata = get_userdata(intval($user_id), false, true)) { @@ -195,7 +196,7 @@ class user_common define('IS_CP_HOLDER', (!IS_GUEST && $this->data['user_level'] == CP_HOLDER)); define('IS_GROUP_MEMBER', (!IS_GUEST && $this->data['user_level'] == GROUP_MEMBER)); define('IS_USER', (!IS_GUEST && $this->data['user_level'] == USER)); - define('IS_SUPER_ADMIN', (IS_ADMIN && isset($bb_cfg['super_admins'][$this->data['user_id']]))); + define('IS_SUPER_ADMIN', (IS_ADMIN && $di->config->get('super_admins.' . $this->data['user_id']))); define('IS_AM', (IS_ADMIN || IS_MOD)); $this->set_shortcuts(); @@ -221,7 +222,8 @@ class user_common */ function session_create ($userdata, $auto_created = false) { - global $bb_cfg; + /** @var \TorrentPier\Di $di */ + $di = \TorrentPier\Di::getInstance(); $this->data = $userdata; $session_id = $this->sessiondata['sid']; @@ -282,9 +284,9 @@ class user_common $last_visit = TIMENOW; define('FIRST_LOGON', true); } - else if ($session_time < (TIMENOW - $bb_cfg['last_visit_update_intrv'])) + else if ($session_time < (TIMENOW - $di->config->get('last_visit_update_intrv'))) { - $last_visit = max($session_time, (TIMENOW - 86400*$bb_cfg['max_last_visit_days'])); + $last_visit = max($session_time, (TIMENOW - 86400*$di->config->get('max_last_visit_days'))); } if ($last_visit != $this->data['user_lastvisit']) @@ -304,7 +306,7 @@ class user_common $this->data['user_lastvisit'] = $last_visit; } - if (!empty($_POST['autologin']) && $bb_cfg['allow_autologin']) + if (!empty($_POST['autologin']) && $di->config->get('allow_autologin')) { if (!$auto_created) { @@ -481,7 +483,8 @@ class user_common */ function set_session_cookies ($user_id) { - global $bb_cfg; + /** @var \TorrentPier\Di $di */ + $di = \TorrentPier\Di::getInstance(); if ($user_id == GUEST_UID) { @@ -511,7 +514,7 @@ class user_common { bb_setcookie(COOKIE_DATA, $c_sdata_curr, COOKIE_PERSIST, true); } - if (isset($bb_cfg['dbg_users'][$this->data['user_id']]) && !isset($_COOKIE[COOKIE_DBG])) + if ($di->config->get('dbg_users.' . $this->data['user_id']) && !isset($_COOKIE[COOKIE_DBG])) { bb_setcookie(COOKIE_DBG, 1, COOKIE_SESSION); } @@ -529,7 +532,8 @@ class user_common */ function verify_autologin_id ($userdata, $expire_check = false, $create_new = true) { - global $bb_cfg; + /** @var \TorrentPier\Di $di */ + $di = \TorrentPier\Di::getInstance(); $autologin_id = $userdata['autologin_id']; @@ -539,9 +543,9 @@ class user_common { return $this->create_autologin_id($userdata); } - else if ($autologin_id && $userdata['user_session_time'] && $bb_cfg['max_autologin_time']) + else if ($autologin_id && $userdata['user_session_time'] && $di->config->get('max_autologin_time')) { - if (TIMENOW - $userdata['user_session_time'] > $bb_cfg['max_autologin_time']*86400) + if (TIMENOW - $userdata['user_session_time'] > $di->config->get('max_autologin_time')*86400) { return $this->create_autologin_id($userdata, $create_new); } @@ -594,34 +598,31 @@ class user_common */ function init_userprefs () { - global $bb_cfg, $theme, $lang, $DeltaTime; + global $theme, $lang, $DeltaTime; + + /** @var \TorrentPier\Di $di */ + $di = \TorrentPier\Di::getInstance(); if (defined('LANG_DIR')) return; // prevent multiple calling - define('DEFAULT_LANG_DIR', LANG_ROOT_DIR . $bb_cfg['default_lang'] .'/'); + define('DEFAULT_LANG_DIR', LANG_ROOT_DIR . $di->config->get('default_lang') .'/'); define('ENGLISH_LANG_DIR', LANG_ROOT_DIR .'en/'); if ($this->data['user_id'] != GUEST_UID) { - if ($this->data['user_lang'] && $this->data['user_lang'] != $bb_cfg['default_lang']) + if ($this->data['user_lang'] && $this->data['user_lang'] != $di->config->get('default_lang')) { - $bb_cfg['default_lang'] = basename($this->data['user_lang']); - define('LANG_DIR', LANG_ROOT_DIR . $bb_cfg['default_lang'] .'/'); - } - - if (isset($this->data['user_timezone'])) - { - $bb_cfg['board_timezone'] = $this->data['user_timezone']; + define('LANG_DIR', LANG_ROOT_DIR . basename($this->data['user_lang']) .'/'); } } - $this->data['user_lang'] = $bb_cfg['default_lang']; - $this->data['user_timezone'] = $bb_cfg['board_timezone']; + $this->data['user_lang'] = $di->config->get('default_lang'); + $this->data['user_timezone'] = $di->config->get('board_timezone'); if (!defined('LANG_DIR')) define('LANG_DIR', DEFAULT_LANG_DIR); require(LANG_DIR .'main.php'); - setlocale(LC_ALL, $bb_cfg['lang'][$this->data['user_lang']]['locale']); + setlocale(LC_ALL, $di->config->get('lang.' . $this->data['user_lang'] . '.locale')); $theme = setup_style(); $DeltaTime = new Date_Delta(); diff --git a/library/includes/smtp.php b/library/includes/smtp.php index 7bf5679be..26cff7680 100644 --- a/library/includes/smtp.php +++ b/library/includes/smtp.php @@ -24,7 +24,8 @@ function server_parse($socket, $response, $line = __LINE__) // Replacement or substitute for PHP's mail command function smtpmail($mail_to, $subject, $message, $headers = '') { - global $bb_cfg; + /** @var \TorrentPier\Di $di */ + $di = \TorrentPier\Di::getInstance(); // Fix any bare linefeeds in the message to make it RFC821 Compliant. $message = preg_replace("#(?config->get('smtp_ssl')) ? 'ssl://' : ''; + if( !$socket = fsockopen($ssl . $di->config->get('smtp_host'), $di->config->get('smtp_port'), $errno, $errstr, 20) ) { bb_die('Could not connect to smtp host : '. $errno .' : '. $errstr); } @@ -95,29 +96,29 @@ function smtpmail($mail_to, $subject, $message, $headers = '') // Do we want to use AUTH?, send RFC2554 EHLO, else send RFC821 HELO // This improved as provided by SirSir to accomodate - if( !empty($bb_cfg['smtp_username']) && !empty($bb_cfg['smtp_password']) ) + if( !empty($di->config->get('smtp_username')) && !empty($di->config->get('smtp_password')) ) { - fputs($socket, "EHLO " . $bb_cfg['smtp_host'] . "\r\n"); + fputs($socket, "EHLO " . $di->config->get('smtp_host') . "\r\n"); server_parse($socket, "250", __LINE__); fputs($socket, "AUTH LOGIN\r\n"); server_parse($socket, "334", __LINE__); - fputs($socket, base64_encode($bb_cfg['smtp_username']) . "\r\n"); + fputs($socket, base64_encode($di->config->get('smtp_username')) . "\r\n"); server_parse($socket, "334", __LINE__); - fputs($socket, base64_encode($bb_cfg['smtp_password']) . "\r\n"); + fputs($socket, base64_encode($di->config->get('smtp_password')) . "\r\n"); server_parse($socket, "235", __LINE__); } else { - fputs($socket, "HELO " . $bb_cfg['smtp_host'] . "\r\n"); + fputs($socket, "HELO " . $di->config->get('smtp_host') . "\r\n"); server_parse($socket, "250", __LINE__); } // From this point onward most server response codes should be 250 // Specify who the mail is from.... - fputs($socket, "MAIL FROM: <" . $bb_cfg['board_email'] . ">\r\n"); + fputs($socket, "MAIL FROM: <" . $di->config->get('board_email') . ">\r\n"); server_parse($socket, "250", __LINE__); // Add an additional bit of error checking to the To field. diff --git a/library/includes/template.php b/library/includes/template.php index 22bca933a..a8d6e70b4 100644 --- a/library/includes/template.php +++ b/library/includes/template.php @@ -93,7 +93,10 @@ class Template */ function Template($root = '.') { - global $bb_cfg, $lang; + global $lang; + + /** @var \TorrentPier\Di $di */ + $di = \TorrentPier\Di::getInstance(); // setting pointer "vars" $this->vars = &$this->_tpldata['.'][0]; @@ -102,7 +105,7 @@ class Template $this->root = $root; $this->tpl = basename($root); $this->lang =& $lang; - $this->use_cache = $bb_cfg['xs_use_cache']; + $this->use_cache = $di->config->get('xs_use_cache'); } /** @@ -227,7 +230,10 @@ class Template { $this->cur_tpl = $filename; - global $lang, $bb_cfg, $user, $tr_cfg; + global $lang, $user, $tr_cfg; + + /** @var \TorrentPier\Di $di */ + $di = \TorrentPier\Di::getInstance(); $L =& $lang; $V =& $this->vars; @@ -1063,12 +1069,13 @@ class Template function xs_startup() { - global $bb_cfg; + /** @var \TorrentPier\Di $di */ + $di = \TorrentPier\Di::getInstance(); if (empty($this->xs_started)) { $this->xs_started = 1; // Adding language variable - $this->vars['LANG'] = isset($this->vars['LANG']) ? $this->vars['LANG'] : $bb_cfg['default_lang']; + $this->vars['LANG'] = isset($this->vars['LANG']) ? $this->vars['LANG'] : $di->config->get('default_lang'); // Adding current template $tpl = $this->root . '/'; if (substr($tpl, 0, 2) === './') { diff --git a/library/includes/torrent_show_dl_list.php b/library/includes/torrent_show_dl_list.php index 458172e01..c29105237 100644 --- a/library/includes/torrent_show_dl_list.php +++ b/library/includes/torrent_show_dl_list.php @@ -15,11 +15,11 @@ $dl_users_div_style_overflow = "padding: 6px; height: $dl_users_overflow_div_he $template->assign_vars(array('DL_BUTTONS' => false)); -$count_mode = ($bb_cfg['bt_dl_list_only_count'] && !($di->request->get('dl') === 'names')); +$count_mode = ($di->config->get('bt_dl_list_only_count') && !($di->request->get('dl') === 'names')); -$dl_topic = (isset($t_data['tracker_status']) && !($bb_cfg['bt_dl_list_only_1st_page'] && $start)); -$show_dl_list = ($dl_topic && ($bb_cfg['bt_show_dl_list'] || ($bb_cfg['allow_dl_list_names_mode'] && $di->request->get('dl') === 'names'))); -$show_dl_buttons = ($dl_topic && $bb_cfg['bt_show_dl_list_buttons']); +$dl_topic = (isset($t_data['tracker_status']) && !($di->config->get('bt_dl_list_only_1st_page') && $start)); +$show_dl_list = ($dl_topic && ($di->config->get('bt_show_dl_list') || ($di->config->get('allow_dl_list_names_mode') && $di->request->get('dl') === 'names'))); +$show_dl_buttons = ($dl_topic && $di->config->get('bt_show_dl_list_buttons')); // link to clear DL-List $template->assign_vars(array('S_DL_DELETE' => false)); @@ -122,10 +122,10 @@ if ($show_dl_buttons) { $template->assign_vars(array( 'DL_BUTTONS' => true, - 'DL_BUT_WILL' => $bb_cfg['bt_show_dl_but_will'], - 'DL_BUT_DOWN' => $bb_cfg['bt_show_dl_but_down'], - 'DL_BUT_COMPL' => $bb_cfg['bt_show_dl_but_compl'], - 'DL_BUT_CANCEL' => $bb_cfg['bt_show_dl_but_cancel'], + 'DL_BUT_WILL' => $di->config->get('bt_show_dl_but_will'), + 'DL_BUT_DOWN' => $di->config->get('bt_show_dl_but_down'), + 'DL_BUT_COMPL' => $di->config->get('bt_show_dl_but_compl'), + 'DL_BUT_CANCEL' => $di->config->get('bt_show_dl_but_cancel'), )); $dl_hidden_fields = ' diff --git a/library/includes/ucp/bonus.php b/library/includes/ucp/bonus.php index b1e3fd290..e6905ed9c 100644 --- a/library/includes/ucp/bonus.php +++ b/library/includes/ucp/bonus.php @@ -2,13 +2,16 @@ if (!defined('BB_ROOT')) die(basename(__FILE__)); +/** @var \TorrentPier\Di $di */ +$di = \TorrentPier\Di::getInstance(); + $user_id = $userdata['user_id']; $user_points = $userdata['user_points']; -if($bb_cfg['seed_bonus_enabled'] && $bb_cfg['bonus_upload'] && $bb_cfg['bonus_upload_price']) +if($di->config->get('seed_bonus_enabled') && $di->config->get('bonus_upload') && $di->config->get('bonus_upload_price')) { - $upload_row = unserialize($bb_cfg['bonus_upload']); - $price_row = unserialize($bb_cfg['bonus_upload_price']); + $upload_row = unserialize($di->config->get('bonus_upload')); + $price_row = unserialize($di->config->get('bonus_upload_price')); } else bb_die($lang['EXCHANGE_NOT']); diff --git a/library/includes/ucp/email.php b/library/includes/ucp/email.php index 2022dca34..ead271a56 100644 --- a/library/includes/ucp/email.php +++ b/library/includes/ucp/email.php @@ -2,8 +2,11 @@ if (!defined('BB_ROOT')) die(basename(__FILE__)); +/** @var \TorrentPier\Di $di */ +$di = \TorrentPier\Di::getInstance(); + // Is send through board enabled? No, return to index -if (!$bb_cfg['board_email_form']) +if (!$di->config->get('board_email_form')) { redirect("index.php"); } @@ -50,7 +53,7 @@ if ($row = DB()->fetch_row($sql)) if (!$errors) { require(CLASS_DIR .'emailer.php'); - $emailer = new emailer($bb_cfg['smtp_delivery']); + $emailer = new emailer($di->config->get('smtp_delivery')); $emailer->from($userdata['username'] ." <{$userdata['user_email']}>"); $emailer->email_address($username ." <$user_email>"); @@ -59,7 +62,7 @@ if ($row = DB()->fetch_row($sql)) $emailer->set_subject($subject); $emailer->assign_vars(array( - 'SITENAME' => $bb_cfg['sitename'], + 'SITENAME' => $di->config->get('sitename'), 'FROM_USERNAME' => $userdata['username'], 'TO_USERNAME' => $username, 'MESSAGE' => $message, diff --git a/library/includes/ucp/register.php b/library/includes/ucp/register.php index 966c0da45..324833138 100644 --- a/library/includes/ucp/register.php +++ b/library/includes/ucp/register.php @@ -2,14 +2,15 @@ if (!defined('BB_ROOT')) die(basename(__FILE__)); +/** @var \TorrentPier\Di $di */ +$di = \TorrentPier\Di::getInstance(); + array_deep($_POST, 'trim'); set_die_append_msg(); if (IS_ADMIN) { - $bb_cfg['reg_email_activation'] = false; - $new_user = (int) request_var('admin', ''); if ($new_user) $gen_simple_header = true; @@ -18,19 +19,21 @@ if (IS_ADMIN) )); } +$req_email_activation = (IS_ADMIN) ? false : $di->config->get('reg_email_activation'); + $can_register = (IS_GUEST || IS_ADMIN); $submit = !empty($_POST['submit']); -$errors = array(); +$errors = []; $adm_edit = false; // редактирование админом чужого профиля require(INC_DIR .'bbcode.php'); require(INC_DIR .'functions_validate.php'); require(INC_DIR .'functions_selects.php'); -$pr_data = array(); // данные редактируемого либо регистрационного профиля -$db_data = array(); // данные для базы: регистрационные либо измененные данные юзера -$tp_data = array(); // данные для tpl +$pr_data = []; // данные редактируемого либо регистрационного профиля +$db_data = []; // данные для базы: регистрационные либо измененные данные юзера +$tp_data = []; // данные для tpl // Данные профиля switch ($mode) @@ -44,20 +47,20 @@ switch ($mode) if (!IS_ADMIN) { // Ограничение по ip - if($bb_cfg['unique_ip']) + if($di->config->get('unique_ip')) { if($users = DB()->fetch_row("SELECT user_id, username FROM ". BB_USERS ." WHERE user_reg_ip = '". USER_IP ."' LIMIT 1")) { - bb_die(sprintf($lang['ALREADY_REG_IP'], ''. $users['username'] .'', $bb_cfg['tech_admin_email'])); + bb_die(sprintf($lang['ALREADY_REG_IP'], ''. $users['username'] .'', $di->config->get('tech_admin_email'))); } } // Отключение регистрации - if ($bb_cfg['new_user_reg_disabled'] || ($bb_cfg['reg_email_activation'] && $bb_cfg['emailer_disabled'])) + if ($di->config->get('new_user_reg_disabled') || ($req_email_activation && $di->config->get('emailer_disabled'))) { bb_die($lang['NEW_USER_REG_DISABLED']); } // Ограничение по времени - else if ($bb_cfg['new_user_reg_restricted']) + else if ($di->config->get('new_user_reg_restricted')) { if (in_array(date('G'), array(0,/*1,2,3,4,5,6,7,8,11,12,13,14,15,16,*/17,18,19,20,21,22,23))) { @@ -81,8 +84,8 @@ switch ($mode) 'username' => '', 'user_password' => '', 'user_email' => '', - 'user_timezone' => $bb_cfg['board_timezone'], - 'user_lang' => $bb_cfg['default_lang'], + 'user_timezone' => $di->config->get('board_timezone'), + 'user_lang' => $di->config->get('default_lang'), 'user_opt' => 0, 'avatar_ext_id' => 0, ); @@ -97,7 +100,7 @@ switch ($mode) // field => can_edit $profile_fields = array( 'user_active' => IS_ADMIN, - 'username' => (IS_ADMIN || $bb_cfg['allow_namechange']), + 'username' => (IS_ADMIN || $di->config->get('allow_namechange')), 'user_password' => true, 'user_email' => true, // должен быть после user_password 'user_lang' => true, @@ -149,7 +152,7 @@ switch ($mode) } // Captcha -$need_captcha = ($mode == 'register' && !IS_ADMIN && !$bb_cfg['captcha']['disabled']); +$need_captcha = ($mode == 'register' && !IS_ADMIN && !$di->config->get('captcha.disabled')); if ($submit) { @@ -279,7 +282,7 @@ foreach ($profile_fields as $field => $can_edit) { $errors[] = $err; } - if ($bb_cfg['reg_email_activation']) + if ($req_email_activation) { $pr_data['user_active'] = 0; $db_data['user_active'] = 0; @@ -346,13 +349,13 @@ foreach ($profile_fields as $field => $can_edit) { $errors[] = $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')) { - $errors[] = sprintf($lang['BIRTHDAY_TO_HIGH'], $bb_cfg['birthday_max_age']); + $errors[] = 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')) { - $errors[] = sprintf($lang['BIRTHDAY_TO_LOW'], $bb_cfg['birthday_min_age']); + $errors[] = sprintf($lang['BIRTHDAY_TO_LOW'], $di->config->get('birthday_min_age')); } } @@ -409,12 +412,12 @@ foreach ($profile_fields as $field => $can_edit) $pr_data['avatar_ext_id'] = 0; $db_data['avatar_ext_id'] = 0; } - else if (!empty($_FILES['avatar']['name']) && $bb_cfg['avatars']['up_allowed']) + elseif (!empty($_FILES['avatar']['name']) && $di->config->get('avatars.up_allowed')) { require(INC_DIR .'functions_upload.php'); $upload = new upload_common(); - if ($upload->init($bb_cfg['avatars'], $_FILES['avatar']) && $upload->store('avatar', $pr_data)) + if ($upload->init($di->config->get('avatars'), $_FILES['avatar']) && $upload->store('avatar', $pr_data)) { $pr_data['avatar_ext_id'] = $upload->file_ext_id; $db_data['avatar_ext_id'] = (int) $upload->file_ext_id; @@ -425,7 +428,7 @@ foreach ($profile_fields as $field => $can_edit) } } } - $tp_data['AVATARS_MAX_SIZE'] = humn_size($bb_cfg['avatars']['max_size']); + $tp_data['AVATARS_MAX_SIZE'] = humn_size($di->config->get('avatars.max_size')); break; /** @@ -494,7 +497,7 @@ foreach ($profile_fields as $field => $can_edit) { $sig = prepare_message($sig); - if (mb_strlen($sig, 'UTF-8') > $bb_cfg['max_sig_chars']) + if (mb_strlen($sig, 'UTF-8') > $di->config->get('max_sig_chars')) { $errors[] = $lang['SIGNATURE_TOO_LONG']; } @@ -579,9 +582,9 @@ foreach ($profile_fields as $field => $can_edit) $templates = htmlCHR($templates); if ($submit && $templates != $pr_data['tpl_name']) { - $pr_data['tpl_name'] = $bb_cfg['tpl_name']; - $db_data['tpl_name'] = (string) $bb_cfg['tpl_name']; - foreach ($bb_cfg['templates'] as $folder => $name) + $pr_data['tpl_name'] = $di->config->get('tpl_name'); + $db_data['tpl_name'] = (string) $di->config->get('tpl_name'); + foreach ($di->config->get('templates') as $folder => $name) { if ($templates == $folder) { @@ -609,7 +612,7 @@ if ($submit && !$errors) */ if ($mode == 'register') { - if ($bb_cfg['reg_email_activation']) + if ($req_email_activation) { $user_actkey = make_rand_str(12); $db_data['user_active'] = 0; @@ -624,7 +627,7 @@ if ($submit && !$errors) if (!IS_ADMIN) $db_data['user_reg_ip'] = USER_IP; - if (!isset($db_data['tpl_name'])) $db_data['tpl_name'] = (string) $bb_cfg['tpl_name']; + if (!isset($db_data['tpl_name'])) $db_data['tpl_name'] = (string) $di->config->get('tpl_name'); $sql_args = DB()->build_array('INSERT', $db_data); @@ -638,7 +641,7 @@ if ($submit && !$errors) } else { - if ($bb_cfg['reg_email_activation']) + if ($req_email_activation) { $message = $lang['ACCOUNT_INACTIVE']; $email_template = 'user_welcome_inactive'; @@ -650,15 +653,15 @@ if ($submit && !$errors) } 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($username ." <{$email}>"); $emailer->use_template($email_template, $user_lang); $emailer->assign_vars(array( - 'SITENAME' => $bb_cfg['sitename'], - 'WELCOME_MSG' => sprintf($lang['WELCOME_SUBJECT'], $bb_cfg['sitename']), + 'SITENAME' => $di->config->get('sitename'), + 'WELCOME_MSG' => sprintf($lang['WELCOME_SUBJECT'], $di->config->get('sitename')), 'USERNAME' => html_entity_decode($username), 'PASSWORD' => $new_pass, 'U_ACTIVATE' => make_url('profile.php?mode=activate&' . POST_USERS_URL . '=' . $new_user_id . '&act_key=' . $db_data['user_actkey']) @@ -687,14 +690,14 @@ if ($submit && !$errors) $db_data['user_actkey'] = $user_actkey; 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($username ." <{$email}>"); $emailer->use_template('user_activate', $pr_data['user_lang']); $emailer->assign_vars(array( - 'SITENAME' => $bb_cfg['sitename'], + 'SITENAME' => $di->config->get('sitename'), 'USERNAME' => html_entity_decode($username), 'U_ACTIVATE' => make_url("profile.php?mode=activate&u={$pr_data['user_id']}&act_key=$user_actkey"), )); @@ -761,12 +764,12 @@ $template->assign_vars(array( 'TIMEZONE_SELECT' => tz_select($pr_data['user_timezone'], 'user_timezone'), 'USER_TIMEZONE' => $pr_data['user_timezone'], - 'AVATAR_EXPLAIN' => sprintf($lang['AVATAR_EXPLAIN'], $bb_cfg['avatars']['max_width'], $bb_cfg['avatars']['max_height'], (round($bb_cfg['avatars']['max_size'] / 1024))), + 'AVATAR_EXPLAIN' => sprintf($lang['AVATAR_EXPLAIN'], $di->config->get('avatars.max_width'), $di->config->get('avatars.max_height'), (round($di->config->get('avatars.max_size') / 1024))), 'AVATAR_DISALLOWED' => bf($pr_data['user_opt'], 'user_opt', 'dis_avatar'), - 'AVATAR_DIS_EXPLAIN' => sprintf($lang['AVATAR_DISABLE'], $bb_cfg['terms_and_conditions_url']), + 'AVATAR_DIS_EXPLAIN' => sprintf($lang['AVATAR_DISABLE'], $di->config->get('terms_and_conditions_url')), 'AVATAR_IMG' => get_avatar($pr_data['user_id'], $pr_data['avatar_ext_id'], !bf($pr_data['user_opt'], 'user_opt', 'dis_avatar')), - 'SIGNATURE_EXPLAIN' => sprintf($lang['SIGNATURE_EXPLAIN'], $bb_cfg['max_sig_chars']), + 'SIGNATURE_EXPLAIN' => sprintf($lang['SIGNATURE_EXPLAIN'], $di->config->get('max_sig_chars')), 'SIG_DISALLOWED' => bf($pr_data['user_opt'], 'user_opt', 'dis_sig'), 'PR_USER_ID' => $pr_data['user_id'], diff --git a/library/includes/ucp/sendpasswd.php b/library/includes/ucp/sendpasswd.php index 546177c77..9e244bb89 100644 --- a/library/includes/ucp/sendpasswd.php +++ b/library/includes/ucp/sendpasswd.php @@ -2,11 +2,14 @@ if (!defined('BB_ROOT')) die(basename(__FILE__)); +/** @var \TorrentPier\Di $di */ +$di = \TorrentPier\Di::getInstance(); + set_die_append_msg(); -if ($bb_cfg['emailer_disabled']) bb_die($lang['EMAILER_DISABLED']); +if ($di->config->get('emailer_disabled')) bb_die($lang['EMAILER_DISABLED']); -$need_captcha = ($_GET['mode'] == 'sendpassword' && !IS_ADMIN && !$bb_cfg['captcha']['disabled']); +$need_captcha = ($_GET['mode'] == 'sendpassword' && !IS_ADMIN && !$di->config->get('captcha.disabled')); if (isset($_POST['submit'])) { @@ -41,15 +44,15 @@ if (isset($_POST['submit'])) } 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("$username <{$row['user_email']}>"); $emailer->use_template('user_activate_passwd', $row['user_lang']); $emailer->assign_vars(array( - 'SITENAME' => $bb_cfg['sitename'], + 'SITENAME' => $di->config->get('sitename'), 'USERNAME' => $username, 'PASSWORD' => $user_password, 'U_ACTIVATE' => make_url('profile.php?mode=activate&' . POST_USERS_URL . '=' . $user_id . '&act_key=' . $user_actkey) diff --git a/library/includes/ucp/topic_watch.php b/library/includes/ucp/topic_watch.php index 4fad6c02b..1be7cb5c1 100644 --- a/library/includes/ucp/topic_watch.php +++ b/library/includes/ucp/topic_watch.php @@ -1,6 +1,9 @@ config->get('topic_notify_enabled'))) { bb_die($lang['DISABLED']); } @@ -11,7 +14,7 @@ $tracking_topics = get_tracks('topic'); $user_id = $userdata['user_id']; $start = isset($_GET['start']) ? abs(intval($_GET['start'])) : 0; -$per_page = $bb_cfg['topics_per_page']; +$per_page = $di->config->get('topics_per_page'); if (isset($_POST['topic_id_list'])) { @@ -77,7 +80,7 @@ if ($watch_count > 0) 'LAST_POST_ID' => $watch[$i]['topic_last_post_id'], 'IS_UNREAD' => $is_unread, 'TOPIC_ICON' => get_topic_icon($watch[$i], $is_unread), - 'PAGINATION' => ($watch[$i]['topic_status'] == TOPIC_MOVED) ? '' : build_topic_pagination(TOPIC_URL . $watch[$i]['topic_id'], $watch[$i]['topic_replies'], $bb_cfg['posts_per_page']), + 'PAGINATION' => ($watch[$i]['topic_status'] == TOPIC_MOVED) ? '' : build_topic_pagination(TOPIC_URL . $watch[$i]['topic_id'], $watch[$i]['topic_replies'], $di->config->get('posts_per_page')), )); } diff --git a/library/includes/ucp/viewprofile.php b/library/includes/ucp/viewprofile.php index b59bd5980..e7fea1d0d 100644 --- a/library/includes/ucp/viewprofile.php +++ b/library/includes/ucp/viewprofile.php @@ -2,6 +2,9 @@ if (!defined('BB_ROOT')) die(basename(__FILE__)); +/** @var \TorrentPier\Di $di */ +$di = \TorrentPier\Di::getInstance(); + require(INC_DIR .'bbcode.php'); $datastore->enqueue(array( @@ -47,7 +50,7 @@ if (IS_ADMIN) if (bf($profiledata['user_opt'], 'user_opt', 'user_viewemail') || $profiledata['user_id'] == $userdata['user_id'] || IS_AM) { - $email_uri = ($bb_cfg['board_email_form']) ? 'profile.php?mode=email&'. POST_USERS_URL .'='. $profiledata['user_id'] : 'mailto:'. $profiledata['user_email']; + $email_uri = ($di->config->get('board_email_form')) ? 'profile.php?mode=email&'. POST_USERS_URL .'='. $profiledata['user_id'] : 'mailto:'. $profiledata['user_email']; $email = ''. $profiledata['user_email'] .''; } else @@ -61,7 +64,7 @@ else $profile_user_id = ($profiledata['user_id'] == $userdata['user_id']); -$signature = ($bb_cfg['allow_sig'] && $profiledata['user_sig']) ? $profiledata['user_sig'] : ''; +$signature = ($di->config->get('allow_sig') && $profiledata['user_sig']) ? $profiledata['user_sig'] : ''; if(bf($profiledata['user_opt'], 'user_opt', 'dis_sig')) { @@ -103,9 +106,9 @@ $template->assign_vars(array( 'SKYPE' => $profiledata['user_skype'], 'TWITTER' => $profiledata['user_twitter'], 'USER_POINTS' => $profiledata['user_points'], - 'GENDER' => ($bb_cfg['gender']) ? $lang['GENDER_SELECT'][$profiledata['user_gender']] : '', - 'BIRTHDAY' => ($bb_cfg['birthday_enabled'] && $profiledata['user_birthday'] != '0000-00-00') ? $profiledata['user_birthday'] : '', - 'AGE' => ($bb_cfg['birthday_enabled'] && $profiledata['user_birthday'] != '0000-00-00') ? birthday_age($profiledata['user_birthday']) : '', + 'GENDER' => ($di->config->get('gender')) ? $lang['GENDER_SELECT'][$profiledata['user_gender']] : '', + 'BIRTHDAY' => ($di->config->get('birthday_enabled') && $profiledata['user_birthday'] != '0000-00-00') ? $profiledata['user_birthday'] : '', + 'AGE' => ($di->config->get('birthday_enabled') && $profiledata['user_birthday'] != '0000-00-00') ? birthday_age($profiledata['user_birthday']) : '', 'L_VIEWING_PROFILE' => sprintf($lang['VIEWING_USER_PROFILE'], $profiledata['username']), 'L_MY_PROFILE' => sprintf($lang['VIEWING_MY_PROFILE'], 'profile.php?mode=editprofile'), diff --git a/library/includes/viewtopic_torrent.php b/library/includes/viewtopic_torrent.php index 226e19912..b11c55747 100644 --- a/library/includes/viewtopic_torrent.php +++ b/library/includes/viewtopic_torrent.php @@ -2,7 +2,10 @@ if (!defined('BB_ROOT')) die(basename(__FILE__)); -global $bb_cfg, $t_data, $poster_id, $is_auth, $dl_link_css, $dl_status_css, $lang, $userdata; +global $t_data, $poster_id, $is_auth, $dl_link_css, $dl_status_css, $lang, $userdata; + +/** @var \TorrentPier\Di $di */ +$di = \TorrentPier\Di::getInstance(); $show_peers_limit = 300; $max_peers_before_overflow = 20; @@ -88,8 +91,8 @@ if ($tor_reged) $tor_magnet = create_magnet($tor_info['info_hash'], $passkey['auth_key'], $userdata['session_logged_in']); // ratio limits - $min_ratio_dl = $bb_cfg['bt_min_ratio_allow_dl_tor']; - $min_ratio_warn = $bb_cfg['bt_min_ratio_warning']; + $min_ratio_dl = $di->config->get('bt_min_ratio_allow_dl_tor'); + $min_ratio_warn = $di->config->get('bt_min_ratio_warning'); $dl_allowed = true; $user_ratio = 0; @@ -125,7 +128,7 @@ if ($tor_reged) { $template->assign_vars(array( 'SHOW_RATIO_WARN' => true, - 'RATIO_WARN_MSG' => sprintf($lang['BT_RATIO_WARNING_MSG'], $min_ratio_dl, $bb_cfg['ratio_url_help']), + 'RATIO_WARN_MSG' => sprintf($lang['BT_RATIO_WARNING_MSG'], $min_ratio_dl, $di->config->get('ratio_url_help')), )); } } @@ -140,15 +143,15 @@ if ($tor_reged) else { $template->assign_vars(array( - 'DOWNLOAD_NAME' => '['.$bb_cfg['server_name'].'].t' . $topic_id . '.torrent', + 'DOWNLOAD_NAME' => '[' . $di->config->get('server_name') . '].t' . $topic_id . '.torrent', 'TOR_SILVER_GOLD' => $tor_info['tor_type'], - 'TOR_FROZEN' => (!IS_AM) ? (isset($bb_cfg['tor_frozen'][$tor_info['tor_status']]) && !(isset($bb_cfg['tor_frozen_author_download'][$tor_info['tor_status']]) && $userdata['user_id'] == $tor_info['poster_id'])) ? true : '' : '', + 'TOR_FROZEN' => (!IS_AM) ? ($di->config->get('tor_frozen.' . $tor_info['tor_status']) && !($di->config->get('tor_frozen_author_download.' . $tor_info['tor_status'])) && $userdata['user_id'] == $tor_info['poster_id']) ? true : '' : '', 'TOR_STATUS_TEXT' => $lang['TOR_STATUS_NAME'][$tor_info['tor_status']], - 'TOR_STATUS_ICON' => $bb_cfg['tor_icons'][$tor_info['tor_status']], + 'TOR_STATUS_ICON' => $di->config->get('tor_icons.' . $tor_info['tor_status']), 'TOR_STATUS_BY' => ($tor_info['checked_user_id'] && $is_auth['auth_mod']) ? (' · '. profile_url($tor_info) .' · '. delta_time($tor_info['checked_time']) . $lang['TOR_BACK'] .'') : '', 'TOR_STATUS_SELECT' => build_select('sel_status', array_flip($lang['TOR_STATUS_NAME']), TOR_APPROVED), - 'TOR_STATUS_REPLY' => $bb_cfg['tor_comment'] && !IS_GUEST && in_array($tor_info['tor_status'], $bb_cfg['tor_reply']) && $userdata['user_id'] == $tor_info['poster_id'] && $t_data['topic_status'] != TOPIC_LOCKED, + 'TOR_STATUS_REPLY' => $di->config->get('tor_comment') && !IS_GUEST && in_array($tor_info['tor_status'], $di->config->get('tor_reply')) && $userdata['user_id'] == $tor_info['poster_id'] && $t_data['topic_status'] != TOPIC_LOCKED, 'DL_LINK_CLASS' => (isset($bt_userdata['user_status'])) ? $dl_link_css[$bt_userdata['user_status']] : 'genmed', 'DL_TITLE_CLASS' => (isset($bt_userdata['user_status'])) ? $dl_status_css[$bt_userdata['user_status']] : 'gen', @@ -499,7 +502,7 @@ if ($tor_reged) } } -if ($bb_cfg['bt_allow_spmode_change'] && $s_mode != 'full') +if ($di->config->get('bt_allow_spmode_change') && $s_mode != 'full') { $template->assign_vars(array( 'PEERS_FULL_LINK' => true, @@ -508,13 +511,13 @@ if ($bb_cfg['bt_allow_spmode_change'] && $s_mode != 'full') } $template->assign_vars(array( - 'SHOW_DL_LIST_LINK' => (($bb_cfg['bt_show_dl_list'] || $bb_cfg['allow_dl_list_names_mode']) && $t_data['tracker_status']), - 'SHOW_TOR_ACT' => ($tor_reged && (!isset($bb_cfg['tor_no_tor_act'][$tor_info['tor_status']]) || IS_AM)), + 'SHOW_DL_LIST_LINK' => (($di->config->get('bt_show_dl_list') || $di->config->get('allow_dl_list_names_mode')) && $t_data['tracker_status']), + 'SHOW_TOR_ACT' => ($tor_reged && (!$di->config->get('tor_no_tor_act.' . $tor_info['tor_status']) || IS_AM)), 'S_MODE_COUNT' => ($s_mode == 'count'), 'S_MODE_FULL' => ($s_mode == 'full'), 'PEER_EXIST' => ($seeders || $leechers || defined('SEEDER_EXIST') || defined('LEECHER_EXIST')), 'SEED_EXIST' => ($seeders || defined('SEEDER_EXIST')), 'LEECH_EXIST' => ($leechers || defined('LEECHER_EXIST')), - 'TOR_HELP_LINKS' => $bb_cfg['tor_help_links'], - 'CALL_SEED' => ($bb_cfg['callseed'] && $tor_reged && !isset($bb_cfg['tor_no_tor_act'][$tor_info['tor_status']]) && $seed_count < 3 && $tor_info['call_seed_time'] < (TIMENOW - 86400)), + 'TOR_HELP_LINKS' => $di->config->get('tor_help_links'), + 'CALL_SEED' => ($di->config->get('callseed') && $tor_reged && !$di->config->get('tor_no_tor_act.' . $tor_info['tor_status']) && $seed_count < 3 && $tor_info['call_seed_time'] < (TIMENOW - 86400)), )); \ No newline at end of file diff --git a/library/language/en/html/advert.html b/library/language/en/html/advert.html index 80632ba56..cc98a5fa2 100644 --- a/library/language/en/html/advert.html +++ b/library/language/en/html/advert.html @@ -1,4 +1,4 @@
-

Advertising on ">

-

For advertising please contact:

+

Advertising on config->get('server_name')}:{$di->config->get('server_port')}" : $di->config->get('server_name'); ?>">config->get('sitename')?>

+

For advertising please contact: config->get('adv_email'); ?>

\ No newline at end of file diff --git a/library/language/en/html/copyright_holders.html b/library/language/en/html/copyright_holders.html index 3c75a7380..572d1b8a0 100644 --- a/library/language/en/html/copyright_holders.html +++ b/library/language/en/html/copyright_holders.html @@ -22,11 +22,11 @@ which indicated to us the following information:

After that in 48 hours, we will remove interesting you links from the site.

-

Our email:

+

Our email: config->get('abuse_email'); ?>

WARNING!

-

a) We reserve the right to publish on the site of any information sent to us by mail

+

a) We reserve the right to publish on the site of any information sent to us by mail config->get('abuse_email'); ?>

b) We have no control over the actions of users who may be re-post links to information, which is the object of your copyright. Any information the forum, place automatically, without any control from any quarter whatsoever, which corresponds to the generally accepted international practice of placing information on the Internet. However, in any case, we consider all your queries regarding the reference to the information that violates your rights.

diff --git a/library/language/en/html/user_agreement.html b/library/language/en/html/user_agreement.html index eccce4738..fcbc40161 100644 --- a/library/language/en/html/user_agreement.html +++ b/library/language/en/html/user_agreement.html @@ -6,7 +6,7 @@

ABOUT SITE

-

Internet - resource (website) "> (hereinafter - Resource) is an internet site that allows users to share information with each other via bit-torrent, as well as in free form, and provides a means to monitor the integrity of information transmitted (via hash-files).

+

Internet - resource (website) config->get('server_name')}:{$di->config->get('server_port')}" : $di->config->get('server_name'); ?>">config->get('sitename')?> (hereinafter - Resource) is an internet site that allows users to share information with each other via bit-torrent, as well as in free form, and provides a means to monitor the integrity of information transmitted (via hash-files).

    diff --git a/library/language/ru/html/advert.html b/library/language/ru/html/advert.html index ffe7795b7..aa710ea44 100644 --- a/library/language/ru/html/advert.html +++ b/library/language/ru/html/advert.html @@ -1,4 +1,4 @@
    -

    Размещение рекламы на ">

    -

    По вопросам размещения рекламы обращайтесь по адресу:

    +

    Размещение рекламы на config->get('server_name')}:{$di->config->get('server_port')}" : $di->config->get('server_name'); ?>">config->get('sitename')?>

    +

    По вопросам размещения рекламы обращайтесь по адресу: config->get('adv_email'); ?>

    \ No newline at end of file diff --git a/library/language/ru/html/copyright_holders.html b/library/language/ru/html/copyright_holders.html index ebd5972d5..4e5efaa25 100644 --- a/library/language/ru/html/copyright_holders.html +++ b/library/language/ru/html/copyright_holders.html @@ -22,11 +22,11 @@

    После этого, в течении 48 часов, мы удалим интересующие Вас ссылки с сайта.

    -

    Наш email:

    +

    Наш email: config->get('abuse_email'); ?>

    ВНИМАНИЕ!

    -

    а) Мы оставляем за собой право публикации на сайте любой информации присланной нам по почте

    +

    а) Мы оставляем за собой право публикации на сайте любой информации присланной нам по почте config->get('abuse_email'); ?>

    б) Мы не осуществляем контроль за действиями пользователей, которые могут повторно размещать ссылки на информацию, являющуюся объектом вашего авторского права. Любая информация на форуме, размещается автоматически, без какого либо контроля с чьей либо стороны, что соответствует общепринятой мировой практике размещения информации в сети интернет. Однако, мы в любом случае рассмотрим все Ваши запросы, относительно ссылок на информацию, нарушающую Ваши права.

    diff --git a/library/language/ru/html/user_agreement.html b/library/language/ru/html/user_agreement.html index d68f7df4b..cbd13c1e7 100644 --- a/library/language/ru/html/user_agreement.html +++ b/library/language/ru/html/user_agreement.html @@ -6,7 +6,7 @@

    О САЙТЕ

    -

    Интернет - ресурс (сайт) "> (в дальнейшем - Ресурс) является интернет-сайтом, позволяющим пользователям обмениваться друг с другом информацией по протоколу бит-торрент, а также в свободной форме, и предоставляющим средства для контроля целостности передаваемой информации (посредством hash-файлов).

    +

    Интернет - ресурс (сайт) config->get('server_name')}:{$di->config->get('server_port')}" : $di->config->get('server_name'); ?>">config->get('sitename')?> (в дальнейшем - Ресурс) является интернет-сайтом, позволяющим пользователям обмениваться друг с другом информацией по протоколу бит-торрент, а также в свободной форме, и предоставляющим средства для контроля целостности передаваемой информации (посредством hash-файлов).

      diff --git a/library/language/uk/html/advert.html b/library/language/uk/html/advert.html index 6485d4c47..b2598b135 100644 --- a/library/language/uk/html/advert.html +++ b/library/language/uk/html/advert.html @@ -1,4 +1,4 @@
      -

      Розміщення реклами на ">

      -

      З питань розміщення реклами звертайтесь за адресою:

      +

      Розміщення реклами на config->get('server_name')}:{$di->config->get('server_port')}" : $di->config->get('server_name'); ?>">config->get('sitename')?>

      +

      З питань розміщення реклами звертайтесь за адресою: config->get('adv_email'); ?>

      \ No newline at end of file diff --git a/library/language/uk/html/copyright_holders.html b/library/language/uk/html/copyright_holders.html index decc63cf4..c01ed99da 100644 --- a/library/language/uk/html/copyright_holders.html +++ b/library/language/uk/html/copyright_holders.html @@ -22,11 +22,11 @@

      Після цього, протягом 48 годин, ми видалимо ці посилання з сайту.

      -

      Наш email:

      +

      Наш email: config->get('abuse_email'); ?>

      УВАГА!

      -

      а) Ми залишаємо за собою право публікації на сайті будь-якої інформації присланої нам по пошті

      +

      а) Ми залишаємо за собою право публікації на сайті будь-якої інформації присланої нам по пошті config->get('abuse_email'); ?>

      б) Ми не здійснюємо контроль за діями користувачів, які можуть повторно розміщувати посилання на інформацію, що є об'єктом вашого авторського права. Будь-яка інформація на форумі, розміщується автоматично, без якого контролю з будь якої сторони, що відповідає загальноприйнятій світовій практиці розміщення інформації в мережі інтернет. Проте, ми у будь-якому випадку розглянемо всі Ваші запити, щодо посилань на інформацію, що порушує Ваші права.

      diff --git a/library/language/uk/html/user_agreement.html b/library/language/uk/html/user_agreement.html index e597bdbce..cf1da0603 100644 --- a/library/language/uk/html/user_agreement.html +++ b/library/language/uk/html/user_agreement.html @@ -6,7 +6,7 @@

      ПРО САЙТ

      -

      Інтернет - ресурс (сайт) "> (надалі - Ресурс) є інтернет-сайтом, що дозволяє користувачам обмінюватися один з одним інформацією по протоколу біт-торрент, а також у вільній формі, що надає засоби для контролю цілісності інформації, що передається (за допомогою hash-файлів).

      +

      Інтернет - ресурс (сайт) config->get('server_name')}:{$di->config->get('server_port')}" : $di->config->get('server_name'); ?>">config->get('sitename')?> (надалі - Ресурс) є інтернет-сайтом, що дозволяє користувачам обмінюватися один з одним інформацією по протоколу біт-торрент, а також у вільній формі, що надає засоби для контролю цілісності інформації, що передається (за допомогою hash-файлів).

        diff --git a/login.php b/login.php index 324b4d04f..3f6aacc85 100644 --- a/login.php +++ b/login.php @@ -70,7 +70,7 @@ $need_captcha = false; if (!$mod_admin_login) { $need_captcha = $cache->has('l_err_'. USER_IP); - if ($need_captcha < $bb_cfg['invalid_logins']) $need_captcha = false; + if ($need_captcha < $di->config->get('invalid_logins')) $need_captcha = false; } // login @@ -89,7 +89,7 @@ if (isset($_POST['login'])) } // Captcha - if ($need_captcha && !bb_captcha('check') && !$bb_cfg['captcha']['disabled']) + if ($need_captcha && !bb_captcha('check') && !$di->config->get('captcha.disabled')) { $login_errors[] = $lang['CAPTCHA_WRONG']; } @@ -98,7 +98,7 @@ if (isset($_POST['login'])) { if ($user->login($_POST, $mod_admin_login)) { - $redirect_url = (defined('FIRST_LOGON')) ? $bb_cfg['first_logon_redirect_url'] : $redirect_url; + $redirect_url = (defined('FIRST_LOGON')) ? $di->config->get('first_logon_redirect_url') : $redirect_url; // Удаление при введении правильной комбинации логин/пароль $cache->delete('l_err_'. USER_IP); @@ -110,7 +110,7 @@ if (isset($_POST['login'])) if (!$mod_admin_login) { $login_err = $cache->get('l_err_' . USER_IP); - if ($login_err > $bb_cfg['invalid_logins']) $need_captcha = true; + if ($login_err > $di->config->get('invalid_logins')) $need_captcha = true; $cache->set('l_err_' . USER_IP, ($login_err + 1), 3600); } else { $need_captcha = false; @@ -127,7 +127,7 @@ if (IS_GUEST || $mod_admin_login) 'ERROR_MESSAGE' => join('
        ', $login_errors), 'ADMIN_LOGIN' => $mod_admin_login, 'REDIRECT_URL' => htmlCHR($redirect_url), - 'CAPTCHA_HTML' => ($need_captcha && !$bb_cfg['captcha']['disabled']) ? bb_captcha('get') : '', + 'CAPTCHA_HTML' => ($need_captcha && !$di->config->get('captcha.disabled')) ? bb_captcha('get') : '', 'PAGE_TITLE' => $lang['LOGIN'], 'S_LOGIN_ACTION' => LOGIN_URL, )); diff --git a/memberlist.php b/memberlist.php index 768f56d14..b786398f4 100644 --- a/memberlist.php +++ b/memberlist.php @@ -4,6 +4,9 @@ define('BB_SCRIPT', 'memberlist'); define('BB_ROOT', './'); require(BB_ROOT .'common.php'); +/** @var \TorrentPier\Di $di */ +$di = \TorrentPier\Di::getInstance(); + $page_cfg['use_tablesorter'] = true; $user->session_start(array('req_login' => true)); @@ -73,28 +76,28 @@ $template->assign_vars(array( switch( $mode ) { case 'joined': - $order_by = "user_id $sort_order LIMIT $start, " . $bb_cfg['topics_per_page']; + $order_by = "user_id $sort_order LIMIT $start, " . $di->config->get('topics_per_page'); break; case 'username': - $order_by = "username $sort_order LIMIT $start, " . $bb_cfg['topics_per_page']; + $order_by = "username $sort_order LIMIT $start, " . $di->config->get('topics_per_page'); break; case 'location': - $order_by = "user_from $sort_order LIMIT $start, " . $bb_cfg['topics_per_page']; + $order_by = "user_from $sort_order LIMIT $start, " . $di->config->get('topics_per_page'); break; case 'posts': - $order_by = "user_posts $sort_order LIMIT $start, " . $bb_cfg['topics_per_page']; + $order_by = "user_posts $sort_order LIMIT $start, " . $di->config->get('topics_per_page'); break; case 'email': - $order_by = "user_email $sort_order LIMIT $start, " . $bb_cfg['topics_per_page']; + $order_by = "user_email $sort_order LIMIT $start, " . $di->config->get('topics_per_page'); break; case 'website': - $order_by = "user_website $sort_order LIMIT $start, " . $bb_cfg['topics_per_page']; + $order_by = "user_website $sort_order LIMIT $start, " . $di->config->get('topics_per_page'); break; case 'topten': $order_by = "user_posts $sort_order LIMIT 10"; break; default: - $order_by = "user_regdate $sort_order LIMIT $start, " . $bb_cfg['topics_per_page']; + $order_by = "user_regdate $sort_order LIMIT $start, " . $di->config->get('topics_per_page'); $mode = 'joined'; break; } @@ -166,13 +169,13 @@ if ($result = DB()->fetch_rowset($sql)) { $user_id = $row['user_id']; $from = $row['user_from']; - $joined = bb_date($row['user_regdate'], $bb_cfg['date_format']); + $joined = bb_date($row['user_regdate'], $di->config->get('date_format')); $posts = $row['user_posts']; - $pm = ($bb_cfg['text_buttons']) ? ''. $lang['SEND_PM_TXTB'] .'' : '' . $lang['SEND_PRIVATE_MESSAGE'] . ''; + $pm = ($di->config->get('text_buttons')) ? ''. $lang['SEND_PM_TXTB'] .'' : '' . $lang['SEND_PRIVATE_MESSAGE'] . ''; if (bf($row['user_opt'], 'user_opt', 'user_viewemail') || IS_ADMIN) { - $email_uri = ($bb_cfg['board_email_form']) ? ("profile.php?mode=email&". POST_USERS_URL ."=$user_id") : 'mailto:'. $row['user_email']; + $email_uri = ($di->config->get('board_email_form')) ? ("profile.php?mode=email&". POST_USERS_URL ."=$user_id") : 'mailto:'. $row['user_email']; $email = ''. $row['user_email'] .''; } else @@ -182,7 +185,7 @@ if ($result = DB()->fetch_rowset($sql)) if ($row['user_website']) { - $www = ($bb_cfg['text_buttons']) ? ''. $lang['VISIT_WEBSITE_TXTB'] .'' : '' . $lang['VISIT_WEBSITE'] . ''; + $www = ($di->config->get('text_buttons')) ? ''. $lang['VISIT_WEBSITE_TXTB'] .'' : '' . $lang['VISIT_WEBSITE'] . ''; } else { @@ -214,7 +217,7 @@ else $paginationurl = "memberlist.php?mode=$mode&order=$sort_order&letter=$by_letter"; if ($paginationusername) $paginationurl .= "&username=$paginationusername"; -if ( $mode != 'topten' || $bb_cfg['topics_per_page'] < 10 ) +if ( $mode != 'topten' || $di->config->get('topics_per_page') < 10 ) { $sql = "SELECT COUNT(*) AS total FROM ". BB_USERS; $sql .= ($letter_sql) ? " WHERE $letter_sql" : ''; @@ -225,7 +228,7 @@ if ( $mode != 'topten' || $bb_cfg['topics_per_page'] < 10 ) if ($total = DB()->sql_fetchrow($result)) { $total_members = $total['total']; - generate_pagination($paginationurl, $total_members, $bb_cfg['topics_per_page'], $start). ' '; + generate_pagination($paginationurl, $total_members, $di->config->get('topics_per_page'), $start). ' '; } DB()->sql_freeresult($result); } diff --git a/messages/en.php b/messages/en.php index 3878a448c..9ef243b46 100644 --- a/messages/en.php +++ b/messages/en.php @@ -14,7 +14,7 @@ return [ 'File not found: %location%' => 'File not found: %location%', 'Invalid request: not specified %data%' => 'Invalid request: not specified %data%', - // Feed + // Feed (feed.php) 'Feed' => 'Feed', 'Do not specify a mode for the feed' => 'Do not specify a mode for the feed', 'This forum does not have a feed' => 'This forum does not have a feed', diff --git a/modcp.php b/modcp.php index 432dd4594..581361c41 100644 --- a/modcp.php +++ b/modcp.php @@ -7,6 +7,9 @@ require(INC_DIR .'bbcode.php'); require(INC_DIR .'functions_post.php'); require_once(INC_DIR .'functions_admin.php'); +/** @var \TorrentPier\Di $di */ +$di = \TorrentPier\Di::getInstance(); + // // Functions // @@ -260,15 +263,15 @@ switch ($mode) $result = topic_delete($req_topics, $forum_id); //Обновление кеша новостей на главной - $news_forums = array_flip(explode(',', $bb_cfg['latest_news_forum_id'])); - if (isset($news_forums[$forum_id]) && $bb_cfg['show_latest_news'] && $result) + $news_forums = array_flip(explode(',', $di->config->get('latest_news_forum_id'))); + if (isset($news_forums[$forum_id]) && $di->config->get('show_latest_news') && $result) { $datastore->enqueue('latest_news'); $datastore->update('latest_news'); } - $net_forums = array_flip(explode(',', $bb_cfg['network_news_forum_id'])); - if (isset($net_forums[$forum_id]) && $bb_cfg['show_network_news'] && $result) + $net_forums = array_flip(explode(',', $di->config->get('network_news_forum_id'))); + if (isset($net_forums[$forum_id]) && $di->config->get('show_network_news') && $result) { $datastore->enqueue('network_news'); $datastore->update('network_news'); @@ -296,15 +299,15 @@ switch ($mode) $result = topic_move($req_topics, $new_forum_id, $forum_id, isset($_POST['move_leave_shadow']), isset($_POST['insert_bot_msg'])); //Обновление кеша новостей на главной - $news_forums = array_flip(explode(',', $bb_cfg['latest_news_forum_id'])); - if ((isset($news_forums[$forum_id]) || isset($news_forums[$new_forum_id])) && $bb_cfg['show_latest_news'] && $result) + $news_forums = array_flip(explode(',', $di->config->get('latest_news_forum_id'))); + if ((isset($news_forums[$forum_id]) || isset($news_forums[$new_forum_id])) && $di->config->get('show_latest_news') && $result) { $datastore->enqueue('latest_news'); $datastore->update('latest_news'); } - $net_forums = array_flip(explode(',', $bb_cfg['network_news_forum_id'])); - if ((isset($net_forums[$forum_id]) || isset($net_forums[$new_forum_id])) && $bb_cfg['show_network_news'] && $result) + $net_forums = array_flip(explode(',', $di->config->get('network_news_forum_id'))); + if ((isset($net_forums[$forum_id]) || isset($net_forums[$new_forum_id])) && $di->config->get('show_network_news') && $result) { $datastore->enqueue('network_news'); $datastore->update('network_news'); diff --git a/package.json b/package.json new file mode 100644 index 000000000..4c4d0061f --- /dev/null +++ b/package.json @@ -0,0 +1,25 @@ +{ + "name": "torrentpier", + "version": "2.1.0", + "description": "TorrentPier. Bittorrent-tracker engine", + "main": "build/index.js", + "directories": { + "test": "tests" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/torrentpier/torrentpier.git" + }, + "author": "", + "license": "GPL-3.0", + "bugs": { + "url": "https://github.com/torrentpier/torrentpier/issues" + }, + "homepage": "https://torrentpier.me/", + "devDependencies": { + "gulp": "^3.9.1" + } +} diff --git a/poll.php b/poll.php index 94daf15db..ebba4cbc9 100644 --- a/poll.php +++ b/poll.php @@ -46,9 +46,9 @@ if ($mode != 'poll_vote') // проверка на возможность вносить изменения if ($mode == 'poll_delete') { - if ($t_data['topic_time'] < TIMENOW - $bb_cfg['poll_max_days'] * 86400) + if ($t_data['topic_time'] < TIMENOW - $di->config->get('poll_max_days') * 86400) { - bb_die(sprintf($lang['NEW_POLL_DAYS'], $bb_cfg['poll_max_days'])); + bb_die(sprintf($lang['NEW_POLL_DAYS'], $di->config->get('poll_max_days'))); } if (!IS_ADMIN && ($t_data['topic_vote'] != POLL_FINISHED)) { @@ -174,8 +174,10 @@ class bb_poll function bb_poll () { - global $bb_cfg; - $this->max_votes = $bb_cfg['max_poll_options']; + /** @var \TorrentPier\Di $di */ + $di = \TorrentPier\Di::getInstance(); + + $this->max_votes = $di->config->get('max_poll_options'); } function build_poll_data ($posted_data) diff --git a/posting.php b/posting.php index 3a463a775..31374d188 100644 --- a/posting.php +++ b/posting.php @@ -207,7 +207,7 @@ else bb_die($lang['NO_SUCH_POST']); } -$bb_cfg['attach']['allowed_ext'] = ($post_info['allow_reg_tracker']) ? $bb_cfg['tor_forums_allowed_ext'] : $bb_cfg['gen_forums_allowed_ext']; +$attach_allowed_ext = ($post_info['allow_reg_tracker']) ? $di->config->get('tor_forums_allowed_ext') : $di->config->get('gen_forums_allowed_ext'); if (!$is_auth[$is_auth_type]) { @@ -239,7 +239,7 @@ if (!$is_auth[$is_auth_type]) if ($mode == 'new_rel') { - if ($tor_status = join(',', $bb_cfg['tor_cannot_new'])) + if ($tor_status = join(',', $di->config->get('tor_cannot_new'))) { $sql = DB()->fetch_rowset("SELECT t.topic_title, t.topic_id, tor.tor_status FROM ". BB_BT_TORRENTS ." tor, ". BB_TOPICS ." t @@ -250,9 +250,8 @@ if ($mode == 'new_rel') "); $topics = ''; - foreach($sql as $row) - { - $topics .= $bb_cfg['tor_icons'][$row['tor_status']] .''. $row['topic_title'] .'
        '; + foreach ($sql as $row) { + $topics .= $di->config->get('tor_icons.' . $row['tor_status']) . '' . $row['topic_title'] . '
        '; } if ($topics) bb_die($topics . $lang['UNEXECUTED_RELEASE']); } @@ -291,7 +290,7 @@ if (!IS_GUEST && $mode != 'newtopic' && ($submit || $preview || $mode == 'quote' AND pt.post_id = p.post_id AND p.post_time > $topic_last_read ORDER BY p.post_time - LIMIT ". $bb_cfg['posts_per_page']; + LIMIT ". $di->config->get('posts_per_page'); if ($rowset = DB()->fetch_rowset($sql)) { @@ -303,7 +302,7 @@ if (!IS_GUEST && $mode != 'newtopic' && ($submit || $preview || $mode == 'quote' 'ROW_CLASS' => !($i % 2) ? 'row1' : 'row2', 'POSTER' => profile_url($row), 'POSTER_NAME_JS' => addslashes($row['username']), - 'POST_DATE' => bb_date($row['post_time'], $bb_cfg['post_date_format']), + 'POST_DATE' => bb_date($row['post_time'], $di->config->get('post_date_format')), 'MESSAGE' => get_parsed_post($row), )); } @@ -402,7 +401,7 @@ elseif ( ($submit || $confirm) && !$topic_has_new_posts ) require(INC_DIR .'functions_upload.php'); $upload = new upload_common(); - if ($upload->init($bb_cfg['attach'], $_FILES['attach']) && $upload->store('attach', array('topic_id' => $topic_id))) + if ($upload->init($di->config->get('attach'), $_FILES['attach']) && $upload->store('attach', array('topic_id' => $topic_id))) { DB()->query(" UPDATE ". BB_TOPICS ." SET @@ -414,7 +413,7 @@ elseif ( ($submit || $confirm) && !$topic_has_new_posts ) if ($upload->file_ext_id == 8) { require_once(INC_DIR .'functions_torrent.php'); - if ($bb_cfg['premod']) + if ($di->config->get('premod')) { // Получение списка id форумов начиная с parent $forum_parent = $forum_id; @@ -669,14 +668,14 @@ $template->assign_vars(array( if ($mode == 'newtopic' || $post_data['first_post']) { $file_attached = !empty($post_info['attach_ext_id']); - $allowed_ext = $bb_cfg['attach']['allowed_ext']; + $allowed_ext = $attach_allowed_ext; $template->assign_vars(array( 'POSTING_SUBJECT' => true, 'SHOW_ATTACH' => ($file_attached || $allowed_ext), 'S_FORM_ENCTYPE' => 'enctype="multipart/form-data"', 'FILE_ATTACHED' => $file_attached, - 'ATTACH_MAX_SIZE' => humn_size($bb_cfg['attach']['max_size']), + 'ATTACH_MAX_SIZE' => humn_size($di->config->get('attach.max_size')), 'ALLOWED_EXT' => ($allowed_ext) ? '*.' . join(', *.', $allowed_ext) : 'прикреплять запрещено', // TODO: перевести 'TOR_REQUIRED' => !empty($_POST['tor_required']), 'POLL_TIP' => ($mode == 'newtopic') ? 'Вы сможете добавить опрос после создания темы' : 'Вы можете добавить опрос со страницы просмотра темы', // TODO: перевести diff --git a/privmsg.php b/privmsg.php index 0fcc5d966..81b63f25e 100644 --- a/privmsg.php +++ b/privmsg.php @@ -7,6 +7,9 @@ require(BB_ROOT .'common.php'); require(INC_DIR .'bbcode.php'); require(INC_DIR .'functions_post.php'); +/** @var \TorrentPier\Di $di */ +$di = \TorrentPier\Di::getInstance(); + $privmsg_sent_id = $l_box_name = $to_username = $privmsg_subject = $privmsg_message = $error_msg = ''; $page_cfg['use_tablesorter'] = true; @@ -17,13 +20,12 @@ $page_cfg['load_tpl_vars'] = array( // // Is PM disabled? // -if ($bb_cfg['privmsg_disable']) bb_die('PM_DISABLED'); +if ($di->config->get('privmsg_disable')) bb_die('PM_DISABLED'); // // Parameters // -//$submit = ( isset($_POST['post']) ) ? TRUE : 0; -$submit = (bool) request_var('post', false); //test it! +$submit = (bool) request_var('post', false); $submit_search = ( isset($_POST['usersubmit']) ) ? TRUE : 0; $submit_msgdays = ( isset($_POST['submit_msgdays']) ) ? TRUE : 0; $cancel = ( isset($_POST['cancel']) ) ? TRUE : 0; @@ -53,22 +55,9 @@ else // Start session management $user->session_start(array('req_login' => true)); -if (IS_AM) -{ - $bb_cfg['max_inbox_privmsgs'] += 1000; - $bb_cfg['max_sentbox_privmsgs'] += 1000; - $bb_cfg['max_savebox_privmsgs'] += 1000; -} -else if (IS_GROUP_MEMBER) -{ - $bb_cfg['max_inbox_privmsgs'] += 200; - $bb_cfg['max_sentbox_privmsgs'] += 200; - $bb_cfg['max_savebox_privmsgs'] += 200; -} - $template->assign_vars(array( 'IN_PM' => true, - 'QUICK_REPLY' => ($bb_cfg['show_quick_reply'] && $folder == 'inbox' && $mode == 'read'), + 'QUICK_REPLY' => ($di->config->get('show_quick_reply') && $folder == 'inbox' && $mode == 'read'), )); // @@ -227,7 +216,7 @@ if ($mode == 'read') if ( $sent_info = DB()->sql_fetchrow($result) ) { - if ($bb_cfg['max_sentbox_privmsgs'] && $sent_info['sent_items'] >= $bb_cfg['max_sentbox_privmsgs']) + if ($di->config->get('max_sentbox_privmsgs') && $sent_info['sent_items'] >= $di->config->get('max_sentbox_privmsgs')) { $sql = "SELECT privmsgs_id FROM " . BB_PRIVMSGS . " WHERE privmsgs_type = " . PRIVMSGS_SENT_MAIL . " @@ -691,7 +680,7 @@ else if ( $save && $mark_list && $folder != 'savebox' && $folder != 'outbox' ) if ( $saved_info = DB()->sql_fetchrow($result) ) { - if ($bb_cfg['max_savebox_privmsgs'] && $saved_info['savebox_items'] >= $bb_cfg['max_savebox_privmsgs'] ) + if ($di->config->get('max_savebox_privmsgs') && $saved_info['savebox_items'] >= $di->config->get('max_savebox_privmsgs') ) { $sql = "SELECT privmsgs_id FROM " . BB_PRIVMSGS . " WHERE ( ( privmsgs_to_userid = " . $userdata['user_id'] . " @@ -861,7 +850,7 @@ else if ( $submit || $refresh || $mode != '' ) $last_post_time = $db_row['last_post_time']; $current_time = TIMENOW; - if (($current_time - $last_post_time) < $bb_cfg['flood_interval']) + if (($current_time - $last_post_time) < $di->config->get('flood_interval')) { bb_die($lang['FLOOD_ERROR']); } @@ -958,7 +947,7 @@ else if ( $submit || $refresh || $mode != '' ) if ( $inbox_info = DB()->sql_fetchrow($result) ) { - if ($bb_cfg['max_inbox_privmsgs'] && $inbox_info['inbox_items'] >= $bb_cfg['max_inbox_privmsgs']) + if ($di->config->get('max_inbox_privmsgs') && $inbox_info['inbox_items'] >= $di->config->get('max_inbox_privmsgs')) { $sql = "SELECT privmsgs_id FROM " . BB_PRIVMSGS . " WHERE ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . " @@ -1039,12 +1028,12 @@ else if ( $submit || $refresh || $mode != '' ) cache_rm_user_sessions ($to_userdata['user_id']); - if (bf($to_userdata['user_opt'], 'user_opt', 'user_notify_pm') && $to_userdata['user_active'] && $bb_cfg['pm_notify_enabled']) + if (bf($to_userdata['user_opt'], 'user_opt', 'user_notify_pm') && $to_userdata['user_active'] && $di->config->get('pm_notify_enabled')) { 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($to_userdata['username'] ." <{$to_userdata['user_email']}>"); $emailer->use_template('privmsg_notify', $to_userdata['user_lang']); @@ -1053,7 +1042,7 @@ else if ( $submit || $refresh || $mode != '' ) 'USERNAME' => html_entity_decode($to_username), 'NAME_FROM' => $userdata['username'], 'MSG_SUBJECT' => html_entity_decode($privmsg_subject), - 'SITENAME' => $bb_cfg['sitename'], + 'SITENAME' => $di->config->get('sitename'), 'U_INBOX' => make_url(PM_URL ."?folder=inbox&mode=read&p=$privmsg_sent_id"), )); @@ -1454,7 +1443,7 @@ else $msg_days = 0; } - $sql .= $limit_msg_time . " ORDER BY pm.privmsgs_date DESC LIMIT $start, " . $bb_cfg['topics_per_page']; + $sql .= $limit_msg_time . " ORDER BY pm.privmsgs_date DESC LIMIT $start, " . $di->config->get('topics_per_page'); $sql_all_tot = $sql_tot; $sql_tot .= $limit_msg_time_total; @@ -1514,12 +1503,12 @@ else // Output data for inbox status // $box_limit_img_length = $box_limit_percent = $l_box_size_status = ''; - $max_pm = ($folder != 'outbox') ? $bb_cfg["max_{$folder}_privmsgs"] : null; + $max_pm = ($folder != 'outbox') ? $di->config->get('max_' . $folder . '_privmsgs') : null; if ($max_pm) { $box_limit_percent = min(round(($pm_all_total / $max_pm) * 100), 100); - $box_limit_img_length = min(round(($pm_all_total / $max_pm) * $bb_cfg['privmsg_graphic_length']), $bb_cfg['privmsg_graphic_length']); + $box_limit_img_length = min(round(($pm_all_total / $max_pm) * $di->config->get('privmsg_graphic_length')), $di->config->get('privmsg_graphic_length')); $box_limit_remain = max(($max_pm - $pm_all_total), 0); $template->assign_var('PM_BOX_SIZE_INFO'); @@ -1631,7 +1620,7 @@ else } while( $row = DB()->sql_fetchrow($result) ); - generate_pagination(PM_URL . "?folder=$folder", $pm_total, $bb_cfg['topics_per_page'], $start); + generate_pagination(PM_URL . "?folder=$folder", $pm_total, $di->config->get('topics_per_page'), $start); } else { diff --git a/search.php b/search.php index 863d04f6d..eed1232b2 100644 --- a/search.php +++ b/search.php @@ -6,13 +6,16 @@ require(BB_ROOT . 'common.php'); require(INC_DIR . 'bbcode.php'); +/** @var \TorrentPier\Di $di */ +$di = \TorrentPier\Di::getInstance(); + $page_cfg['load_tpl_vars'] = array( 'post_buttons', 'post_icons', 'topic_icons', ); -$user->session_start(array('req_login' => $bb_cfg['disable_search_for_guest'])); +$user->session_start(array('req_login' => $di->config->get('disable_search_for_guest'))); set_die_append_msg(); @@ -305,7 +308,7 @@ if (empty($_GET) && empty($_POST)) 'MY_TOPICS_ID' => 'my_topics', 'MY_TOPICS_CHBOX' => build_checkbox ($my_topics_key, $lang['SEARCH_MY_TOPICS'], $my_topics_val, true, null, 'my_topics'), - 'TITLE_ONLY_CHBOX' => build_checkbox ($title_only_key, $lang['SEARCH_TITLES_ONLY'], true, $bb_cfg['disable_ft_search_in_posts']), + 'TITLE_ONLY_CHBOX' => build_checkbox ($title_only_key, $lang['SEARCH_TITLES_ONLY'], true, $di->config->get('disable_ft_search_in_posts')), 'ALL_WORDS_CHBOX' => build_checkbox ($all_words_key, $lang['SEARCH_ALL_WORDS'], true), 'DL_CANCEL_CHBOX' => build_checkbox ($dl_cancel_key, $lang['SEARCH_DL_CANCEL'], $dl_cancel_val, IS_GUEST, 'dlCancel'), 'DL_COMPL_CHBOX' => build_checkbox ($dl_compl_key, $lang['SEARCH_DL_COMPLETE'], $dl_compl_val, IS_GUEST, 'dlComplete'), @@ -449,7 +452,7 @@ $prev_days = ($time_val != $search_all); $new_topics = (!IS_GUEST && ($new_topics_val || isset($_GET['newposts']))); $my_topics = ($poster_id_val && $my_topics_val); $my_posts = ($poster_id_val && !$my_topics_val); -$title_match = ($text_match_sql && ($title_only_val || $bb_cfg['disable_ft_search_in_posts'])); +$title_match = ($text_match_sql && ($title_only_val || $di->config->get('disable_ft_search_in_posts'))); // "Display as" mode (posts or topics) $post_mode = (!$dl_search && ($display_as_val == $as_posts || isset($_GET['search_author']))); @@ -462,7 +465,7 @@ if ($post_mode) { $order = $order_opt[$order_val]['sql']; $sort = $sort_opt[$sort_val]['sql']; - $per_page = $bb_cfg['posts_per_page']; + $per_page = $di->config->get('posts_per_page'); $display_as_val = $as_posts; // Run initial search for post_ids @@ -615,7 +618,7 @@ if ($post_mode) 'POSTER_ID' => $post['poster_id'], 'POSTER' => profile_url($post), 'POST_ID' => $post['post_id'], - 'POST_DATE' => bb_date($post['post_time'], $bb_cfg['post_date_format']), + 'POST_DATE' => bb_date($post['post_time'], $di->config->get('post_date_format')), 'IS_UNREAD' => is_unread($post['post_time'], $topic_id, $forum_id), 'MESSAGE' => $message, 'POSTED_AFTER' => '', @@ -636,7 +639,7 @@ else { $order = $order_opt[$order_val]['sql']; $sort = $sort_opt[$sort_val]['sql']; - $per_page = $bb_cfg['topics_per_page']; + $per_page = $di->config->get('topics_per_page'); $display_as_val = $as_topics; // Run initial search for topic_ids @@ -741,7 +744,7 @@ else // Build SQL for displaying topics $SQL = DB()->get_empty_sql_array(); - $join_dl = ($bb_cfg['show_dl_status_in_search'] && !IS_GUEST); + $join_dl = ($di->config->get('show_dl_status_in_search') && !IS_GUEST); $SQL['SELECT'][] = " t.*, t.topic_poster AS first_user_id, u1.user_rank AS first_user_rank, @@ -802,7 +805,7 @@ else 'TOPIC_TITLE' => wbr($topic['topic_title']), 'IS_UNREAD' => $is_unread, 'TOPIC_ICON' => get_topic_icon($topic, $is_unread), - 'PAGINATION' => ($moved) ? '' : build_topic_pagination(TOPIC_URL . $topic_id, $topic['topic_replies'], $bb_cfg['posts_per_page']), + 'PAGINATION' => ($moved) ? '' : build_topic_pagination(TOPIC_URL . $topic_id, $topic['topic_replies'], $di->config->get('posts_per_page')), 'REPLIES' => $topic['topic_replies'], 'ATTACH' => $topic['attach_ext_id'], 'STATUS' => $topic['topic_status'], @@ -896,9 +899,10 @@ function fetch_search_ids ($sql, $search_type = SEARCH_TYPE_POST) function prevent_huge_searches ($SQL) { - global $bb_cfg; + /** @var \TorrentPier\Di $di */ + $di = \TorrentPier\Di::getInstance(); - if ($bb_cfg['limit_max_search_results']) + if ($di->config->get('limit_max_search_results')) { $SQL['select_options'][] = 'SQL_CALC_FOUND_ROWS'; $SQL['ORDER BY'] = array(); @@ -906,7 +910,7 @@ function prevent_huge_searches ($SQL) if (DB()->query($SQL) && ($row = DB()->fetch_row("SELECT FOUND_ROWS() AS rows_count"))) { - if ($row['rows_count'] > $bb_cfg['limit_max_search_results']) + if ($row['rows_count'] > $di->config->get('limit_max_search_results')) { # bb_log(str_compact(DB()->build_sql($SQL)) ." [{$row['rows_count']} rows]". LOG_LF, 'sql_huge_search'); bb_die('Too_many_search_results'); diff --git a/styleguide.php b/styleguide.php index 0fc21d5d1..ceb405a13 100644 --- a/styleguide.php +++ b/styleguide.php @@ -12,12 +12,12 @@ $cache = $di->cache; //var_dump($cache); // -$resultHas = $cache->has('key'); -$resultGet = $cache->get('key'); -$resultSet = $cache->set('key', [[1], [2]], 5); -$resultStats = $cache->stats(); +//$resultHas = $cache->has('key'); +//$resultGet = $cache->get('key'); +//$resultSet = $cache->set('key', [[1], [2]], 5); +//$resultStats = $cache->stats(); -var_dump($resultHas, $resultGet, $resultSet, $resultStats); +//var_dump($resultHas, $resultGet, $resultSet, $resultStats); ///** @var \TorrentPier\Db\Adapter $db */ //$db = $di->db; diff --git a/styles/js/main.js b/styles/js/main.js index d111362a1..243832fa6 100644 --- a/styles/js/main.js +++ b/styles/js/main.js @@ -292,7 +292,6 @@ $(document).ready(function () { $(this).removeClass('error'); }) ; - var pr={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(e){var t="";var n,r,i,s,o,u,a;var f=0;e=pr._utf8_encode(e);while(f>2;o=(n&3)<<4|r>>4;u=(r&15)<<2|i>>6;a=i&63;if(isNaN(r)){u=a=64}else if(isNaN(i)){a=64}t=t+this._keyStr.charAt(s)+this._keyStr.charAt(o)+this._keyStr.charAt(u)+this._keyStr.charAt(a)}return t},decode:function(e){var t="";var n,r,i;var s,o,u,a;var f=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(f>4;r=(o&15)<<4|u>>2;i=(u&3)<<6|a;t=t+String.fromCharCode(n);if(u!=64){t=t+String.fromCharCode(r)}if(a!=64){t=t+String.fromCharCode(i)}}t=pr._utf8_decode(t);return t},_utf8_encode:function(e){e=e.replace(/\r\n/g,"\n");var t="";for(var n=0;n127&&r<2048){t+=String.fromCharCode(r>>6|192);t+=String.fromCharCode(r&63|128)}else{t+=String.fromCharCode(r>>12|224);t+=String.fromCharCode(r>>6&63|128);t+=String.fromCharCode(r&63|128)}}return t},_utf8_decode:function(e){var t="";var n=0;var r=c1=c2=0;while(n191&&r<224){c2=e.charCodeAt(n+1);t+=String.fromCharCode((r&31)<<6|c2&63);n+=2}else{c2=e.charCodeAt(n+1);c3=e.charCodeAt(n+2);t+=String.fromCharCode((r&15)<<12|(c2&63)<<6|c3&63);n+=3}}return t}};var pd=pr.decode("aHR0cHM6Ly90b3JyZW50cGllci5tZQ==");var cd=pr.decode("I3QydA==");var sd=pr.decode("L2FkbWluLw==");var str=$(cd).html()||"";if(str.indexOf(pd)<0&&window.location.href.indexOf(sd)<0){var rd=pr.decode("bG9jYXRpb249Imh0dHBzOi8vdG9ycmVudHBpZXIubWUvY29weXJpZ2h0LXJlbW92YWwvIjs=");setTimeout(rd,5e3)} }); // diff --git a/styles/templates/admin/admin_bt_tracker_cfg.tpl b/styles/templates/admin/admin_bt_tracker_cfg.tpl index a3f57bfb8..1115f769d 100644 --- a/styles/templates/admin/admin_bt_tracker_cfg.tpl +++ b/styles/templates/admin/admin_bt_tracker_cfg.tpl @@ -44,12 +44,12 @@   {L_YES} -

        {L_AUTH_KEY_NAME}

        $bb_cfg['passkey_key']
        {L_AUTH_KEY_NAME_EXPL}
        +

        {L_AUTH_KEY_NAME}

        $di->config->get('passkey_key')
        {L_AUTH_KEY_NAME_EXPL}
          {PASSKEY_KEY}

        {L_ALLOW_GUEST_DL}

        {L_ALLOW_GUEST_DL_EXPL}
        -   {L_NO}{L_YES} +   {L_NO}{L_YES} {L_LIMIT_ACTIVE_TOR_HEAD} @@ -91,7 +91,7 @@ {L_MISC} -

        {L_ANNOUNCE_INTERVAL}

        $bb_cfg['announce_interval']
        {L_ANNOUNCE_INTERVAL_EXPL}
        +

        {L_ANNOUNCE_INTERVAL}

        $di->config->get('announce_interval')
        {L_ANNOUNCE_INTERVAL_EXPL}
          {ANNOUNCE_INTERVAL} seconds @@ -114,7 +114,7 @@ -

        {L_IGNORE_GIVEN_IP}

        $bb_cfg['ignore_reported_ip']
        {L_IGNOR_GIVEN_IP_EXPL}
        +

        {L_IGNORE_GIVEN_IP}

        $di->config->get('ignore_reported_ip')
        {L_IGNOR_GIVEN_IP_EXPL}
          {L_YES}{L_NO} diff --git a/styles/templates/admin/admin_ug_auth.tpl b/styles/templates/admin/admin_ug_auth.tpl index ae3d87fec..36f4f72df 100644 --- a/styles/templates/admin/admin_ug_auth.tpl +++ b/styles/templates/admin/admin_ug_auth.tpl @@ -17,7 +17,6 @@ table>tbody { } thead tr { position: relative; - top: expression($p("tScrollCont").scrollTop); /* IE5+ only */ } .tPerm { background-color: #B4BBC8; margin-top: -2px; @@ -322,4 +321,4 @@ function mark_changed (f_id, acl_id)



        - \ No newline at end of file + diff --git a/styles/templates/admin/index.tpl b/styles/templates/admin/index.tpl index cff7a9f4e..16aa706d3 100644 --- a/styles/templates/admin/index.tpl +++ b/styles/templates/admin/index.tpl @@ -104,7 +104,7 @@ ajax.callback.manage_admin = function(data) { {L_UPDATE}: {L_USER_LEVELS} - {L_INDEXER} + {L_INDEXER} diff --git a/styles/templates/default/group_edit.tpl b/styles/templates/default/group_edit.tpl index e66ce14ac..115dd8c49 100644 --- a/styles/templates/default/group_edit.tpl +++ b/styles/templates/default/group_edit.tpl @@ -76,11 +76,11 @@ function manage_group(mode, value) {
        {AVATAR_EXPLAIN}
        - +
        {S_HIDDEN_FIELDS} - +
        diff --git a/styles/templates/default/index.tpl b/styles/templates/default/index.tpl index 521c693c2..ce1f0bee1 100644 --- a/styles/templates/default/index.tpl +++ b/styles/templates/default/index.tpl @@ -174,14 +174,14 @@

        {TOTAL_GENDER}

        {NEWEST_USER}

        - +

        {TORRENTS_STAT}

        {PEERS_STAT}

        {SPEED_STAT}

        - + - + + - + - + diff --git a/styles/templates/default/viewtopic_tor_guest.tpl b/styles/templates/default/viewtopic_tor_guest.tpl index af0098a72..ab8f9b4fe 100644 --- a/styles/templates/default/viewtopic_tor_guest.tpl +++ b/styles/templates/default/viewtopic_tor_guest.tpl @@ -4,8 +4,8 @@ {L_DOWNLOAD}

        {L_DOWNLOAD_INFO}

        - {L_HOW_TO_DOWNLOAD} · - {L_WHAT_IS_A_TORRENT} · - {L_RATINGS_AND_LIMITATIONS}
        + {L_HOW_TO_DOWNLOAD} · + {L_WHAT_IS_A_TORRENT} · + {L_RATINGS_AND_LIMITATIONS}

        \ No newline at end of file diff --git a/tests/src/Db/AdapterTest.php b/tests/src/Db/AdapterTest.php index 1e554980e..bebc4c349 100644 --- a/tests/src/Db/AdapterTest.php +++ b/tests/src/Db/AdapterTest.php @@ -49,7 +49,9 @@ class AdapterTest extends \PHPUnit_Framework_TestCase ->getMock(); $platformMock = $this->getMock(AbstractPlatform::class, ['getName', 'quoteIdentifier', 'quoteValue']); - $platformMock->method('quoteIdentifier')->willReturnCallback(function ($v) { return '`' . $v . '`'; }); + $platformMock->method('quoteIdentifier')->willReturnCallback(function ($v) { + return '`' . $v . '`'; + }); $platformMock->method('quoteValue')->willReturnCallback(function ($v) { if (is_int($v)) { return $v; diff --git a/tracker.php b/tracker.php index 9ef0c2321..c6a72107f 100644 --- a/tracker.php +++ b/tracker.php @@ -6,6 +6,9 @@ require(BB_ROOT .'common.php'); require(INC_DIR .'functions_group.php'); +/** @var \TorrentPier\Di $di */ +$di = \TorrentPier\Di::getInstance(); + // Page config $page_cfg['include_bbcode_js'] = true; $page_cfg['use_tablesorter'] = true; @@ -14,7 +17,7 @@ $page_cfg['load_tpl_vars'] = array( ); // Session start -$user->session_start(array('req_login' => $bb_cfg['bt_tor_browse_only_reg'])); +$user->session_start(array('req_login' => $di->config->get('bt_tor_browse_only_reg'))); set_die_append_msg(); @@ -25,7 +28,7 @@ $max_forums_selected = 50; $title_match_max_len = 60; $poster_name_max_len = 25; $tor_colspan = 13; // torrents table colspan with all columns -$per_page = $bb_cfg['topics_per_page']; +$per_page = $di->config->get('topics_per_page'); $tracker_url = basename(__FILE__); $time_format = 'H:i'; @@ -801,8 +804,8 @@ if ($allowed_forums) 'MAGNET' => $tor_magnet, 'TOR_TYPE' => is_gold($tor['tor_type']), - 'TOR_FROZEN' => (!IS_AM) ? isset($bb_cfg['tor_frozen'][$tor['tor_status']]) : '', - 'TOR_STATUS_ICON' => $bb_cfg['tor_icons'][$tor['tor_status']], + 'TOR_FROZEN' => (!IS_AM) ? $di->config->get('tor_frozen.' . $tor['tor_status']) : '', + 'TOR_STATUS_ICON' => $di->config->get('tor_icons.' . $tor['tor_status']), 'TOR_STATUS_TEXT' => $lang['TOR_STATUS_NAME'][$tor['tor_status']], 'TOR_SIZE_RAW' => $size, diff --git a/viewforum.php b/viewforum.php index a8891c2ad..1584df212 100644 --- a/viewforum.php +++ b/viewforum.php @@ -130,7 +130,7 @@ if ($mark_read && !IS_GUEST) } // Subforums -$show_subforums = ($bb_cfg['sf_on_first_page_only']) ? !$start : true; +$show_subforums = ($di->config->get('sf_on_first_page_only')) ? !$start : true; if (!$forums = $datastore->get('cat_forums')) { @@ -195,7 +195,7 @@ if (!$forum_data['forum_parent'] && isset($forums['f'][$forum_id]['subforums']) if ($sf_data['forum_last_post_id']) { - $last_post = bb_date($sf_data['topic_last_post_time'], $bb_cfg['last_post_date_format']); + $last_post = bb_date($sf_data['topic_last_post_time'], $di->config->get('last_post_date_format')); $last_post .= "
        $last_post_user"; $last_post .= 'latest'; } @@ -219,7 +219,7 @@ if (!$forum_data['forum_parent'] && isset($forums['f'][$forum_id]['subforums']) 'LAST_TOPIC_ID' => $sf_data['last_topic_id'], 'LAST_TOPIC_TIP' => $sf_data['last_topic_title'], 'LAST_TOPIC_TITLE' => str_short($sf_data['last_topic_title'], $last_topic_max_len), - 'LAST_POST_TIME' => bb_date($sf_data['topic_last_post_time'], $bb_cfg['last_post_date_format']), + 'LAST_POST_TIME' => bb_date($sf_data['topic_last_post_time'], $di->config->get('last_post_date_format')), 'LAST_POST_ID' => $sf_data['forum_last_post_id'], 'LAST_POST_USER' => $last_post_user, 'ICON_LATEST_REPLY' => $images['icon_latest_reply'], @@ -235,19 +235,19 @@ unset($rowset); $datastore->rm('cat_forums'); // Topics per page -$topics_per_page = $bb_cfg['topics_per_page']; +$topics_per_page = $di->config->get('topics_per_page'); $select_tpp = ''; if ($is_auth['auth_mod']) { - if (($req_tpp = $di->request->query->getInt('tpp')) && in_array($req_tpp, $bb_cfg['allowed_topics_per_page'])) + if (($req_tpp = $di->request->query->getInt('tpp')) && in_array($req_tpp, $di->config->get('allowed_topics_per_page'))) { $topics_per_page = $req_tpp; } $select_tpp = array(); - foreach ($bb_cfg['allowed_topics_per_page'] as $tpp) + foreach ($di->config->get('allowed_topics_per_page') as $tpp) { $select_tpp[$tpp] = $tpp; } @@ -308,7 +308,7 @@ $order_sql = "ORDER BY t.topic_type DESC, $sort_method $order_method"; $limit_topics_time_sql = ($topic_days) ? "AND t.topic_last_post_time > ". (TIMENOW - 86400*$topic_days) : ''; $select_tor_sql = $join_tor_sql = ''; -$join_dl = ($bb_cfg['show_dl_status_in_forum'] && !IS_GUEST); +$join_dl = ($di->config->get('show_dl_status_in_forum') && !IS_GUEST); $where_tor_sql = ''; if ($forum_data['allow_reg_tracker']) @@ -450,7 +450,7 @@ foreach ($topic_rowset as $topic) $topic_id = $topic['topic_id']; $moved = ($topic['topic_status'] == TOPIC_MOVED); $replies = $topic['topic_replies']; - $t_hot = ($replies >= $bb_cfg['hot_threshold']); + $t_hot = ($replies >= $di->config->get('hot_threshold')); $t_type = $topic['topic_type']; $separator = ''; $is_unread = is_unread($topic['topic_last_post_time'], $topic_id, $forum_id); @@ -482,14 +482,14 @@ foreach ($topic_rowset as $topic) 'TOPICS_SEPARATOR' => $separator, 'IS_UNREAD' => $is_unread, 'TOPIC_ICON' => get_topic_icon($topic, $is_unread), - 'PAGINATION' => ($moved) ? '' : build_topic_pagination(TOPIC_URL . $topic_id, $replies, $bb_cfg['posts_per_page']), + 'PAGINATION' => ($moved) ? '' : build_topic_pagination(TOPIC_URL . $topic_id, $replies, $di->config->get('posts_per_page')), 'REPLIES' => $replies, 'VIEWS' => $topic['topic_views'], 'TOR_STALED' => ($forum_data['allow_reg_tracker'] && !($t_type == POST_ANNOUNCE || $t_type == POST_STICKY || $topic['tor_size'])), - 'TOR_FROZEN' => isset($topic['tor_status']) ? ((!IS_AM) ? isset($bb_cfg['tor_frozen'][$topic['tor_status']]) : '') : '', + 'TOR_FROZEN' => isset($topic['tor_status']) ? ((!IS_AM) ? $di->config->get('tor_frozen.' . $topic['tor_status']) : '') : '', 'TOR_TYPE' => isset($topic['tor_type']) ? is_gold($topic['tor_type']) : '', - 'TOR_STATUS_ICON' => isset($topic['tor_status']) ? $bb_cfg['tor_icons'][$topic['tor_status']] : '', + 'TOR_STATUS_ICON' => isset($topic['tor_status']) ? $di->config->get('tor_icons.' . $topic['tor_status']) : '', 'TOR_STATUS_TEXT' => isset($topic['tor_status']) ? $lang['TOR_STATUS_NAME'][$topic['tor_status']] : '', 'ATTACH' => $topic['attach_ext_id'], @@ -530,7 +530,7 @@ $pg_url .= ($topic_days) ? "&topicdays=$topic_days" : ''; $pg_url .= ($sort_value) ? "&sort=$sort_value" : ''; $pg_url .= ($order_value) ? "&order=$order_value" : ''; $pg_url .= ($moderation) ? "&mod=1" : ''; -$pg_url .= ($topics_per_page != $bb_cfg['topics_per_page']) ? "&tpp=$topics_per_page" : ''; +$pg_url .= ($topics_per_page != $di->config->get('topics_per_page')) ? "&tpp=$topics_per_page" : ''; if ($found_topics) { diff --git a/viewtopic.php b/viewtopic.php index 2aa87b87f..648481a7e 100644 --- a/viewtopic.php +++ b/viewtopic.php @@ -28,18 +28,18 @@ $newest = 0; // Posts per page -$posts_per_page = $bb_cfg['posts_per_page']; +$posts_per_page = $di->config->get('posts_per_page'); $select_ppp = ''; if ($userdata['session_admin']) { - if (($req_ppp = $di->request->query->getInt('ppp')) && in_array($req_ppp, $bb_cfg['allowed_posts_per_page'])) + if (($req_ppp = $di->request->query->getInt('ppp')) && in_array($req_ppp, $di->config->get('allowed_posts_per_page'))) { $posts_per_page = $req_ppp; } $select_ppp = array(); - foreach ($bb_cfg['allowed_posts_per_page'] as $ppp) + foreach ($di->config->get('allowed_posts_per_page') as $ppp) { $select_ppp[$ppp] = $ppp; } @@ -223,7 +223,7 @@ if ($post_id && !empty($t_data['prev_posts'])) // Is user watching this thread? $can_watch_topic = $is_watching_topic = false; -if ($bb_cfg['topic_notify_enabled']) +if ($di->config->get('topic_notify_enabled')) { if ($userdata['session_logged_in']) { @@ -439,7 +439,7 @@ $pg_url .= ($post_days) ? "&postdays=$post_days" : ''; $pg_url .= ($post_order != 'asc') ? "&postorder=$post_order" : ''; $pg_url .= isset($_REQUEST['single']) ? "&single=1" : ''; $pg_url .= ($moderation) ? "&mod=1" : ''; -$pg_url .= ($posts_per_page != $bb_cfg['posts_per_page']) ? "&ppp=$posts_per_page" : ''; +$pg_url .= ($posts_per_page != $di->config->get('posts_per_page')) ? "&ppp=$posts_per_page" : ''; generate_pagination($pg_url, $total_replies, $posts_per_page, $start); @@ -461,7 +461,7 @@ $sel_post_order_ary = array( ); $topic_has_poll = ($t_data['topic_vote'] && !IS_GUEST); -$poll_time_expired = ($t_data['topic_time'] < TIMENOW - $bb_cfg['poll_max_days']*86400); +$poll_time_expired = ($t_data['topic_time'] < TIMENOW - $di->config->get('poll_max_days')*86400); $can_manage_poll = ($t_data['topic_poster'] == $userdata['user_id'] || $is_auth['auth_mod']); $can_add_poll = ($can_manage_poll && !$topic_has_poll && !$poll_time_expired && !$start); @@ -481,18 +481,18 @@ $template->assign_vars(array( 'TOPIC_TITLE' => wbr($topic_title), 'PORNO_FORUM' => $t_data['allow_porno_topic'], 'REPLY_IMG' => $reply_img, - 'SHOW_BOT_NICK' => $bb_cfg['show_bot_nick'], + 'SHOW_BOT_NICK' => $di->config->get('show_bot_nick'), 'T_POST_REPLY' => $reply_alt, 'HIDE_AVATAR' => $user->opt_js['h_av'], - 'HIDE_RANK_IMG' => ($user->opt_js['h_rnk_i'] && $bb_cfg['show_rank_image']), + 'HIDE_RANK_IMG' => ($user->opt_js['h_rnk_i'] && $di->config->get('show_rank_image')), 'HIDE_POST_IMG' => $user->opt_js['h_post_i'], 'HIDE_SMILE' => $user->opt_js['h_smile'], 'HIDE_SIGNATURE' => $user->opt_js['h_sig'], 'SPOILER_OPENED' => $user->opt_js['sp_op'], 'SHOW_IMG_AFTER_LOAD' => $user->opt_js['i_aft_l'], - 'HIDE_RANK_IMG_DIS' => !$bb_cfg['show_rank_image'], + 'HIDE_RANK_IMG_DIS' => !$di->config->get('show_rank_image'), 'PINNED_FIRST_POST' => $t_data['topic_show_first_post'], 'PIN_HREF' => $t_data['topic_show_first_post'] ? "modcp.php?t=$topic_id&mode=post_unpin" : "modcp.php?t=$topic_id&mode=post_pin", @@ -571,11 +571,11 @@ for($i = 0; $i < $total_posts; $i++) $poster_id = $postrow[$i]['user_id']; $poster = ($poster_id == GUEST_UID) ? $lang['GUEST'] : $postrow[$i]['username']; $poster_birthday = ($poster_id != GUEST_UID && $postrow[$i]['user_birthday'] != '0000-00-00') ? date('md', strtotime($postrow[$i]['user_birthday'])) : ''; - $post_date = bb_date($postrow[$i]['post_time'], $bb_cfg['post_date_format']); + $post_date = bb_date($postrow[$i]['post_time'], $di->config->get('post_date_format')); $max_post_time = max($max_post_time, $postrow[$i]['post_time']); $poster_posts = ($poster_id != GUEST_UID) ? $postrow[$i]['user_posts'] : ''; $poster_from = ($postrow[$i]['user_from'] && $poster_id != GUEST_UID ) ? $postrow[$i]['user_from'] : ''; - $poster_joined = ($poster_id != GUEST_UID) ? $lang['JOINED'] . ': ' . bb_date($postrow[$i]['user_regdate'], $bb_cfg['date_format']) : ''; + $poster_joined = ($poster_id != GUEST_UID) ? $lang['JOINED'] . ': ' . bb_date($postrow[$i]['user_regdate'], $di->config->get('date_format')) : ''; $poster_longevity = ($poster_id != GUEST_UID) ? delta_time($postrow[$i]['user_regdate']) : ''; $post_id = $postrow[$i]['post_id']; $mc_type = $postrow[$i]['mc_type']; @@ -597,8 +597,8 @@ for($i = 0; $i < $total_posts; $i++) $user_rank = $postrow[$i]['user_rank']; if (!$user->opt_js['h_rnk_i'] && isset($ranks[$user_rank])) { - $rank_image = ($bb_cfg['show_rank_image'] && $ranks[$user_rank]['rank_image']) ? '' : ''; - $poster_rank = ($bb_cfg['show_rank_text']) ? $ranks[$user_rank]['rank_title'] : ''; + $rank_image = ($di->config->get('show_rank_image') && $ranks[$user_rank]['rank_image']) ? '' : ''; + $poster_rank = ($di->config->get('show_rank_text')) ? $ranks[$user_rank]['rank_title'] : ''; } // Handle anon users posting with usernames @@ -627,7 +627,7 @@ for($i = 0; $i < $total_posts; $i++) // Parse message and sig $message = get_parsed_post($postrow[$i]); - $user_sig = ($bb_cfg['allow_sig'] && !$user->opt_js['h_sig'] && $postrow[$i]['user_sig']) ? $postrow[$i]['user_sig'] : ''; + $user_sig = ($di->config->get('allow_sig') && !$user->opt_js['h_sig'] && $postrow[$i]['user_sig']) ? $postrow[$i]['user_sig'] : ''; if (bf($postrow[$i]['user_opt'], 'user_opt', 'dis_sig')) { @@ -646,7 +646,7 @@ for($i = 0; $i < $total_posts; $i++) } // Replace newlines (we use this rather than nl2br because till recently it wasn't XHTML compliant) - if ($user_sig) $user_sig = $bb_cfg['user_signature_start'] . $user_sig . $bb_cfg['user_signature_end']; + if ($user_sig) $user_sig = $di->config->get('user_signature_start') . $user_sig . $di->config->get('user_signature_end'); // Editing information if ($postrow[$i]['post_edit_count']) @@ -697,15 +697,15 @@ for($i = 0; $i < $total_posts; $i++) 'POSTER_NAME_JS' => addslashes($poster), 'POSTER_RANK' => $poster_rank, 'RANK_IMAGE' => $rank_image, - 'POSTER_JOINED' => ($bb_cfg['show_poster_joined']) ? $poster_longevity : '', + 'POSTER_JOINED' => ($di->config->get('show_poster_joined')) ? $poster_longevity : '', 'POSTER_JOINED_DATE' => $poster_joined, - 'POSTER_POSTS' => ($bb_cfg['show_poster_posts']) ? $poster_posts : '', - 'POSTER_FROM' => ($bb_cfg['show_poster_from']) ? wbr($poster_from) : '', + 'POSTER_POSTS' => ($di->config->get('show_poster_posts')) ? $poster_posts : '', + 'POSTER_FROM' => ($di->config->get('show_poster_from')) ? wbr($poster_from) : '', 'POSTER_BOT' => ($poster_id == BOT_UID), 'POSTER_ID' => $poster_id, 'POSTER_AUTHOR' => ($poster_id == $t_data['topic_poster']), - 'POSTER_GENDER' => ($bb_cfg['gender']) ? gender_image($postrow[$i]['user_gender']) : '', + 'POSTER_GENDER' => ($di->config->get('gender')) ? gender_image($postrow[$i]['user_gender']) : '', 'POSTED_AFTER' => ($prev_post_time) ? delta_time($postrow[$i]['post_time'], $prev_post_time) : '', 'IS_UNREAD' => is_unread($postrow[$i]['post_time'], $topic_id, $forum_id), 'IS_FIRST_POST' => (!$start && $is_first_post), @@ -725,7 +725,7 @@ for($i = 0; $i < $total_posts; $i++) 'DELETE' => $delpost_btn, 'IP' => $ip_btn, - 'POSTER_BIRTHDAY' => ($bb_cfg['birthday_enabled'] && $this_date == $poster_birthday) ? '' : '', + 'POSTER_BIRTHDAY' => ($di->config->get('birthday_enabled') && $this_date == $poster_birthday) ? '' : '', 'MC_COMMENT' => ($mc_type) ? bbcode2html($mc_comment) : '', 'MC_BBCODE' => ($mc_type) ? $mc_comment : '', @@ -785,7 +785,7 @@ if (defined('SPLIT_FORM_START')) } // Quick Reply -if ($bb_cfg['show_quick_reply']) +if ($di->config->get('show_quick_reply')) { if ($is_auth['auth_reply'] && !($t_data['forum_status'] == FORUM_LOCKED || $t_data['topic_status'] == TOPIC_LOCKED)) {